I first explored 2D generative design back in 2009. I used Processing to generate "blob" images and typography. I wished I developed it further but I moved onto other things.
I decided to have another look at this topic recently but this time in 3D. When I typed "generative design" into Google, the results were dominated by Autodesk's marketing material. Looking a little deeper the term was used as a marketing wrapper around topological optimization and genetic algorithms - features found in their industrial design and architecture software. This was in contrast with my understanding of the term which I see as synonymous with generative art. Wikipedia defines generative art as art that has been created with the use of an autonomous system. It's been a niche area of art since the 1960s. There are not many books on generative design but one appropriately called "Generative Design" published back in 2012 provides a good overview of the subject.
History of Generative Art
In the early 1960s a number of people started to explore art generated with computers unbeknownst to each other, including George Nees, Frieder Nake and Michael Noll. George Nees, a German academic was the first to have an exhibition titled computer graphik in 1965. He went on to create "computer-sculptures" using a CNC milling machine for the Nuremberg Biennale in 1969. The generative art at the time was printed using flatbed plotters because monitors that displayed graphics were not that common. Michael Noll and Lillian Schwartz another early generative artist, worked at Bell Labs which in the early 1960s was pioneering in the beginnings of digital computer art.
In 1995 Joshua Davis started to publish interactive generative experiments using Flash on his website praystation.com. Flash was attractive to designers at the time because it didn't require programming to create interactive websites though it did have quite a powerful programming environment. It started fall out of favour after the iPhone and iPad were launched because Apple refused to support it.
Processing is a programming environment that made generative art accessible to non-programmers. It grew out of Design By Numbers which was an experiment in teaching programming to non-programmers at MIT Media Lab in the 90s. It was lead by John Maeda who's students included Casey Reas and Ben Fry who went on to create Processing.
Generative Design in Architecture
There are not many examples of generative design in architecture though you do have architects that produce work that look more like art than architecture. Roland Snooks has spent most of his career making use of multi-agent algorithms to create installations and competition entries for buildings. In some of his building designs he has had to mix bottom-up emergent design with top-down manual design to satisfy the requirements of the brief. Early on he spent a lot of his time developing algorithms but now he focuses on the fabrication processes. In Composite Wing, shown below, he uses fibreglass to compress structure and ornament into a single irreducible whole.
Another architect who makes use of multi-agent algorithms is Marc Fornes. He creates thin-shell pavilions and installations. He describes the process as like ants crawling on the surface tracing a strip of the material. The structures are made from 3 layers of thin aluminium strips and it's the double curvature that gives it its strength rather than the material thickness.
Michael Hansmeyer takes a different approach. His interest lies in subdivision of surfaces. Subdivision is the process of repeatedly subdividing a mesh to make it smoother. He creates these installations, 3D printed from sandstone that have unbelievable detail. I've replicated the process he used to get a better understanding how he created these forms in one of my generative design exercises below.
While the previous architects explore static form that emerges from code, Philip Beesley explores emergence in physical form itself. He creates installations using sensors, microcontrollers and actuators that move and interact with the user. In Hyloxoic Ground, shown below he has created an installation that the user walks through. It consists of proximity sensors that tracks the user. This information is sent back to a network of microcontrollers which cause parts to move in a quiet way initially but become more turbulent when there are more people in the room. The network of microcontrollers communicate with each other to generate emergent behaviour.
So what about generative design in buildings as opposed to pavilions or installations? For the facade of Federation Square the architects Lab Architecture Studio looked into geometrical patterns that allowed for repetition of constructional elements while still having differentiation. The facade has a fractal-like structure where triangles combine to create larger triangles which in themselves make up larger triangles.
In Jean Nouvel's Louvre building in Abu Dhabi a large shallow dome floats above a collection of buildings. When establishing a suitable pattern for the dome, engineers Buro Happold were trying to avoid the appearance of a traditional space-frame. What they come up with is a repeating pattern of a square surrounded by 4 triangles. Each of the 8 layers of the repeating pattern is scaled and rotated to add complexity and the perception of randomness.
In the Jyävskylä Music and Arts Centre the architects used an iterative growth process on the lattices. A series of gradient maps, organised along the X, Y and Z planes determined the growth area for the various lattice systems. The gradient maps were based on structural performance as well as modulation of the micro-environments of the interstitial space between the outer envelope of the building and the envelopes of the various spaces.
Generative Adversarial Networks
There was a resurgent interest in artificial intelligence starting around 2012. It was focused on neural networks which have been around since the 1950s. What prompted this renewed interest is that large companies in Silicon Valley were handling huge amounts of data and they discovered that when you train neural networks on these large datasets, they start to become very effective. Neural networks are about recognising patterns in unstructured data e.g. recognising cats in photos though their use in design is marginal.
In 2014 Ian Goodfellow invented generative adversarial networks. These consist of two neural networks. The generator neural network starts by generating random content. The discriminator neural network which is trained on a training set decides whether it's real or fake. The generator uses feedback from the discriminator to improve its next attempt. This process continues until the discriminator can't tell whether the generated content is real or fake. What you end up with is content that is unique but similar to what is in the training set.
Most of the projects demonstrating GANs work on 2D images but there is some work being done on 3D GANs that could potentially be useful in architecture and product design. For example one project being worked on at MITs Computer Science and AI Lab generates crude voxel models of chairs, sofas and tables. One can imagine a more refined version automatically generating designs that are similar but not the same as existing designs. While this process might not create the most innovative of designs it might carve out a space in routine design work and potentially put designers out of work.
To get an idea of the potential of generative design I decided to do a series of experiments. Most of the experiments make use of a biological or chemical process found in nature that's been translated into an algorithm. The experiements were created in Houdini - a procedural modeller that is used in the special effects industry. The geometry was created using a node graph and VEX code. It's similar to Grasshopper and Dynamo but has far better support for iterative processes.
Space colonisation is a different take on generating tree-like structures in computer graphics. Previously branches would be recursively forked where as in space colonisation it starts with a random distribution of attractors that define where the branches will end. Branches grow towards these attractors splitting if needed. This produces a more even distribution of branches.
The above diagram illustrates how the algorithm works. The black circles are the branch nodes and the blue circles are the attractor nodes.
- A series of branch nodes are initially created to form the trunk of the tree.
- Each attractor node finds the nearest branch node.
- Normalised vectors between the branch nodes and attractor nodes are generated.
- The average of these vectors is then calculated.
- New branch nodes are created in the direction of the vectors calculated in the previous step.
- If a branch node gets near an attractor node, the attractor node is removed.
- The process starts again.
And here's the same algorithm but on the surface of a shape:
Diffusion limited aggregation is another tree-like structure algorithm but it is derived from chemical and physical processes rather than biological. It describes, among other things, dendritic crystals in limestone. When scientists first discovered them they thought they were fossils of ancient plants but were in fact inorganic growth of mineral solutions flowing through cracks in the rock.
The reaction and diffusion of chemicals can produce a variety of patterns, reminiscent of those often seen in nature. Chemical A is added at a certain rate and reacts with chemical B which is removed at a certain rate. While the process simulates a chemical process you can recreate the process in Photoshop using a blur filter. In Houdini this can be done using 3D blurring or the Gray Scott equations.
You grow a line in such a way that it doesn't intersect. You end up with a very long line relative to the area it covers. Zaha Hadid architects used this process to create an installation for Milan Design Week where the line was created by a robot extruding a structural strip.
This is similar to differential line growth but for a surface. Nervous System explored this concept in Floraform which was inspired by the biomechanics of growing leaves and blooming floors. Plants use differential growth were one side of the stem will grow faster than the other so it ends up growing towards the light.
Craig Reynolds came up with a computer model that describes the motion of bird flocks and fish schools. It was used to simulate bat swarms and penguin flocks in Tim Burton's "Batman Returns". The model had 3 rules:
Below is an implementation of those rules along with avoiding obstacles and predators.
In this version I traced the motion of the particles over time to create growing metal rods. The same concept was used by Soomeen Hahm to create a Steampunk Pavilion for the Tallinn Architecture Biennial.
Unlike the previous experiments this one is not based on a natural process instead it's based on subdivision - a process used in computer graphics to smooth meshes. Edwin Catmull, the former president of Pixar came up with a version of the subdivision algorithm and is used in Pixar's films. Michael Hansmeyer was interested in 2D and 3D subdivision and discovered something interesting when you modify the subdivision process.
- Burry, Jane, and Burry, Mark, The New Mathematics of Architecture. London: Thames & Hudson, 2010
- Bohnacker, Hartmut et al., Generative Design. New York: Princeton Architectural Press, 2012
- Agkathidis, Asterios, Generative Design (Form + Technique). Laurence King, 2016
- Pearson, Matt, Generative Art. Manning, 2011
- Nake, Frieder, "Eyeo 2014: Frieder Nake"
- Rosenkrantz, Jessica and Jesse Louis-Rosenberg, "Digital Fabrication Lecture Series: Nervous System"
- Wang, Che-Wei, "When Design Gets Swallowed by Engineering"
- Snooks, Roland, Talk at MIT.
- Hansmeyer, Michael, "Building unimaginable shapes"
- Fornes, Marc, NXT BLD 2019.
- Beesley, Philip, "Building living architecture"