Go to ThinkParametric

Galapagos 101 – Fundamentals Course

You can find the course here

In this 101 series about Evolutionary Computing or Evolutionary Solving, we are going to go over the basics of Evolutionary Solving and how and why it can be useful for you in everyday practice. We’re going to use an Evolutionary Solver called Galapagos, developed by David Rutten and named after the Galapagos Islands where Charles Darwin studied various species and based on those observations formulated his groundbreaking “Theory of evolution by natural selection”. This plugin comes standard within Grasshopper and is very useful to optimize complex design questions with lots of variables. It is used extensively in the fields of paleontology, genetics, ecology, agriculture, medicine and neurobiology. And in this course I’m going to show you how this approach can be useful in the field of architecture as well. A couple of examples would be; optimizing a building mass to maximize its views, optimizing a facade system according to solar radiation or use it to optimize member sizes in a structural space frame to reduce weight and cost.


Evolutionary Computing gets its inspiration from biology. They use the same techniques such as reproduction, mutation, selection and recombination. Evolutionary computing goes back as early as 1948 where, Alan Turing, proposed the term “genetical or evolutionary search”. The way Evolutionary Computing works can best be imagined through this intuitive metaphor of a landscape with peaks and valleys. On the X and Y axis we have our set of input variables or genomes and the Z-axis represents our fitness or in other words how ‘good’ or ‘bad’ our combination of genomes is. So a peak represents a range of ‘successful’ genomes and a valley belong to less fit combinations. The set of variables or population can be plotted on the landscape and with every iteration the genomes that are less fit get discarded and the ones that are fit enough will generate offspring and carry on the to the next iteration and so forth until an optimum is found. This is in a nutshell how evolutionary solving works.


We’re going to start with a basic example where we model a random landscape with peaks and valleys and let Galapagos find the highest peak. This example is perfect for you to familiarize with the concept and the workings of an evolutionary solver.


After this we’ll take a look at a simple real life scenario where we’ll optimize a set of plot outlines by equalizing their floor areas. We’ll end with adding, normalizing and weighting multiple fitness values into Galapagos. In this case, floor areas and the shape of the plot outlines.

You can find the course here