Swarm intelligence: boids

An implementation of Graig Reynolds ‘boids’ in Processing to simulate flocking behavior of birds or a school of fish, providing a basic example of ‘swarm intelligence’. As there is no central leader, global form and coordinated motion of the flock emerge from the local interactions of the agents. Click here and chase the flock with mouseclicks.

Cellular Automata: the Game of Life

An implementation of Conway’s Game of Life in Processing. Probably the most basic example of self-organization in a complex system, as the patterns emerge from only a small set of very simple local rules. Click here and click in the grid to create a so-called ‘glider’ at once, see it walking down the screen. Hold the mouse pressed to see various patterns emerge (still lifes and blinkers).

Genetic Algorithm for box growth

My first attempt at evolutionary computation, a Genetic Algorithm (GA) written in the Processing programming language. I gave it the most simple geometrical application I could come up with: a series of boxes that can ‘grow’ in one of 6 directions with each new box. Only growth in the upward vertical direction is evolutionary rewarded, therefore running the GA will yield ever more tall individuals. Click here to see how the individuals gradually rise with every generation (from blue through purple to magenta). What you see on the screen is a stacking of 50 individuals consisting of 20 boxes, that is, one whole generation of candidate solutions stacked on top of each other, in the course of 15 generations (click inside the screen to restart). To see the fittest candidate evolve with every generation, click here.

[Fitness-proportionate selection based on roulette-wheel sampling, population size 50, crossover probability = 0.7, mutation probability = 0.001, and chromosomes length of 20 numbers between 1 and 6, fitness function f(x) = number of sixes in x, 15 generations in a run]

As the fitness evaluation of the individuals directly acts on the chromosome itself, and there is no translation from genotype to phenotype, the GA skips the mapping phase, which is actually the most interesting (challenging) part when applying GA’s in architecture.

Generative modeling without coding

By way of using 3ds max’s modifier stack (which is already inherently parametric) more creatively, interesting organic looking sculptures can be generated intuitively without any coding. This model of a tower with a deformed honeycomb structure is based on a box, and then a sequence of modifiers (Subdivide, EditPoly, Twist, Shell, and MeshSmooth).

 

Parametric tree in maxscipt

This is an example of how processes of morphogenesis can be simulated with the computer. The simple script for a tree generator is based on a recursive function, and uses parameters mimicking growth force, gravity, and wind force. By inserting some randomizers a wide range of different looking trees can be produced.

Parametric modeling with maxscript

Panelization models

What is possible with Grasshopper, should also be possible in 3ds max using maxscript, I thought. For these panelization studies I took the roof shape of Benthem Crouwel’s Utrecht train station as a point of departure and remodeled it using a combination of sine waves (trigonometry). The patterns of window openings are now based on attractors, which also take the shape of sine waves (yielding a wave in a wave).