Go to ThinkParametric

View Optimization Using Galapagos For Grasshopper

Data driven design is on the rise and with the advent of sophisticated and powerful software this process becomes more easy and manageable over time. Knowing how to use these tools effectively will allow you to make smarter and more informed design decision early on in the design process. This course will focus on creating your own optimization tools inside Grasshopper using Galapagos.

Galapagos uses an evolutionary-based algorithmic solver. In evolutionary models, a population of candidate solutions is maintained, and new candidate solutions are generated randomly by mutating or recombining variants in the existing population. Periodically, the population is pruned by applying a selection criterion (a fitness function) that allows only the better candidates to survive into the next generation. Iterated over many of generations, the average quality of the solutions in the candidate pool gradually increases.

Base setup

We’re going to optimize the form of four building blocks according to their views. We could do this manually, but there is a point where having the computer do the heavy lifting becomes relevant. After running Galapagos we will end up by having four building masses optimized so they enjoy maximum views. We’re also going to make sure the footprint of our building matches a certain amount of square meters, has a reasonable depth and shape, and maintain a certain distance from each other. Great views equal significantly higher rentable or sellable space. This in return equals a bigger return on investment for the client. This course is loosely based on a real-life project located in Mexico City I participated in a couple of years back while working for Rojkind Arquitectos.
We’ll start by setting some limits the shape of the footprint can have. This includes the area, the minimum and maximum depth of the footprint, and the maximum angles of the corners. This is important to specify so the results we get from our simulation are usable. Galapagos doesn’t understand that a depth of only 2 meters, a footprint area of only 100 m², or corners with an angle of 30 degrees are ‘bad’. It will only try to optimize its fitness value and if it has to output shapes that are unusable to optimize this value it will do so.
When we’ve taking care of our footprint, we’ll start by measuring the quality of our views. We’ll define this by the distance one can look until an obstacle is blocking the view. The longer this distance the better the quality of views. From the facades of our buildings we’re going to emit various rays that represent the views. It is important we divide the facade in an equally spaced grid, so growing a facade bigger will have the effect of emitting more view rays. Besides aiming a facade to a point with a clear horizon, growing a facade’s area will result in a higher view quality and a better fitness score.
To prevent the building footprints from overlapping with each other, we have to prune them using the plot outlines. This results in having a footprint area that is lower than the one we set in the beginning. To still be able to comply with the footprint area request, we’d have to include this fitness value, besides our view quality value, in Galapagos. One last fitness value we have to add is the distance between the four building masses. They should keep at least a minimum distance between themselves for accessibility and allowing enough sunlight to fall onto the facades.
Because we have multiple fitness values to optimize, we have to normalize the values first to a domain between 0 and 1. This way, all three values have the same weight and thus impact on the final result.


In the second part of the course, we’ll fine-tune the outcome a little better to get a more optimal result. We’ll do this by adding a reward/penalty system for wanted and unwanted behavior. We’ll start with the views. As a reward we’re going to add a view point attraction, say a mountain or the place where the sun sets. When a facade looks at that particular spot we’re going to reward this outcome. Simultaneously we’re going to penalize the result when a view is less than a certain distance we specify.
As a final touch, we’ll take a look at some weight multipliers for our three fitness values. View is important, but most important is the area of the footprint and the distance between the buildings. A building with great views is still worthless if the area of the footprint is not matched. For the weight multiplier factors, we’ll take a look at some linear and power functions and see how they effect the fitness value.

This course will be available soon