Towards growing street-like network in-silico
Algorithm driven generation of urban-like spatial geometric structures such as ‘street/road network’ and its corresponding ‘urban blocks’ and ‘plots’ is often a fundamental process for computational design work for large scale urban environments. Examples include work in AA emtech, early DRL work, APTO urban related work has been said to prompt a port of clipper as a plugin for grasshopper by Arend van Waart. Decodingspaces toolbox is another example of software tools and libraies to generate street/road-like structure for urban architectural purposes.
While these are relatively recent within the last two decades, the computational approaches in handling similar geometries and structures has a longer history found in procedural cities generation actively being developed for other pruposes (e.g. ESRI city engine, and academically in the field of computer graphics (Parish & Müller, 2001; Temuçin et al, 2020) with the ideas of shape production systems dating back to the 1970s (i.e. Stiny & Gips, 1971; Stiny, 1980). Furthermore, city generation has an empirical-analytic aspect for the study of city-related phenomonon (Verniz, Duarte, 2021), theoretical-analytic aspect to facilitate an understanding of city-related phenomonon (Kim, Kavak & Crooks, 2018) and design-analytic aspect to generate alternative urban layouts towards attainment of certain desirable goals (Mustafa et al, 2018). Theses additaional aspects are certainly of interest but probably for another post in the future.
Back to the topic of algorithm driven generation of urban-like spatial geometric structures, the image aboves demostrates a multi-agent system based approach (more on this later) to generate street-like geometric structures over time (author’s own). This particular implementation is partly inspired by substrate – an algorithmic sketch by Tarbell 2003 programmed in Processing (the script). This is a similar idea to ‘motorcycle graphs‘ (see definition in link) in mathematics and computation. As a sidenote, I first came across this when looking into something else (Huber & Held, 2012) where it is used not as a direct output but as a way to structure data for another algorithmic process. An implementation of ‘substrate’ can be found out of the box in Grasshopper. However, what differs here is the conceptualisation and the objective tailored towards the generation of street-like structures rather than visual art or abstract mathematical structures.
The conceptualisation here for the algorthmic implemenation is more akin to motorcycle graphs using a multi-agent system based approach. A well known example of multi-agent system approach (Barve & Nene, 2013) to computer geometry can be found in Reynolds implementation of boids (Reynolds, 1987) that mimick birds flocking behaviour in-silico (also see my video tutorials to implementboids from strach in python within Rhino Grasshopper part 1, part 2, part 3 and part 4 as part of my previous job at MMU in mid-2021). Here instead of boids as ‘software agents’, each street-like polylines are constructed by their corresponding ‘software agent’ that extends the street-like polylines. The end points of the street-like line (black dots in the image) are extended per time step with slight deviation until it meets with an existing street-like polyline. A new ‘software agent’ is created when the street-like polyline reaches a certain length from the last time it branches out i.e. emitting a new ‘software agent’. While this implementation is rudimentry without much thought on the correspondence to reality, it yields similar pattern to historical settlements on visual inspection.
This is a very different take compared to another approach in algorithm driven urban-like geometric structures I demonstrated earlier in recusive subdivision on a 2D polygon. In this post, the main differences between the two approaches will be introduced from the perspective of computer geometry with specific attention to the algorthmic procedure. Followed by a discussion on the two approaches contextualise for computational design of urban environments.
Algorthmic procedure
The basic outline procedure of a MAS begins with initial condition of a number of ‘software agents’ with rules to ‘sense’ and to ‘act’. In runtime, each individual ‘software agent’ ‘senses’ the same environment per time step (note the emphasis on the same) and ‘act’ accordingly. Now, the environment contains modifications resulted from the ‘actions’ of ‘software agents’ that is feedback into the ‘senses’ of each ‘software agent in the next time step. In turn, influence the ‘actions’ in the next time step when the steps repeat.
In this simple case depicted in the image, we have an initial condition with two ‘software agent’ positions and their corresponding direction for future extension. Then we proceed for each individual ‘software agent’ to ‘sense’ existing street-like polyline in the environment and to ‘act’ – to extend a street-like polyline by a certain distance or to stop and connect to an existing street-like polyline.
A basic outline procedure of a polygon recursive subdivision algorithm begins with a polygon, a rule to define where to split the polygon i.e. center of polygon with a plane or a dividing polyline to the closest point (a sidenote: similar to the result from using a rotated bounding box). In the next step, take the resulting two polygons as input. Repeat the process until a specified stop criteria i.e. the area of the resulting polygon falls below a certain threshold.
Computational design of urban environments
One of the main advantage of the recursive subdivision approach is that it is more suited for a result-oriented practical consideration. The space between ‘streets’ – the ‘urban blocks’ are produced as 2D polygon generated as part of the sub-division process. This are readily avalibale for common procedures such as adding building types given the shape of the urban blocks.
If the design objective is to click a button to generate something visual then there are not much difference between the two approaches beyond the difference of inputs of points and direction or polygon. But, what if we are able to make changes to the procedure itself? The two approaches provide very different kinds of inputs and points to different opportunities to deal with different kinds of system of interest.
For instance, if the design objective is not about designing the visual outcomes but to design the rules of what can or cannot be done or to incentivise things to happen within a system of interest then the possibilities of inputs and the way the procedure operates become important and ones that can be made to reflect characteristics in the system of interest.
There are specific system of interest where a MAS approach is of advantage (see introduction). In this example, the main advantage of a MAS approach is when working with systems where two or more actions or outcomes of actions of parts may interact and are not isolated. An example of a higher-level effect is that the two street-like network derived from two starting points is able to connect.
In this simple example to compare a MAS and a recursive subdivision approach, the parts in MAS interacts but recursive subdivision does not. In a MAS approach ‘software agents’ interacts through its ‘senses’ on the same environment in each timestep which may be modified by another ‘software agent’ in a previous timestep. In recursive subdivision, the procedure is simply about taking a polygon and splitting it, repeating it for the number of polygon inputs, without awareness of what is beyond the polygon. (note that this is highly simplified for comparison of approaches, it is possible to add MAS to recursive subdivision addressing the last point)
Viewing from a design or design-analytic perspective both approaches can be useful tools depending on the objective. Often we may want to get to desired results faster, quicker and move on. That said, the two approaches has implications on the claims to align with certain metatheoretical considerations supporting design objective that is more than designing visual outcomes. More on this in the near future.