How Isovist Component Works

Yesterday, Kağan asked me about what isovist component in Grasshopper is 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 to me. Here is an original definition of Michael Benedikt;

The environment is defined as a collection of visible real 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 is liable to change with position. Numerical measures are proposed that 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 in dynamic complexity and spaciousness judgements. Isovists and isovist fields also shed light on the meaning of prevalent architectural notions about space. In the latter role it is hoped that 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 it’s origin point as the eye), number of rays to be distributed to 360 degrees, the farthest distance to be calculated, and the obstacle objects. It now works as 2D without angle restriction, but I’ve seen examples of it, working also in 3D with only specified angles (not always 360). I think it is possible to develop such scripts, or even Grasshopper’s native style of algorithm might allow that addition to be designed. Maybe Kağan should work for it.

Here is the grasshopper exercise, showing a simple use of isovists [GHX: 0.8.0066].