Undertaking a view analysis can be a very powerful design tool. Sometimes we want to maximise visibility, say from a balcony to a point of interest, while other times we want to minimise the visual impact, say adjacent to heritage listed buildings. Below are a few options available to Grasshopper users to undertake a view analysis:
Simple 2D – Isovist
One of the simplest methodologies for undertaking a view analysis is to use an isovist. An isovist is the volume of space visible from a given point in space. Isovists are naturally three-dimensional, but they may also be studied in two-dimensions. Grasshopper has a native isovist component which generates 2-dimensional isovists. Ladybug also has a ‘view rose’, however I have found this to be less robust. This methodology is best utilised for simple scenarios where 2D resolution is sufficient. For example:
- Urban planning;
- Shopfront visibility in a retail mall;
- Patient visibility from a hospital’s nurse station;
In this scenario, the ‘fitness’ of the solution can be considered the area of the isovist. The larger the area, the greater the visibility.
Simple 3D – Isovist
To get a more spatial understanding of a view, we can use a 3D isovist. The script below is based on Andrew Heumann’s script, which can be downloaded here. Essentially want we want to do is to create a semi-sphere which will be our ‘sky dome’. We then need to subtract any objects which will block the views, that is, the context. It is then just a matter of a simple mesh ray to generate the isovist. In this scenario, the ‘fitness’ of the solution can be considered the volume of the isovist. The larger the volume, the greater the visibility.
Advanced – Ladybug view analysis
If you want to evaluate views from a surface, say from a façade, Ladybug’s ‘View Analysis’ component is ideal. The component will allow you to run the analysis using either view type or points. A view type is an integer representing the type of pre-generated view analysis that you would like to conduct:
- 0 = Horizontal Radial. The percentage of the 360 horizontal view band visible from each test point. Use this to study horizontal views from interior spaces to the outdoors.
- 1 = Horizontal 60 degree cone of vision. The percentage of the 360 horizontal view band bounded on top and bottom by a 30 degree offset from the horizontal (derived from the human cone of vision). Use this to study views from interior spaces to the outdoors. Note that this will discount the ‘_geometry’ from the calculation and only look at ‘_context’ that blocks the scene.
- 2 = Spherical. The percentage of the sphere surrounding each of the test points that is not blocked by context geometry. Note that this will discount the ‘_geometry’ from the calculation and only look at ‘_context’ that blocks the scene.
- 3 = Skyview. The percentage of the sky that is visible from the ‘input _geometry’.
Alternatively, you may have specific points that you want to test the visibility of. This may be points of interest, such as an iconic building, park or sea views. The example below is using 3 points of equal weighting. If the points require different weighting, that is, if some views are more important than others, then simply enter in relative value into the optional ‘viewPtsWeight’ input. Ladybug will produce a colour coded mesh based on the number of points visible from each test point. To allow for an accurate comparison between options, it is important that a legend parameter node is connected with a low and high bound input. This will ensure that the legend will remain consistent from option to option. Without enabling this, Ladybug will automatically adjust the min/max bounds which will make comparing options difficult.