Genetic algorithms as Generative Design System, half scale

A Genetic Algorithm must fulfill a series of spatial and volumetric constraints that oppose each other. The GA proposes ways based on restrictions. A binary list (i. e. 1010) represents a series of cubes stacked together forming a rectangular test bed. The restrictions that must satisfy are: Maximize the volume, minimize the land occupation area, search for information within their DNA and penalize the distance between boxes and objects. The final form is the result of all restrictions based on the optimal that doesn’t damage any restriction over the other ones. The tool works as a generative design system through Genetic Algorithm. Instead of generate random shapes, the designer can define many restriction as goal objective, where the GA must by satisfies all of them with out preferences. the idea do not consist in satisfy one objective over the others but find a fussy balance between all objectives.

Design a building is a very complex task, in which are involved many variables that must be satisfied. The Architect will decide which of this variables are more important than others and also the building must be satisfy other restrictions such as, budget, laws, clients, technical conditions, materials, fashions, etc.

This experiment use GAs as generative design system to purpose raw shapes trough a series of optimized functions. The goal consist in satisfy all the functions in the fitness, i. e. min = ( f(x1), f(x2, f(x3), f(x4), …, f(x+i) ). The idea consist in find the optimum for a series of functions , but is not possible to makes at least one function better off without making any other function worse off, this definition is knowing as Pareto frontier.

Function list:

The developer’s Manhattan function: Maximize the volume and minimize the use in the ground floor. (COATES, Paul., Programming.Architecture, Nueva York, Routledge, 2010, p. 97 )
Point Repellor function: If some part of the building is inside of an influence area the chromosome is punished.
Data type in the chromosome: The function award the chromosome if some data type is founded inside it.
The model is an imaginary prisma of 20x15x30 units composed by 1x1x1 cubes.


Genetic Algorithm parameters

Objective Function: Fitness = (fitSequence + Volume) – ( (InsidePts x 2) + footPrint))
Codification: Bynary string.
Type of problem: Multy-objective
Number of generations: 300
Size of population: 20 ind.
Natural selection: Roulette Wheel, scaled by non-polinomic function.
Crossover: Uniform crossover
Mutation: Bit string mutation, 0.65%

Genetic Algorithm Structure:

Chromosome type

The Chromosome is made by a binary list , 100101010101. 1 represents a cube and 0 empty.
0 1 2 4 5 6 … 9 n+1
1 0 1 0 1 1 … 0 1

Fitness function

If(footPrint > 45) Then footPrint = footPrint * 5
If(Volume > 800) Or (Volume < 700) Then Volume = Volume * 0.5
Fitness = (fitSequence + Volume) – ( (InsidePts x 2) + footPrint))

The test bed to prove the GA.

Natural Selection

The natural selection used is a roulette wheel scaled by a non-polynomial function and with a variable to manage the factor decay of the curvature. This improvement allows a more detailed selection for the individuals.

the Factor-decay control in accurate way the selection of the individuals to the next generation.

Crossover type

 Two types of crossovers where implemented in this GA. A Single point crossover and uniform crossover. The single point crossover works splitting the parents in two stripes in order to create the descendant. The uniform crossover works with a random index which determine if the father o mother will inheritance the gen to the descendant. Both operators produce two descendants.

Single point crossover

Uniform crossover


The mutation operates swapping a 1 for a 0 or vice versa.

Results, city project

Generate a set of buildings, well distributed…This case use a GA to organize the buildings and guaranty the shortest path across the buildings.

After the city is generated, define zone points between buildings to ensure light, ventilation,views, spaces…

Execute the GA to generate volumes according to the functions defined above.

Rendering and Catmull by Blender.

For further  information, please visit A.I. IN DESIGN section.

Leave a Reply