Tutorial | 2D and 3D isovists for visibility analysis

Tutorial | 2D and 3D isovists for visibility analysis

This tutorial demonstrates the use of 2d and 3d isovist components for the visibility analysis of architectural and urban space. The collection of example files presented in this blog post is part of the online course on visibility analysis from online teaching platform (OTP) for  the Computational Methods in Architecture, Urban Design and Planning at Bauhuas University Weimar. The implementation of 2d isovist is based on the concepts presented by Benedikt in 1979. The 3d isovist was developed by the DeCodingSpaces team as extension of principles for constructing 2d isvovist to the third dimension. For further details on the isovist measures and the theory behind it, please visit the Bauhaus OTP platform.

Development team:

Martin Bielik 1 Ekaterina Fuchkina1, Sven Schneider1, Reinhard Koenig2,3

1 Bauhaus University, Weimar, Computer Science in Architecture
2 Bauhaus University, Weimar,  Computational Architecture
3 Digital Resilient Cities, Austrian Institute of Technology

Credits:

Virtual Westgate 3D Model: Cognition, Perception, and Behaviour in Urban Environments, Future Cities Laboratory, Singapore-ETH Centre

 Li, H., Thrash, T., Hölscher, C., & Schinazi, V. R. (2019). The effect of crowdedness on human wayfinding and locomotion in a multi-level virtual shopping mall. Journal of Environmental Psychology, 65(January), 101320.

 

 

Topics covered in tutorial:

2D ISOVIST

  • single isovist
  • isovist along path
  • isovist field
  • results visualisation / object mapping

For all examples, we calculate following 2d isovist measures:

Area, Perimeter, Compactness, Circularity, Convex deficiency, Occlusivity, Min radial, Max radial, Mean radial, Standard deviation, Variance, Skewness, Dispersion, Elongation, Drift angle, Drift magnitude

3D ISOVIST

  • single isovist
  • isovist along path
  • isovist field
  • results visualisation / object mapping

For all examples, we calculate following 3d isovist measures:

Volume, Min radial, Max radial, Mean radial, Standard deviation, Sky factor, Ground factor, Object factor

Building context*


*the building geometry is subject of copyright and cannot be freely shared. The grasshopper scripts are free to download

 

Requirements:

Install instructions:

Unblocking plugins

After downloading the DeCodingSpaces toolbox archive file, check if its unblocked before extracting the zip archive. Right click on the file > Properties > select unblock > select ok

Install components

After unlocking and extracting the DeCodingSpaces toolbox archive, copy the “DeCodingSpaces Libraries” folder into the grasshopper component folder. The grasshopper component folder can be found at:

C:\\Users\\YourUserName\\AppData\\Roaming\\Grasshopper\\Libraries

or via grasshopper file menu:

Install user objects

After unlocking and extracting the DeCodingSpaces toolbox archive, copy the “DeCodingSpaces UserObjects” folder into the grasshopper UserObjects folder. The grasshopper component folder can be found at:

 C:\\Users\\YourUserName\\AppData\\Roaming\\Grasshopper\\UserObjects

or via grasshopper file menu:

IMPORTANT NOTES:

1. Use only DeCodingSpaces toolbox version from this tutorial (see ling above). Any earlier or later version might cause errors.
2. GPU acceleration runs only on CUDA compatible graphic cards – NVIDIA GPU’s

Part 1:

2D isovist analysis

1a. Urban context

Start here, the urban examples are simple and easy to interact with. The observer as well as the obstacles (buildings) are positioned on flat plane. The urban examples do not require any external Rhino file to run. All geometry is already embedded in the grasshopper files.

1a.1| SINGLE ISOVIST

Basic setup the 2d isovist component. You can experiment with the view angle, direction, range parameters. Try to change the number of rays used to generate the isovist to speed up the calculation or increase the precision.


Download Grasshopper file

1a.3| ISOVIST PATH

Constructing directed 2d isovist along predefined path. Construct your own path through the environment and try different settings for view angle and view range. Observe how the isovist measures are changing during the movement along the path


Download Grasshopper file

1a.2| VISIBILITY MAPPING

Mapping the visibility back to the surrounding objects. We show how to map the results on the obstacle lines  – building facades and buildings. We color the surrounding context based on its visibility. Additionally, we demonstrate how to normalize the visibility of objects by their length (for facades) or area (for buildings)


Download Grasshopper file

1a.4 | ISOVIST FIELD

Calculate 2d isovist properties for multiple vantage points arranged on the grid. Change the grid size and observe how the high and low values for each measure are distributed throughout the space.


Download Grasshopper file

1b. Building context

These are more advanced examples build on the same principles as show in the urban context section. The main reason adding extra complexity to the algorithms is the need to automatically filter the obstacle geometry relevant for each floor and than map the results back.


IMPORTANT NOTES:

  1. The architectural examples do require external Rhino file to run. Please download and open this prior to running any example from this section.
    2d_3d Isovsits _building.3dm
  2. 2d isovist cannot be analyzed for multiple floors at the same time. Each floor has to be analyzed individually.
  3. Algorithm performance depends  on the number of obstacles being analyzed. To speed up the analysis, simplify the scene and use GPU acceleration

1b.1| SINGLE ISOVIST

Basic setup the 2d isovist component. You can experiment with the view angle, direction, range parameters. Try to change the number of rays used to generate the isovist to speed up the calculation or increase the precision. Turn on and off layers which are used as view obstacles and observe the effect on the isovist.


Download Grasshopper file

1b.3| ISOVIST PATH

Constructing directed 2d isovist along predefined path through the different levels of the building. Construct your own path and try different settings for view angle and view range. Observe how the isovist measures are changing during the movement along the path.


Download Grasshopper file

1b.5 | ISOVIST FIELD

Calculate 2d isovist properties for multiple vantage points arranged on the grid. Change the grid size and observe how the high and low values for each measure are distributed throughout the space. View the results for individual floors.


Download Grasshopper file

1b.2| VISIBILITY MAPPING

Mapping the visibility back to the surrounding objects – shops. We show how to map the results on the obstacle lines  – shopping windows and individual stores. We color the surrounding context based on its visibility. Additionally, we demonstrate how to normalize the visibility of objects by their length (for shopping windows) or area (for stores).


Download Grasshopper file

1b.4 | ISOVIST PATH CUMULATIVE MAPPING

Map the results from the whole isovist path on shops. View the results for individual floors.


Download Grasshopper file

1b.6 | VERTICAL ISOVIST

Calculate 2d isovist properties for section through the building. Since the 2d isovist is always calculated in XY plane, we rotate the building geometry by 90 degrees, calculate the isovist and rotate everything back. Move isovist vantage point through the building and see how the vertical 2d isovist changes. You can also define the view direction of the vertical 2d isovist plane.


Download Grasshopper file

Utilities

ANALYSIS GRID

Utility from DeCodignSpaces toolbox for automated generation of analysis grids. Define the analysis boundary, grid cell size and the area inside of which the grid should be generated.


Download Grasshopper file

Part 2:

3D isovist analysis

2a. Urban context

Start here, the urban example is simple and easy to interact with. The observer as well as the obstacles (buildings) are positioned on flat plane. The urban examples do not require any external Rhino file to run. All geometry is already embedded in the grasshopper files.

2a.1| SINGLE 3D ISOVIST

Basic setup the 3d isovist component. You can experiment with the horizontal and vertical view angle, direction, range parameters. Try to change the number of rays used to generate the isovist to speed up the calculation or increase the precision.


Download Grasshopper file

2b. Building context

These are more advanced examples for 3d isovist build on the same principles as show in the urban context section.


IMPORTANT NOTES:

  1. The architectural examples do require external Rhino file to run. Please download and open this prior to running any example from this section.
    2d_3d Isovsits _building.3dm
  2. Algorithm performance depends  on the number of obstacles being analyzed. To speed up the analysis, simplify the scene and use GPU acceleration

2b.1| SINGLE 3D ISOVIST

Basic setup the 3d isovist component. You can experiment with the horizontal and vertical view angle, direction, range parameters. Try to change the number of rays used to generate the isovist to speed up the calculation or increase the precision. Turn on and off layers which are used as view obstacles and observe the effect on the isovist.


Download Grasshopper file

2b.2| 3D ISOVIST PATH

Constructing 3d isovist along predefined path and map the visibility back to the surrounding objects – shops. We color the surrounding context based on its visibility. Additionally, we demonstrate how to normalize the visibility of objects by their length (for shopping windows) or area (for stores).


Download Grasshopper file

2b.3| 3D ISOVIST FIELD

Calculate 3d isovist properties for multiple vantage points arranged on the grid. Change the grid size and observe how the high and low values for each measure are distributed throughout the space. View the results for individual floors.


Download Grasshopper file

Evolving Configurational Properties

Evolving Configurational Properties

article published at 12th Space Syntax Symposium at Jiaotong University, Beijing, China

SIMULATING MULTIPLIER EFFECTS BETWEEN LAND USE AND MOVEMENT PATTERNS

 


Martin Bielik 1, Reinhard Koenig2,3 , Ekaterina Fuchkina1, Sven Schneider1, Abdulmalik Abdulmawla1

1 Bauhaus University, Weimar, Computer Science in Architecture
2 Bauhaus University, Weimar,  Computational Architecture
3 Digital Resilient Cities, Austrian Institute of Technology

Abstract

In this paper, we introduce simulation framework for examining the effect of street network configuration on the evolution of the relationship between movement and land use allocation over time. The causal chain introduced in Space Syntax literature suggests that the potential generated by spatial configuration of a street network influences how people move and that these movement flows attract specific types of land uses. These land uses generate in turn additional movement creating an endless cycle of mutual interactions. In Space Syntax, this interaction between movement flow and land use is assumed to work in a positive feedback loop, multiplying the initial potentials given by a street network configuration. The practical consequence of this hypothetical assumption for the Space Syntax method is that the outcome of the feedback loop can be predicted as multiplication of the initial state and therefore doesn’t have to be simulated.
In this paper, we introduce a computational method for testing the multiplier effect hypothesis and identify the cases in which it holds true and those ones in which more detailed investigation considering feedback loops might be necessary. We demonstrate how such investigation based on the simulation of the interactions between movement and land use in time can be operationalized and conduct series of studies exploring the spatio-temporal effects of street network configuration.
We conclude that these exemplary studies show how the presented simulation model can be used to test the core assumption behind the Space Syntax method. We also offer preliminary insides about when and under which conditions it can be reliably applied and when system dynamic simulation might be necessary to predict not only the immediate, but also the long-term effects of street network configurations on centrality, movement and land use distribution.

Keywords

Street network configuration, System dynamics, Centrality, Movement, Land use, Multiplier effects, Natural movement

 

One sentence summary:

We explore the evolution of the configurational effects of urban form on the movement and land use allocation over time.

Paper overview

In this section, we compiled a short review of the main ideas discussed in the paper. The purpose is to get a general idea that can be deepened by reading the full paper attached below.

1. Background | What do we already know?

A)

“Street network configuration affects how people move”


(Golledge 1995)
B)

“Street network configuration affects where human activities allocate”

(Hansen 1959)
C)

“Movement influences allocation of land uses and allocation of land uses influence movement”

(Hillier 1996a)

D)

“Space Syntax is about bringing the configuration, movement and allocation of activities together”

(Hillier 1996b)

2. Research gap | What do we don’t know?

“Does the effect of street network configuration on movement and land use allocation evolve over time?”

OPTION A)

“The effect of configuration on movement and land use is stable over time, it DOES NOT EVOLVE

OPTION B)

“The effect of configuration on movement and land use does DOES EVOLVE over time”

Consequences

A) = SIMPLE TO PREDICT

B) = HARD TO PREDICT

 

Source: http://labs.minutelabs.io/Chaotic-Planets

3. Research question | What do we want to know?

Question A

Under which conditions is the result of the feedback loop between movement and land use distribution predictable as a function of the multiplier effect?

 

Question B

Under which conditions does the natural movement potential of the network configuration correct the effect of unequal distribution of land uses (disruptions) throughout the feedback cycle?

 

“Space Syntax method is based on the assumption that option A holds true. In other words, it is assumed that the outcome of the interaction between land use and movement can be predicted without simulation.”

This assumption is based on:

1. Multiplier effect hypothesis

The result of the feedback loop between movement and land use distribution is predictable as a function of the multiplier effect

(Hillier 1996b)
2. Natural movement hypothesis

The natural movement potential of the network configuration corrects the effect of unequal distribution of land uses (disruptions) throughout the feedback cycle

(Hillier 1999)

4. Research method | Spatio-temporal simulation engine

Left ) UML diagram of the Space Syntax underlying urban dynamics model. a) current model of the feedback loop between movement and land use. b) displays the “multiplier effect” hypothesis.
Right) Exemplary illustration of two iterations of our dynamic simulation. The initial state is an equally loaded network. The centrality values show the angular betweenness centrality with radius Rn (global radius).Value range: high movement potential = red, low movement potential  = blue

5. Results | Simulation experiments

We exemplary explore the impact of different conditions on the multiplier and natural movement effect. The conditions explored in this study relates to how we model the effect of land use on movement and what is the initial distribution of land use in the simulation.

Explored conditions & model parameters:

  • Definitions of movement potential centrality MPC.
    Closeness vs. Betweenness centrality
  • Analysis radius
    Local radius of 600m vs. global radius
  • Initial land use weightings w
    Equally loaded vs. Disrupted network*

For the following experiments, we used the street network of the inner city of Weimar as an exemplary case study area. Weimar is a medieval, mid-size German city with approximately 60.000 inhabitants. The size, historical development and the overall variety of street network patterns makes it a good candidate for testing the proposed simulation model. On the one hand, the size of the city makes it possible to quickly calculate many iterations of the simulation, but on the other hand it is large and diverse enough to let non-trivial configurational patterns emerge.

*Disrupted network in context of this paper means that in the initial stage of the simulation, not all street are loaded with equal amount of land use. In other words some streets produce more movement than others, which is represented by higher weighting of selected graph vertices.

Experiment 1 | Measuring the multiplier effects  on equally loaded network

Equally loaded network in context of this paper means that in the initial stage of the simulation, all street are loaded with equal amount of land use. In other words all streets produce same amount of movement, which is represented by equal weighting of all graph vertices.

E.1a

Conditions:

  • Equally loaded network
  • Betweenness centrality
  • Global radius
E.1c

Conditions:

  • Equally loaded network
  • Betweenness centrality
  • Local radius
E.1b

Conditions:

  • Equally loaded network
  • Closeness centrality
  • Global radius
E.1d

Conditions:

  • Equally loaded network
  • Closeness centrality
  • Local radius

Experiment 1 | Summary

Quantifying the multiplier effect by measuring linear relationship between the movement pattern at the first and the last iteration of the simulation

 

  • Multiplier effect is reliable predictor for:
    i) global closeness centrality
    ii) global betweenness centrality
  • Strong effect of scale of the centrality model
    Multiplier effect Global > Multiplier effect Local

Experiment 2 | Measuring the multiplier effects on disrupted network

Disrupted network in context of this paper means that in the initial stage of the simulation, not all street are loaded with equal amount of land use. In other words some streets produce more movement than others, which is represented by higher weighting of selected graph vertices.

E.2a

Conditions:

  • Disrupted network
  • Betweenness centrality
  • Global radius
E.2c

Conditions:

  • Disrupted network
  • Betweenness centrality
  • Local radius
E.2b

Conditions:

  • Disrupted network
  • Closeness centrality
  • Global radius
E.2d

Conditions:

  • Disrupted network
  • Closeness centrality
  • Local radius

Experiment 2 | Summary

Quantifying the multiplier effect by measuring linear relationship between the movement pattern at the first and the last iteration of the simulation

 

  • Multiplier effect is NOT reliable predictor
  • Doesn’t pick up most central streets*.* Non normality & heterocsedascity

Experiment 1&2 | Measuring the natural movement effect

Quantifying the natural movement effect by measuring linear relationship between the movement pattern at the first iteration of equally loaded network and last iteration of the disrupted network.

 

  • Natural movement is reliable predictor for:
    i) global closeness centrality

6. Conclusions | Joined multiplier and natural movement effect

Evaluating the impact of scale, initial network loading, and type of centrality measure on natural movement and multiplier effect. In other words, under which conditions is the influence of configuration on movement predictable without simulations and when the simulation is needed.

 

NO SIMULATION IS NEEDED:

  • For global closeness and betweenness centrality in equally loaded networks
  • For global closeness and in disrupted networks

SIMULATION IS REQUIRED:

  • When running local models
  • When running models on disrupted – non equally loaded networks

7. Outlook | Next steps

A) Testing the simulation results against empirical longitudinal data

B) Testing the sensitivity of multiplier and natural movement effect on conditions related to street network configuration and type of land use (i.e. does multiplier effect depends on the type of the street network layout and how we model the impact of movement on land use).

 

Download the article

Bielik et al. – 2019 – Evolving configurational properties.pdf


Cite the article

Bielik, M., Koenig, R., Fuchkina, E., Schneider, S., & Abdulmalik, A. (2019). EVOLVING CONFIGURATIONAL PROPERTIES – Simulating multiplier effects between land use and movement patterns. Presented at the 12th Space Syntax Symposium, Beijing, China.
 

Supplementary materials

 

Grasshopper scripts

Following grasshopper script  simulates the interaction between movement flows and land use distribution through street network configuration. The street network used in the example is simplified example of city of Weimar, Germany which was used as an example in the paper. The data for the street network is directly embedded in this script.

Versions of the script:

1. Simplified script, easy to run. This script requires only DeCodingSpaces toolbox and Anemone plugins being installed (see instructions bellow)
evolving configurational properties_simple.gh

2. Full script. This script requires also R language additionally to DeCodingSpaces toolbox and Anemone plugins being installed (see instructions bellow). This version of the script offers some additional visualization and possibility to save the simulation results
evolving configurational properties_full.gh


NOTE: Get sure the GPU acceleration is enabled.
(otherwise is the simulation too slow to execute in real time)
NOTE: Check the requirements section bellow and get sure you get all the plugins installed using the links on this website.(otherwise the version might not fit the version of the script)

 

 

Requirements

Install instructions

Unblocking plugins

After downloading the RequiredGHPlugins_SimAUD19.zip file, check if its unblocked before extracting the zip archive. Right click on the file > Properties > select unblock > select ok

Install components

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 components” folder into the grasshopper component folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\Libraries

or via grasshopper file menu:

Install user objects

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 user objects” folder into the grasshopper UserObjects folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\UserObjects

or via grasshopper file menu:

Enable GPU acceleration

The requirement to run the GPU accelerated street network analysis is the CUDA platform enabled NVIDIA GPU.
If this requirement is fulfilled, you have to copy the folders “Alea.CUDA.CT.LibDevice” and “Alea.CUDA.CT.Native.X86.B64.Windows” from the GPU acceleration folder to your Rhino install folder (i.e. “Program Files\Rhinoceros 6 (64-bit)\System\”).

SSS12 Workshop | Parametric urban planning with Space Syntax and DeCodingSpaces-toolbox for Grasshopper

SSS12 Workshop | Parametric urban planning with Space Syntax and DeCodingSpaces-toolbox for Grasshopper

The workshop on parametric urban planning  with Space Syntax and DeCodingSpaces-toolbox for Grasshopper is hosted by:

The 12th International Space Syntax Symposium (12SSS) will be held in Beijing from 8th to 13th July 2019, at Beijing Jiaotong University


 

Lecturers:

Reinhard König                   Bauhaus University, Weimar
Martin Bielik                       Bauhaus University, Weimar
Yufan Miao                          ETH Zurich, FCL Singapore

Short summary:

During this one-day-workshop you will be introduced to methods for the analysis, generation and optimizations of urban layouts with DeCodingSpaces-Toolbox for Grasshopper. We will use existing urban context to analyze the impact of the street network configuration on different types of human behavior such as movement, walkability or land use distribution. Than we will learn how to use the analysis results to generate new street network layouts, parcels and buildings parametrically. Finally, we will demonstrate how to you evolutionary optimization to improve the performance of the parametric design toward pre-defined planning goals.

For this purpose we use Grasshopper for Rhino3D with the plugin DecodingSpaces-Toolbox. The methods are demonstrated by realistic case studies in an existing urban environments.

This workshop is intended for both practitioners and researchers interested in rapid context aware generation of urban layouts. The presented workflow let you computationally explore the design options of new urban development area with the potential to assess the site potential and inform the early planning stages.

Workshop schedule

8:30 – 9:00 Registration
9:00 – 12:25 Analysis | Street network analysis with DeCodingSpaces Toolbox

Shortest paths – Metric, Angular, Custom
Multi modal travel
Centrality measures
Weighting origins and destinations of movement
12:25 – 13:30 Lunch break
13:30 – 15:00 Generation | Parametric urban form synthesis

Street network synthesis
Street block recognition
Parametric parcelation
Parametric building generation
15:00 – 15:30 break
15:30 – 17:00

Optimization | Evolutionary optimization of street network configuration

Evolutionary optimization basics
Street network as custom chromosome
Application examples

Install instructions

Unblocking plugins

After downloading the RequiredGHPlugins_SimAUD19.zip file, check if its unblocked before extracting the zip archive. Right click on the file > Properties > select unblock > select ok

Install components

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 components” folder into the grasshopper component folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\Libraries

or via grasshopper file menu:

Install user objects

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 user objects” folder into the grasshopper UserObjects folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\UserObjects

or via grasshopper file menu:

Enable GPU acceleration

The requirement to run the GPU accelerated street network analysis is the CUDA platform enabled NVIDIA GPU.
If this requirement is fulfilled, you have to copy the folders “Alea.CUDA.CT.LibDevice” and “Alea.CUDA.CT.Native.X86.B64.Windows” from the GPU acceleration folder to your Rhino install folder (i.e. “Program Files\Rhinoceros 6 (64-bit)\System\”).

Part 1 – Street Network Analysis

Presentation

Documentation

Interactive documentation of the Street Network Analysis toolbox.

Hands on example files:

Street Network Editing Utilities

01| CITY GRAPH STARTING EXAMPLE

Basic setup for different options how to use the street network analysis tools to calculate shortest paths and centrality measures.


Download Grasshopper file

04| CITY GRAPH ONE WAY ROADS

The underlying spatial graph is directed one, which means that to every street we can assign different distance weight in each direction. In the example we demonstrate how this can be used to model traffic regulation such as one way streets.


Download Grasshopper file

02| PARK EDGE WEIGHTING

Calculating shortest paths by assigning custom distance weights (graph edges) to the spatial network. The edge weights can be metric, angular, custom or any combination of these. Thus we can represent different concepts of distance (e.g. time, safety, cognitive distance)


Download Grasshopper file

05| CITY GRAPH CENTRALITY VERTEX WEIGHTING

When calculation street network centrality, we can assign custom weight to each graph vertex (origin and destination of shortest path). This can be used to model network in which some nodes (e.g. train station) produce more movement than others.


Download Grasshopper file

03| CITY GRAPH BUS EDGE WEIGHTING

The application of custom distance weights (edge weights) is demonstrated on the example of multi-modal transportation network. Street segment which serve as bus routes are given shorter distance representing travel time compared to pedestrian street segments.


Download Grasshopper file
Download Rhino file

06| CITY GRAPH CENTRALITY DISTANCE DECAY

In several centrality measures (e.g. gravity), the attractiveness of destination is  inversely proportional to function of distance. As distance grows, the attractiveness is getting lower. In the street network analysis toolbox, this distance decay function can be defined by user representing different types of behavior and aversion to travel.


Download Grasshopper file

Street Network Editing Utilities

01| NETWORK EDITING TOOLS

To gain correct and speedy analysis results of any street network, this has to be usually simplified and corrected for drawing errors. DeCodingSpaces toolbox offers range of tools to split lines, remove duplicates, simplify intersections and remove dead ends.


Download Grasshopper file

02| CUSTOM OFFSET

Transforms the street network into closed polylines – street blocks which can be offseted by custom value for each block edge. We demonstrate this functionality by offseting the block edges by their respective street network centrality values.


Download Grasshopper file

Part 2 – Generation of Street network, Plots and Buildings

Street Network Optimization

01| STREET NETWORK GENERATION

Generate Street Networks in a given area with initial street segments by controlling parameters for street segment length, angle between streets and connectivity.


Download Grasshopper file

02| BUILDING PLOTS GENERATION

Based on the generated Street Network we extract the Street Blocks and generate Plots based on control parameters like the maximal area, minimal width of the street side, etc.


Download Grasshopper file

03| BUILDING GENERATION

For each plot we generate buildings of various typologies controlling the parameters for setbacks, building sizes, orientation and density.


Download Grasshopper file

Part 3 – Street Network Optimization

Hands on example files:

Street Network Optimization

01| Chromosome Demonstration

In this example file, we demonstrate how the generative methods are represented using a specific data structure to be used for evolutionary optimization in the next step.


Download Grasshopper file

02| Evolutionary Multi-Criteria Optimization

Based on the generative components and a particular data structure, we can use a multi-criteria evolutionary optimization algorithm to search for good urban design variants.


Download Grasshopper file

SimAUD 2019 Workshop | Adaptive Urban Layout Optimization with DeCodingSpaces-Toolbox

SimAUD 2019 Workshop | Adaptive Urban Layout Optimization with DeCodingSpaces-Toolbox

During this one-day-workshop you will be introduced to methods for the analysis, synthesis and optimization of urban layouts. We will cover computational generation of the street network, parcellation and the building form, based on the existing urban context and various design goals. You learn how to analyze street networks effectively, and we show you how to compare and optimize the generated designs systematically. For this purpose we use Grasshopper for Rhino3D with the plugin DecodingSpaces-Toolbox, and a new Design-Space-Exploration tool. The methods are demonstrated by realistic case studies in an existing urban environments.

This workshop is intended for both practitioners and researchers interested in rapid context aware generation of urban layouts. The presented workflow let you computationally explore the design options of new urban development area with the possibility to assess the site potential and inform the early planning stages. The presented DeCodingSpaces-Toolbox for Grasshopper is a collection of analytical and generative components for algorithmic architectural and urban planning. The toolbox is free software released by the Computational Planning Group (CPlan).

The workshop on Adaptive Urban Layout Optimization in Grasshopper is hosted by:

SimAUD 2019, Atlanta – USA, School of Architecture, Georgia Tech,  7. April 2019

Requirements

Install instructions

Unblocking plugins

After downloading the RequiredGHPlugins_SimAUD19.zip file, check if its unblocked before extracting the zip archive. Right click on the file > Properties > select unblock > select ok

Install components

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 components” folder into the grasshopper component folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\Libraries

or via grasshopper file menu:

Install user objects

After unlocking and extracting the RequiredGHPlugins_SimAUD19.zip archive, copy the “SimAUD19 user objects” folder into the grasshopper UserObjects folder. The grasshopper component folder can be found at:

 C:\Users\YourUserName\AppData\Roaming\Grasshopper\UserObjects

or via grasshopper file menu:

Enable GPU acceleration

The requirement to run the GPU accelerated street network analysis is the CUDA platform enabled NVIDIA GPU.
If this requirement is fulfilled, you have to copy the folders “Alea.CUDA.CT.LibDevice” and “Alea.CUDA.CT.Native.X86.B64.Windows” from the GPU acceleration folder to your Rhino install folder (i.e. “Program Files\Rhinoceros 6 (64-bit)\System\”).

Part 1 – Street Network Analysis

Presentation

Documentation

Interactive documentation of the Street Network Analysis toolbox.

Hands on example files:

Street Network Editing Utilities

01| CITY GRAPH STARTING EXAMPLE

Basic setup for different options how to use the street network analysis tools to calculate shortest paths and centrality measures.


Download Grasshopper file

04| CITY GRAPH ONE WAY ROADS

The underlying spatial graph is directed one, which means that to every street we can assign different distance weight in each direction. In the example we demonstrate how this can be used to model traffic regulation such as one way streets.


Download Grasshopper file

02| PARK EDGE WEIGHTING

Calculating shortest paths by assigning custom distance weights (graph edges) to the spatial network. The edge weights can be metric, angular, custom or any combination of these. Thus we can represent different concepts of distance (e.g. time, safety, cognitive distance)


Download Grasshopper file

05| CITY GRAPH CENTRALITY VERTEX WEIGHTING

When calculation street network centrality, we can assign custom weight to each graph vertex (origin and destination of shortest path). This can be used to model network in which some nodes (e.g. train station) produce more movement than others.


Download Grasshopper file

03| CITY GRAPH BUS EDGE WEIGHTING

The application of custom distance weights (edge weights) is demonstrated on the example of multi-modal transportation network. Street segment which serve as bus routes are given shorter distance representing travel time compared to pedestrian street segments.


Download Grasshopper file
Download Rhino file

06| CITY GRAPH CENTRALITY DISTANCE DECAY

In several centrality measures (e.g. gravity), the attractiveness of destination is  inversely proportional to function of distance. As distance grows, the attractiveness is getting lower. In the street network analysis toolbox, this distance decay function can be defined by user representing different types of behavior and aversion to travel.


Download Grasshopper file

Street Network Editing Utilities

01| NETWORK EDITING TOOLS

To gain correct and speedy analysis results of any street network, this has to be usually simplified and corrected for drawing errors. DeCodingSpaces toolbox offers range of tools to split lines, remove duplicates, simplify intersections and remove dead ends.


Download Grasshopper file

02| CUSTOM OFFSET

Transforms the street network into closed polylines – street blocks which can be offseted by custom value for each block edge. We demonstrate this functionality by offseting the block edges by their respective street network centrality values.


Download Grasshopper file

Part 2 – Street Network Synthesis

Hands on example files:

Street Network Generation and Optimization

01| STREET NETWORK SYNTHESIS

02| Chromosome Demonstration

03| Evolutionary Multi-Criteria Optimization

In case you have issues with the Selector component of the DeCodingSpaces-Toolbox, it may be caused by the decimal symbol used by your operating system: make sure you use point, no comma. Second, ensure that the path to your PISA folder (part of the DeCodingSpaces-Toolbox in your libraries folder) has no space characters, points, or other special characters. You can copy the PISA folder with its content to C:\PISA and delete it from the libraries folder.

Part 3 – Exploration

Magnetizing Floor Plan Generator

Magnetizing Floor Plan Generator

Presented project can be considered as an exploration of various ways of generating floor plans for public
buildings. Public buildings were chosen because of their complex and non-standardized structure. The aim was to
try different approaches, choose the best methods and incorporate them into my own algorithm.

Project Team:
Egor Gavrilov (Author), Reinhard König (Supervisor), Sven Schneider (Supervisor), Martin Dennemark (Supervisor)

Introduction

For architects as well as developers and urban planners working on the floor plans or estimating the shape and dimensions of large buildings is always a challenge. This task requires some knowledge and what is more important – even with understanding of the process it is a very time-consuming task. One should take into consideration the arrangement of all rooms as well as adjacencies and connections of main spaces. Generally, for every different shape or position of the building’s footprint the whole new room structure should be created.

The statement was put on as a starting point: Each of the rooms in a building is somehow accessible from any other room. It means that the whole communication structure is interlinked and thus forms the core. It could be said that the first step of the generation would be developing an evacuation plan, which can later be converted into more intelligible communication network.

Every room is extended by a corridor, which goes along one, two or four of its sides. Rooms are placed one-by-one in such a way, that every placed room should be attached to the main corridor structure with its own corridor. Additionally, every room should be adjacent with all required rooms. This process continues until there is no suitable space left for the next room. After that the new iteration starts and a new variant is generated. Simultaneously previously computed solutions are developed with the help of quasi-evolutionary algorithm. Eventually, the generator produces a huge number of solutions and then the best one is chosen, according to the evaluation function (generally number of the rooms placed or the total area of the rooms placed provide the most comprehensible evaluation results).

Generation Algorithm

// PREPARE INPUT

  •  rotate boundary
  •  sort rooms by their connectivity
  • find first room

// ITERATION 1

  • Place 1st room
  • Find the room that is connected with 1st room -> place it
  • Find the room that is most interconnected with currently placed rooms -> place it
  • If the room can’t be placed -> stop iteration and start over
  • Generate couple of solutions in this way -> choose 5 best of them and remove others

// ITERATION N

New iteration: improve previous solutions and generate new ones:

  • If (iteration % 3 == 0) -> Take all previous solutions, remove last 1-5 rooms and try to place them differently again.
  • If possible to place more rooms than originally, then replace old solution with this one.
  • If (iteration % 3 != 0) -> develop new solution

// END OF ITERATIONS

  • Generate couple of solutions in this way -> choose 5 best of them and remove others
  • Choose the best solution and generate output from it
  • If needed, remove dead ends and convert halls to corridors

User interface

Ease of use was considered as a crucial feature since the beginning of a project. Therefore, a simple solution for managing a room program of a house was created for the grasshopper environment. It enables user to set basic parameters, such as room name, area, room connections, entrance location, type of space (room/hall).

Expreimentation

Pin It on Pinterest