designcoding
About Table of Contents Keywords
Support designcoding!

Isovist Component

May 26, 2012 | Algorithms
#grasshopper #isovist #space-syntax

Yesterday, Kağan asked me about the isovist component in Grasshopper and how it works. In fact, it is a long story, I said because once upon a time, I was curious about Space Syntax theory as my old friend Ela Çil introduced it. So, here is an original definition of Michael Benedikt;

“The environment is defined as a collection of visible actual surfaces in space. An isovist is the set of all points visible from a given vantage point in space and with respect to an environment. The shape and size of an isovist are liable to change with position. Numerical measures quantify some salient size and shape features. These measures in turn create a set of scalar isovist fields. Sets of isovists and isovist fields form an alternative description of environments.

The method seems relevant to behavioral and perceptual studies in architecture, especially in the areas of view control, privacy, ‘defensibility’, and dynamic complexity and spaciousness judgments. Isovists and isovist fields also shed light on the meaning of prevalent architectural notions about space. In the latter role, an information-field theory such as the one presented can help provide fruitful common ground for designers and researchers.”

Benedikt M L, 1979, “To take hold of space: isovists and isovist fields” Environment and Planning B 6(1) 47 – 65

Using the isovist component in Grasshopper is quite simple. You’ll need to define a plane (and its origin point as the eye), and the number of rays. Then, the farthest distance, and the obstacle objects. It now works in 2D without angle restriction. But I’ve seen examples of it working in 3D with only specified angles (not always 360).

Isovist Component animation

Here is the grasshopper exercise:

[GHX: 0.8.0066]Download
Isovist Component Grasshopper definition

Related Posts

Scary Patterns

August 6, 2026

While digging through my archives, I found an old animation I made in 2023. Back then, I was generating patterns with Parakeet. Thanks to this talented add-on, I managed to create a nice pattern by dressing a different component onto a Snub Square tiling base. However, for some reason, things started turning into a horror movie after that. MultiPipe was popular back then. So, I converted this pattern into surfaces using MultiPipe and attempted an animation using Rhino’s rendered viewport…

Dual Polyhedra in Grasshopper

October 7, 2025

Exploring dual polyhedra in Grasshopper is an interesting topic. In this post, I try to generate the dual of any polyhedron using Rhino Python and possibly Grasshopper. I developed this code for Rhino Python earlier here, and now I have converted it into a Grasshopper-Python component for better usability. I start the process by breaking the polyhedron into individual faces and gathering the corner points of each face. These points become the vertices of the dual polyhedron. Then, for each…

String Art in Rhino Python

June 19, 2025

String art is a captivating technique that combines geometry and aesthetics to recreate images using lines between pins. Here is a good reference to start studying it. In this post, I explored a custom Rhino Python script designed for Rhinoceros 7 and 8. It transforms a grayscale image into a dense web of threads. The algorithm analyzes the darkest areas of the image and connects pins in a circular layout to form compositions. The script begins by converting a user-selected…

Differential Growth

June 16, 2025

Differential growth is a process where different parts of a structure grow at different rates, leading to complex forms. After watching this, I decided to try it in Grasshopper. Here, differential growth mimics this behavior by applying rules such as Repulsion to avoid crowding or overlapping, Cohesion to keep parts connected or within a range, and Insertion to add new elements when a part stretches too far. The algorithm I present here simulates a differential growth process starting from a…

Socolar Tiling

May 10, 2025

An aperiodic tiling is a pattern that covers the plane without ever repeating itself (i.e., it is non-periodic). A few special shapes, arranged according to specific rules, can cover the entire plane, but the resulting pattern never repeats exactly. I challenged myself on a 3-day coding sprint to create a general-purpose script in Grasshopper that could generate these tilings. I set Socolar Tiling as my first target. This link contains great information about this and many other aperiodic tilings. Socolar…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • #polyhedra
    • #rhino-python
    • #dodecahedron
    • #tessellation
    • #design-object
    • #image-sampler
    • #dome
    • #tutorial
    • #animation
    • #cycloid
    • #robot
    • #art
    • #simulation
    • #aperiodic
    • #tiling
    • #boolean
    • #archimedean-solid
    • #wood
    • #paneling
    • #platonic-solid
    • All Keywords
    • Table of Contents
    • Monthly Archive
  • Search

  • Patreon

    Support designcoding!

    Enjoying designcoding? Support its future with a small donation on Patreon. Thank you!


    copyright 2026 designcoding.net | about | privacy policy | end user license agreement