An Evolutionary Design Process

urban farm option singapore

The 18th International CAADRIA conference was held during 15-18 May 2013 and was hosted by National University of Singapore.

Vignesh Kaushik presented a paper on ‘An Evolutionary Design Process: Adaptive-iterative explorations in computational embryogenesis’. Computational embryogenies are a special kind of genotype to phenotype mapping process widely used in explorative evolutionary systems as they provide the mechanism for generating more complex solutions. This paper focuses on how designers explore embryogenies for specific design scenarios through an adaptive-iterative process. The process is demonstrated for a complex project to generate a prototypical urban farm in Singapore. It is shown that by employing an adaptive-iterative process, the embryogeny can be made progressively more complex and less abstract, thereby allowing the exploration to be guided by the designer.

The paper was authored by Vignesh Kaushik and Patrick Janssen at the National University of Singapore.

Download Full Paper

Parametric Architecture Seminar

The Parametric Architecture Seminar explored the use of parametric methodologies within architectural and engineering design processes. The main theme of the seminar was to showcase how advanced computational tools and techniques are enabling new approaches to design exploration and development, in both research and practice. The seminar was organised by NUS in collaboration with Minus and Plus Collaboratives.

The seminar aimed to give participants a diverse series of snapshots of how these methodologies were applied at various scales, at different stages of the design process. It consisted of series of short 20 minute lectures by a range of experts in academia and practice. Speakers included architects, engineers and computational designers, namely Sam Cho from Meta, Kermin Chok from Meinhardt, Ping Lei from CPG, Colin Yip and Sudhir Bommu from Arup, Stylianos Dristas from SUTD, Vignesh Kaushik and Patrick Janssen from NUS.

Parametric Architecture Seminar, NUS Singapore, 13th March 2013
Flyer for Parametric Architecture Seminar held at NUS Singapore, on 13th March 2013.

I had presented my M.Arch Thesis project on constructing embryological procedures for a spatially complex urban farm network in Singapore. The proposed urban farm had state-of-the-art farming chambers for growing vegetables/fruits, fish and chicken vertically and simultaneously within the same building. The urban farmers’ housing were also to be integrated within the complex. Since each of these spatial functions had varying daylight and insolation requirements for its optimum functioning, an embryogenic type of computational procedure was adopted. By employing an adaptive-iterative process, the computational procedure was made progressively more complex and less abstract over four versions.
This was later published as a paper in CAADRIA 2013 conference proceedings.

Evolutionary design of urbanfarm in Singapore
Evolutionary design variants of proposed urban farm network in Singapore.
Green – Vegetable/Fruits chambers
Blue – Fish chambers
Red – Chicken chambers
Yellow – Farmers’ Housing

Chapter 5 – Adaptive-iterative Design Exploration

adaptive iterative design exploration

This chapter is the final part of a five part blog series discussing the methodology adopted to develop ‘An Urban Farming Paradigm Resilient to Energy Descent for Singapore’. Links to the five chapters are listed below:

1. Food Production from an Energy Perspective
2. Road to Self-sufficiency in Food Production
3. Closing the Systems Loop
4. Evolutionary Design Process
5. Adaptive-iterative Design Exploration

Cite as: Kaushik, Vignesh. 2012. “An Urban Farming Paradigm Resilient to Energy Descent for Singapore” Masters’ thesis, National University of Singapore.

Design Problem

The design scenario focuses on the need for Singapore to become more self-sufficient in terms of food production, since it imports over 90% of its food requirement. Hence, as a long term strategy to ensure food resilience for Singapore’s growing population, a prototypical urban farm typology catering to a population of 10,000 people is proposed. The idea would be to have a decentralised network of such urban farms across various parts of Singapore.

State-of-the-art farming methods would allow essential food items such as vegetables and fruits, fish and chicken to be grown vertically and simultaneously within the same building. The urban farmers who grow the food were to live within the same complex as well. Also, in order to produce a part of the energy to power the building, it was decided to grow algae (bio-fuel) on photo-bio-reactor pipes to be fixed to the parts of the façade receiving the most solar radiation. The market, seed storage, waste recycling center and many other allied spatial systems were to be located within the complex. Each of these spatial functions has individual daylight requirements and adjacency rules that must be satisfied for its optimum functioning. For example, the vegetable growth chamber must have adequate daylight, whereas the chicken growth chamber requires controlled daylight. The latter should preferably be far away from the farmers’ housing but closer to the markets. The fish growth chambers need to be at lower floors for structural reasons but as close to the vegetable growth chambers as possible. Such complexity in spatial and functional interrelationships and constraints means that a complex embryogenic type of parametric modelling is required.

For the purpose of this design scenario, versions of varying complexities of external embryogenies were used for evolutionary exploration. These iterations became progressively more complex and less abstract. One of the reasons for using external embryogenies is that the user retains more control over the final evolved form. Moreover, one can constantly improve the quality of evolved designs by making careful modifications to the embryogeny. However, one must ensure that this complex mapping process will always produce a legal phenotype.

Such complexity in spatial and functional interrelationships and constraints means that a complex embryogenic type of parametric modelling is required.

Iteration 1

For the first exploration, the design problem discussed above was split into a set of cubes that were allowed to float on an abstract site of 250m by 250m. Each cube represented a fragmented part of the various functions in the urban farm and was spatially positioned within a 3d grid.

The embryogeny used a direct representation for defining the positions of each of the cubes within the 3d grid. The genotype consisted of a set of real-valued genes in the range {0,1}. For each cube, the position was defined by three genes, which were mapped to a 3d coordinate position in the grid. No constraints whatsoever were set and hence cubes were allowed to float in space and multiple cubes were allowed to occupy the same position in the grid. Each phenotype was then allocated an overall fitness score by evaluating certain simple adjacency rules for each cube. The performance criteria for the evolutionary algorithm were to maximise the number of cubes satisfying the adjacency rules. An example of one of the design variants is shown below.

Exploring Embryogenies - Urban Farm - Version 1

Floating cubes – iteration 1 of embryogeny exploration.
Maximise – Adjacency Scores
Minimise – Overall Height

The aim of this experiment was to acquire an overall understanding of the behaviour of the cubes under the influence of the various adjacency rules. It was expected that the unconstrained freedom of position of each cube relative to all others would allow a variety of promising spatial patterns to be identified. However, although the exploration produced many phenotypes that satisfied most of the adjacency rules, it was very difficult to evaluate them visually and understand their behaviour due to their high variability. The main reason identified for the chaotic variability was the lack of constraints. Hence, in the next stage, additional constraints were introduced.

Phenotypes from iteration 1 was difficult to evaluate visually due to their high variability which was due to lack of constraints.

Iteration 2

In iteration 2, two constraints were introduced: cubes were not allowed to float, and multiple cubes were not allowed to occupy the same position in the grid. The same genotype representation was used, consisting of three real-valued genes in the range {0,1} for each cube. Two genes were mapped to a 2d coordinate position in the grid and the third gene was used to define the stacking order of the cubes. All the cubes with the same 2d coordinate were sorted according to the stacking gene, and were then stacked in that order, starting from the ground up. An example of one of the design variants is shown in the Figure below.

Exploring Embryogenies - Urban Farm - Version 2

Stacking cubes – iteration 2 of embryogeny exploration.
Maximise – Adjacency Scores
Minimise – Building Footprint

As expected, certain patterns and groupings emerged among the various functions. However, the variability among the solutions remained chaotic. Two key deficiencies were identified: the vertical circulation of the cubes was not clear due to the lack of cores, and the floor areas required for each function was not constrained.

Variability among the phenotypes from iteration 2 also remained chaotic. This was due to unclear vertical circulation and unconstrained floor area.

Iteration 3

From the solutions generated from the previous iterations, it was decided to group certain functions into a tower and podium typology. The tower consisted of four functional types; farmer’s housing, vegetable farms, chicken farms and fish farms. All other allied functions were grouped together to form the podium. It was also decided to opt for a smaller site of 150m by 180m, with real surroundings that would have a bearing on the evolution of a podium and tower building. For the purpose of simplifying the search space, the focus of iteration 3 was only to evolve the tower, assuming a fixed podium block as a base of the tower.

The tower’s core consisted of four independent sub-cores (one for each function in the tower) with each catering to its respective part of the floor plan. These sub-cores were structurally integrated but functionally independent. This ensured that at any floor level, functions could be arranged in a flexible manner.

An integrated core

An integrated core consisting of four functional types; farmer’s housing, vegetable farms, chicken farms and fish farms.

An integrated core

The developmental procedure used a combinatorial parametric modelling technique for generating the floor plans. Each floor consisted of four rectangles of varying sizes, with different functions assigned to each rectangle. The genotype consisted of a total of 240 genes, 12 genes per floor and three genes per rectangle. One gene was used to select the shape of the rectangle from a set of predefined possibilities; one gene was used to indicate the orientation of the chosen rectangle around its sub-core, and one gene was used to select the function of the rectangle. All possible variants of the floor plan configuration are shown below.

Version 3 - Development procedure

Integrated core – iteration 3 of embryogeny exploration.

iteration 3 tower generative process

The fitness scores were based on a number of evaluation criteria, such as sufficient daylight for the food growing chambers and the farmer’s housing, scenic views and privacy for the housing, and percentage of façade that could be utilised for growing algae with photo-bio-reactor pipes.

It was also decided to add a constraint that would limit the floor areas assigned to each of the four functions. The required floor areas are known in advance, and a technique was therefore required for defining this as a constraint within the evolutionary system. Researchers have identified four main approaches to handling constraints in evolutionary algorithms: 1) penalty functions 2) repair functions, 3) specialised reproduction operators, and 4) specialised genotype to phenotype decoder functions [1]. For this iteration, a penalty function was added that reduced the fitness of those solutions where the area assigned to each function was not desirable.
[1] Introduction To Evolutionary Computing by Eiben, A. E. and Smith, J. E., 2008.

The solutions from the evolutionary exploration of this iteration indicated that certain aspects of a tower design such as the structural grid had to be refined. In addition, the penalty function resulted in many variants with very low scores, which degraded the ability of the evolutionary algorithm to evolve high performance designs. Figure below shows variants from the population of evolved designs.

version 3 - phenotypes

Iteration 3 – evolved phenotypes.

Phenotypes from iteration 3 indicated that the structural grid of the tower needs to be refined further. Also, the penalty function resulted in many variants with very low scores.

Iteration 4

After analysing the results from the previous iteration, it was decided that the size and shape of the floor plan should be defined in multiples of a specific structural grid. After careful analysis, a structural grid of 7.2m x 7.2m was adopted as it was found to be well suited for all the four functions in the tower.

It was also noted that the use of a penalty function for constraining the floor areas of the different functions was not successful. In this iteration, this constraint was embedded within the developmental procedure, using a rule based decoder function that combined direct and indirect mapping of genotypes to phenotypes. This approach falls under the fourth category of constraint handling techniques as described by Eiben and Smith [1]. In this case, the genotype to phenotype mapping process was structured as a sequential chain of decisions [2].
[2] Decision Chain Encoding by Patrick Janssen & Vignesh Kaushik, EvoMUSART, 2013.

Each floor consisted of four rectangles of varying sizes, each overlapping with one of the sub-cores. The dimensions of each rectangle were defined as a multiple of 7.2m. As with the previous iteration, the rectangles were assigned different functions. The genotype consisted of a total of 180 real-valued genes in the range {0,1}, 9 genes per floor. The first 8 genes were used to specify the dimensions of the rectangles. The genes were mapped to integer values in the range {0,4} (resulting in a maximum of four grids of 7.2m each from the edge of the core). The ninth gene was used to select how the different functions were assigned to the four rectangles. In total, there were 21 different ways of assigning functions to the rectangles. This mapping procedure is shown in the figure below.

iteration 4 floorplan function configurations

Iteration 4 – 21 different function configurations.

iteration 4 - gene mapping for each floor of the tower

Iteration 4 – gene mapping for each floor of the tower.

However, in order to constrain the floor area assigned to each function, a filtering process was first performed. Those configurations that would result in excess floor area being assigned to any of the four functions were filtered out as being invalid. The ninth gene was then used to select one of the remaining valid configurations by mapping it to an integer value in the range {0,n}, where n was the total number of valid configurations. This ensured that all design variants were assigned approximately the required floor areas for the four functions.

Iteration 4 - generation of a tower phenotype

Iteration 4 – generation of a tower phenotype.

The development procedure, shown above, consists of two stages: skeleton model generation followed by form model generation [3]. The skeleton model is a minimal three-dimensional structure that is lightweight and sparse while the form model is a more detailed model that may be large and complex. Once a skeleton model consisting of volumetric cubes has been generated, the form model can then be generated using standard parametric techniques. There could be many different form models generated from the same skeletal model depending on design and aesthetic intent. In this case, the process consisted of three steps: adding structural columns, glass facade for vegetable farms, and algae tubes on the facades of chicken and fish farms. None of these three steps make use of any genes in the genotype.
[3] Skeletal Modelling by Patrick Janssen & Vignesh Kaushik, CAADRIA, 2013.

Iteration 4 tower generative process

Iteration 4 – generation of detailed form model from a lightweight skeletal model.

skeletal model to form model

The evaluation procedure measures performance criteria relating to each function. The performance intent for vegetable farming area is to maximise effective daylight available. The performance intent for the chicken and fish farming areas is to maximise the amount of solar exposure on its facade since it would directly impact the growth of algae in photo bio-reactors installed on its facades. Farmers' housing units are analysed for maximising scenic views and privacy and minimising noise from the motorway. Each of these performance criteria is then weighted and combined to form an overall score based on which the strength of the design is ascertained.

evaluation procedure consisting of daylight, scenic views, privacy and sky exposure analysis

Iteration 4 – evaluation procedure.
Maximise – Daylight, Privacy, Scenic views, Sky exposure
Minimise – Noise

version 4 - designs variants from the population

Iteration 4 – design variants from the population

In this iteration, the control of variability was improved significantly and as a result the evolutionary exploration produced solutions with better performance. Figure below shows two examples of both skeletal and form models of evolved designs variants from the population.

version4 - floorplan of hydroponic vegetable farms

Iteration 4 – typical floor plan of hydroponic vegetable farm

version 4 - designs variants from the population

Iteration 4 – evolved phenotpes from the population

Conclusion

This chapter focused on the process of creating embryogenies for a complex design problem through a sequential process of adaptive-iterative exploration. At each iteration, the solutions that were evolved were not interpreted as optimal answers, but as diagnoses of potential problems and as suggestions for further architectural explorations. Also, certain embryogenies are better than others at producing certain morphologies and hence it is essential for designers to explore such trade-offs through a trial and error process. By employing an adaptive-iterative process, the embryogeny can be made progressively more complex and less abstract, thereby allowing the exploration to be guided by the designer.

Chapter 4 – Evolutionary Design Process

sardine run

This chapter is the fourth part of a five part blog series discussing the methodology adopted to develop ‘An Urban Farming Paradigm Resilient to Energy Descent for Singapore’. Links to the five chapters are listed below:

1. Food Production from an Energy Perspective
2. Road to Self-sufficiency in Food Production
3. Closing the Systems Loop
4. Evolutionary Design Process
5. Adaptive-iterative Design Exploration

Cite as: Kaushik, Vignesh. 2012. “An Urban Farming Paradigm Resilient to Energy Descent for Singapore” Masters’ thesis, National University of Singapore.

Evolutionary Design Method

Evolutionary design is an approach that evolves populations of design variants in order to optimize certain performance measures [1]. Designs are manipulated by a set of computational procedures, including a development procedure for generating design variants, one or more evaluation procedures for calculating evaluation scores, and a feedback procedure for closing the loop by assigning a fitness score to groups of individuals and then performing selection and reproduction. With the evolutionary design approach, the parameters for a design variant are referred to as the genotype (with each individual parameter being a gene), the model of the design variant is referred to as the phenotype, and the evaluations of the design variant are referred to as performance scores. The selective pressure is applied by ensuring that design variants with low performance scores are more likely to be killed, while design variants with high performance scores are more likely to survive, and to be selected for reproduction.
[1] An Evolutionary Architecture by John Frazer

Evolutionary design is an approach that evolves populations of design variants through the iterative application of a set of computational procedures.

Evolutionary Design Process

Evolutionary Design Process

The terminology is loosely based on the way that these terms are used in biology. A gene is a variable that can have different values. The expression of an individual’s gene values will give rise to observable characteristics or traits, referred to as phenes. The genotype of an individual is the set of gene values, while the phenotype of an individual is the set of phene traits. The genome describes the set of all possible genotypes in the population, while the phenome describes the set of all possible phenotypes in the population. From a design perspective, the phenome describes the set of possible design variants. These variants will differ from one another with regards to their phenes, but they will also share a certain common identifiable character.

The evolutionary procedures are often described as a mapping from genotype to phenotype to fitness. High quality mappings result in better evolutionary search, while low quality mappings result in worse search. Two key issues affecting the quality of a mapping are the size of the genotype space and the locality of the mapping. The size of the genotype space is defined by the number of genes and the range of values that each of those genes can have. The smaller the genotype space, the easier it will be for the evolutionary algorithm to search that space. For each gene added to the genotype, an extra dimension is added to the genotype space, thereby resulting in an exponential increase in the number of possible design variants.

mapping of genotype-phenotype and fitness space

Peter F. Stadler and Christopher R. Stephens explain the mapping of genotype-phenotype and fitness space in Landscapes and Effective Fitness, 2002

The data from a multi-objective evolutionary search is typically represented as a collection of points, with each point representing a design variant. For each design variant, its performance scores are plotted in a XY chart with the value of one variable determining the position on the horizontal axis and the value of the other variable determining the position on the vertical axis. In addition, the points can be color-coded and varied in size as well to represent scores on two other variables.

For each gene added to the genotype, an extra dimension is added to the genotype space, thereby resulting in an exponential increase in the number of possible design variants.

For a multi-objective optimization problem, there does not exist a single solution that simultaneously optimizes each objective. In that case, the objective functions are said to be conflicting, and there exists a (possibly infinite) number of Pareto optimal solutions. A solution is called nondominated or Pareto optimal if none of the objective functions can be improved in value without degrading some of the other objective values. Without additional subjective preference information, all Pareto optimal solutions are considered equally good.

Exploring Embryogenies

If the designs being evolved have limited variability, then the developmental procedure can use direct parametric modelling for generating designs. With this approach, genes are directly linked to parameters within the model. However, in cases where complex designs have to be evolved, the development procedure may consist of an indirect rule-based procedure for generating designs. Genes are then linked to parameters in the rules rather than in the model, and as a result only affect the final form indirectly via the rules. In the context of evolutionary design, such rule-based developmental procedures have been referred to as computational embryogenies.

D'Arcy Thompson's On Growth and Form

A mathematical model describing how environmental forces may affect the embryogenesis of organisms.
D’Arcy Thompson’s Book ‘On Growth and Form’

An embryogeny is a process of growth that defines how a phenotype is generated from a genotype. For example, in nature, embryogenies indicate how an animal should be grown. Hence the genotype may be regarded as a set of ‘growing instructions’, or a recipe that defines how a phenotype will be developed.

Current computational embryogenies can be classified into three different types: external, explicit and implicit [2]. External embryogenies can be imagined to be a piece of computer code that performs a one to one mapping from genes to parameters. An explicit embryogeny is where every step of the growth process is explicitly specified as instructions in the data structure. Typically, the genotype and the embryogeny are combined and are allowed to evolve simultaneously. The third type, the implicit embryogeny, does not explicitly specify each step of the growth process, but is implicitly coded by a set of rules or instructions. By evolving a set of simple rules which can then be iteratively applied to each element of the growing solution, it is believed that many large scale problems can be tackled.
[2] Three ways to grow designs: a comparison of evolved embryogenies
for a design problem
by Bentley, P. and Kumar, S., GECCO, 1999

Tools for Evolutionary Design

Since most designers using optimization tools have limited programming skills, we need to be able to define the key problem-specific procedures without having to write computer code. The development procedure and one or more evaluation procedures are therefore defined using Visual Dataflow Modelling (VDM) tools [3]. Visual Dataflow Modelling is becoming increasingly popular within the design community, as it can accelerate the iterative design process, thereby allowing larger numbers of design possibilities to be explored. Modelling in a VDM system consists of creating dataflow networks using nodes and links. Each node can be thought of as a function performing an action and a link is used to connect the output of one function to the input of another function. In this research, an advanced procedural modelling system called SideFX Houdini is used for both development and evaluation procedures. Within Houdini, VDM nodes were created for linking Houdini to Radiance. These nodes generate the required input files from the Houdini model and then execute the radiance program.
[3] Visual dataflow modelling: a comparison of three systems by Patrick Janssen & Kian Wee Chen, CAAD Futures, 2011

Visual Dataflow Modelling is becoming increasingly popular within the design community, as it can accelerate the iterative design process, thereby allowing large number of design possibilities to be explored.

Visual Dataflow Modelling (VDM) in SideFX Houdini

Visual Dataflow Modelling (VDM) in
SideFX Houdini

For an evolutionary design approach, the design schema needs to be encoded in the development, evaluation, and feedback procedures used by the evolutionary process. Although all three procedures are affected by the design schema, the developmental procedure is the one with the most direct impact as it is the procedure that actually generates design variants.

development and evaluation procedures in Houdini

(left) Development procedure produces a valid phenotype from a genotype.
(center) Evaluation procedure measures a performance criterion and calculates a score.
(right) VDM nodes created in Houdini to link to Radiance.

The evolutionary algorithm was executed using Dexen, a distributed execution environment for experimenting with population-based design exploration algorithms [4]. The feedback procedure, generated automatically by Dexen, will rank groups of phenotypes using a standard Pareto ranking method, and will then create new genotypes using standard crossover and mutation operators.
[4] Evolutionary developmental design for non-programmers by Patrick Janssen, Kian Wee Chen & Cihat Basol, eCAADe, 2011

Dexen, distributed execution environment

Interface of Dexen, a distributed execution environment for population-based design exploration