Show/Hide Mobile Menu

Generative Design


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.

Generative graphic design using Processing

Generative typography

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.

Hommage à Paul Klee, Frieder Nake, 1965
Hommage à Paul Klee, Frieder Nake, 1965

The Web

In 1995 Joshua Davis started to publish interactive generative experiments using Flash on his website 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.

Process 20, 2014, Casey Reas
Process 20, Casey Reas, 2014

Processing was released in 2001 and even now is one of the primary platforms for creating generative art though it has some downsides. The first is that Processing uses applets to share work via a browser but unfortunately applets are no longer supported by the major browsers. Luckily there is a JavaScript version called p5.js that will run in modern browsers. The second problem with Processing is that its support for 3D is limited - it only supports meshes. So a lot of the generative art produced by Processing tends to be 2D. But there are those that do use Processing for 3D work including Nervous System - a couple who have a background in Architecture and Maths who use processes from nature to create 3D printed objects.

Reaction Lamp, 2010, Nervous System
Reaction Lamp, Nervous System, 2010

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.

Composite Wing, Roland Snooks
Composite Wing, Roland Snooks, 2014, Melbourne

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.

Non-Lin / Lin, Marc Fornes, Bruges
Non-Lin / Lin, Marc Fornes, 2018, Bruges

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.

Digital Grotesque 2, Michael Hansmeyer
Digital Grotesque 2, Michael Hansmeyer, 2017

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.

Federation Square
Federation Square, Lab Architecture Studio, 2002, Melbourne

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.

Lourvre Abu Dhabi
Louvre Abu Dhabi, Jean Nouvel, 2017

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.

Jyävskylä Music and Arts Centre
Jyävskylä Music and Arts Centre, Ocean North, 1997, Finland

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.

Generative Adversarial Networks

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.

Memories of Passersby I
GAN Art - Mario Klingemann’s Memories of Passersby I

Experiments in 3D Generative Design

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

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.

Space Colonisation

The above diagram illustrates how the algorithm works. The black circles are the branch nodes and the blue circles are the attractor nodes.

  1. A series of branch nodes are initially created to form the trunk of the tree.
  2. Each attractor node finds the nearest branch node.
  3. Normalised vectors between the branch nodes and attractor nodes are generated.
  4. The average of these vectors is then calculated.
  5. New branch nodes are created in the direction of the vectors calculated in the previous step.
  6. If a branch node gets near an attractor node, the attractor node is removed.
  7. The process starts again.

And here's the same algorithm but on the surface of a shape:

Diffusion Limited Aggregation

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.

Diffusion Limited Aggregation

Reaction Diffusion

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.

Differential Line Growth

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.

Differential Line Growth

Differential Surface Growth

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.