8. Ray Casting
8.1. Ray Casting : an Introduction to Visibility Studies¶
Ray Casting involves choosing a point in your urban space, from which rays will spread at equal distance from each other. The ray stops when it hits either an obstacle or its set limit. It is the simplest and quickest way to assess visibility, but doesn’t give as much information as isovists or hedgehog. First off, click on Extensions > t4su > Visibility studies > RayCasting. A command box will appear, giving you the following possibilities:
- Choose the number of rays. This will affect the results’ precision, but taking the maximum isn’t necessarily better : if you select a small visible range, you may not need too many rays.
- The visual range is the maximum length of the rays ; any obstacle after said range will not be picked up during the process
- Set the height (z0 value). If you’re using ray casting for visibility purposes, keep a z-value around eye-level.
- Make sure the units you are working with are correct.
- Finally, you can choose to cast rays in a 2D or 3D space. This is entirely up to the type of information you want to collect. If you are only interested in street visibility and do not need information on the impact of building heights for example, a 2D Ray Casting is much more legible and should suffice.
Once you have click OK, you can click anywhere on your map to cast your rays, as many times as you need (you do not need to repeat the procedure to plot a second RayCast).
If you are not interested in the rays themselves, but rather the point of impact they share with the facades of your buildings, check out CloudOfPoints.
8.2. What is an isovist ?¶
Isovists represent the entirety of the visible plain (in 2D) or volume (in 3D) at a specific point in space, bounded by the built environment. Because isovists are built upon a point, the associated form changes as it is displaced, just as our notion of urban space changes as we walk through it. They are frequently used in many fields of visibility studies : wireless network design, landscape management and analysis, pedestrian access or security.
So how are isovists built? Originating from our point of origin (view point), rays are cast into the open space, up to a certain arbitrary distance (view limit). The resulting points of impact between each ray and its barriers (either obstacles or the view limit) are joined to form the isovist’s edge. The rays are then replaced by an isovist area.
Isovists can also be used to study a space’s convexity, that is, a region for which every pair of points in said region can be linked by a straight line also within the region. Here is a simple example of convex and non-convex spaces:
We can notice the link between ray casting and isovist formation when playing with its precision.
8.3. Creating Partial 2D Isovists¶
Partial isovists are isovists that are constrained by a certain aperture. You can automate their process using BatchProcess, or set your positions and orientation manually by clicking Extensions > t4su > Visibility Studies > PIsovist 2D. If you’re using the manual method, you will be redirected to the Partial Isovist Command Box.
First, import a linear geometry (ie: made of lines or multilines) into your Layers, or draw one yourself using the Line Tool.
Next, you’ll want to sample your pathway, then use a Batch Process.
Select PIsovist2D (which stands for Partial 2D Isovist) in the Process to apply and select the correct layer (starting with SamplePathway[…] if you’ve created your points through sampling). Finally, select Sketchup::ConstructionPoint as Geometry type.
If don’t want to use a Batch Process or would rather select the points manually,you can do so too. Simply click to set the point of origin and drag to set the orientation of your partial isovists.
Whether you’re plotting manually or automatically, you will have to fill in this command box :
- Select the aperture of your circular sectors (ie: how wide you wish the isovist to be)
- Select the number of rays : a higher number will give a more precise outline, but a lower number will greatly accelerate computation time. For example, setting the aperture to 30 and the number of rays to 60 will result in a ray every 0.5 degrees.
- Select ray length. Some trial-and-error may be needed to adjust this parameter : too short, they may not cover enough ground. Too long will result in confusing overlapping geometries and longer computation times.
- Setting the z0 value allows you to decide at which height the partial isovists are calculated. By default, they are at 1m60, an average person’s eye-height.
- You may also change the appearance of the isovists : transparency (from 0 to 1, 1 being the most opaque) as well as the color.
- When you are ready, click OK
What do we see ?
The partial isovists are constrained by the extruded building geometries. Their profile mimics our visibility as we advance along the path we have decided upon. We can notice the gradual enlargement of the isovist as we advance towards an plaza or an intersection.
8.4. 3D Isovists and Hedgehogs¶
Like 2D Isovists, 3D Isovists and hedgehogs use ray casting to map the surrounding urban space. Unlike it’s 2D counterpart though, 3D Isovists will only output assembled rays that effectively touch a surface.
When creating these 3D objects, you will have to decide whether to draw “tetrahedra or spots” (or both). By choosing tetrahedra, the cast rays are drawn, set in a group and shown. Spots on the other hand, draw out the surfaces visible from our point of interest (i.e., the faces’ areas touched by the tetrahedra).
The surfaces are created by a minimum of three points, meaning if only two rays reach a surface, that surface will not be taken into account in the Isovist/Hedgehog rendering. You will also get the following error:
The difference between a hedgehog and a 3D isovist lies in whether or not these batches of three rays form individual tetrahedra/spots, or are assembled into one. Here’s an illustration of a Hedgehog result: compare it with the Isovist result above (resolution was slightly lowered).
As with many other features, it is possible to run a batchprocess of 3D isovists. In this last example, the cathedral building wall faces were selected and sampled into points. The following result allows us to know which building facades have a potential view of any side of the cathedral.