emergent design martin hemberg imperial college london architectural association
TRANSCRIPT
Emergent Design
Martin Hemberg
Imperial College London
Architectural Association
Yours Truly
• Developed Genr8 with the Emergent Design Group (EDG) at MIT in 2001
• Teach at the Emergent Design + Technologies (EmTech) MA/MArch program at AA since 2003– PhD student at Dept of Bioengineering at
Imperial College
Agenda
• Motivation• Emergence• Evolutionary
Computation (EC)• Artificial Life (ALife)
– Lindenmayer Systems (L-systems)
• Genr8
Motivation, Architecture
• New paradigm, based on different concepts than traditional design logics– New algorithms and ways of thinking required
• Inspiration from biology– Biomimetics
• Natural form has aesthetic and functional values
Motivation, Computer Science
• Application of EC– Exploration, not
optimization– Fitness evaluation
• Use computers creatively– Beyond CAD tools– Require new
algorithms and software
What is Emergence?
• The whole is greater than the sum of the parts
• Bottom-up instead of top-down
• Local interactions produce global behaviour
• Examples include brain, economics, flocks, etc
Flocking
• Boids algorithm• Craig Reynolds, 1986• Used in Lion King,
Lord of the Rings, etc• Swarm bots• Real animals
Flocking, rules
Alignment Cohesion
Separation
Why is emergence useful?
• Focus on bottom-up interactions– Traditionally top-down control– Complex behaviour comes from interaction of
simple parts– New possibilities for designers and architects
Artificial life
• Understand the principles of Biology
• How does life arise from the non-living?
• What are the potentials and limits of living systems?
• How is life related to mind, machines, and culture?
Evolutionary Computation
• Randomized optimization algorithm
• Inspired by natural evolution
• Comes in many different flavours, – Genetic Algorithms (GA), bit-arrays (Holland)– Genetic Programming (GP), executable tree
structures (Koza)– Evolutionary Strategies (ES), floating point
numbers (Rechenberg and Schwefel)
Optimization
• Find the best possible solution• Mathematically:Given: a function f : A->R from some set A to the real numbersSought: an element x0 in A such that f(x0) ≤ f(x) for all x in A.
Evolutionary Computation, features
• Population of candidate solutions– Parallel search for solutions
• Population of solutions for a specific problem adapts generation by generation
• No guarantees for finding global optimum
Genotype and phenotype
• Genotype – the genetic makeup of an organism
• Phenotype – the visible or measurable characteristics of an organism
Neo Darwinian Evolution
• Survival of the fittest• Selection on
phenotype– Through environment
• Genotypic inheritance• Reproduction• Blind variation
Artificial evolution
Pseudocode for an EA:generation = 0;
initialize population;while generation < max-generation
evaluate fitness of population membersfor i from 1 to population-size
select two parents;crossover parents -> child;mutate child;insert child into next generation’s
population;endfor;generation++;update current population
endwhile;
Iterateby generation
Fitness biased selectionInheritanceVariation
Fitness
• A leap from natural evolution
• Try each member on the problem and rank them or quantify their performance
• A numerical value is assigned to each member
Selection
• Fitter individuals higher probability of selection for reproduction
• Based on phenotype, an expression of genotype
Reproduction
• Sexual vs asexual
• Recombine the existing solution candidates
• Heuristically, we know that solution will improve on average
Crossover and mutation
• Crossover operator mixes the genetic material from parents for offspring– Recombine useful
genes
• Mutation is blind variation, introduces new genes into the population
Simple example
• Genome is fixed length binary string
• Fitness is equal to number of ones
– Select 1 and 2– Crossover at 2
110011000111
• New individuals110111000011
Fitness Select
4 1/3
3 ¼
3 ¼
2 1/6
Genome
110011
000111
011010
000101
Fitness function
• Previous steps problem independent
• Choice of fitness function makes EA problem specific– Defining and evaluating fitness function often
complicated and time consuming
• Often evaluates the genome directly
When are EAs useful?
• Good finding near-optimal solutions for complicated and non-linear problems
• Useful when we lack accurate representation for solving problem
• Requires:– Representation of candidate solutions– Fitness function
Fitness Evaluation
• How to assign fitness according to aesthetic criteria?– How can we assign numerical values?– Need to figure out what to optimize
• Open problem
Fitness Evaluation, strategies
• Rule based– Hard to define and encode rules
• Learn user preference with neural network– Too many parameters, fails in practice
• User acts as fitness function– Human fatigue, short runs
Fitness Evaluation, my view
• Creative design tools with the designer central– Tools should be open-ended– Can’t predict and cater for user’s needs and
context
• Parameterized fitness function– User has high level control of evaluation
Fitness function, features
• Multiparametric optimization– Fitness emerges as a
combination of factors– Trade-off between
criteria
• Population gives family of solutions
Genr8 – A design tool for surface generation
• Combines EC and an organic growth model
• Surfaces are grown in a reactive simulated physical environment
Lindenmayer Systems
• Organic growth model
• Widely applied to model plant growth in computer graphics
• L-systems are important in formal language theory
• Prusinkiewicz and Lindenmayer “The algorithmic beauty of plants”
Rewrite systems
• A set of production rules are repeatedly applied to a seed
• Rules are expressed as a grammar:Seed: aRule: a->ab
b->ba
a -> ab -> abba -> abbabaab -> ....
Turtle graphics
• Turtle graphics is a way to visualize the grammar
• Rules are interpreted as instructions for moving and drawing in 3D space
Example, Koch curve
• Koch curve or snowflake, a fractal curve (infinite length but finite area)Seed: aRule: a->a+a--a+aAngle: 60
– Letter - move forward and draw line
– +/- - turn left/right
Branching
• Introduce two new operators to allow branching– “[“ – push state on stack– “]” – pop state from stack
Branching, example
Seed: aRule: a->a[+a]aAngle: 45
Turtle position
L-systems advanced features
• Additional features include– Time delay (flowers
and leaves forming)– Random growth (not
all plants identical)– Environment (tropism)
Map L-systems
a -> d[~a]b a b
d
a
b -> b b b
c -> b[-~a]b b a
bc
d -> c d c
seed
d
c
b
a
c b
b
b b
a
a
d
b b
b
b d
c a
b
b
b
b
b
b
ba
c
d
b
b
b
b
b
b
b
a
b b
bd
c
b
b
b
b
b
b
b
B b
bc
HEMLS
• 3D• Scaling
HEMLS, Environment
• Growth in a simulated reactive physical environment– Forces
• Attractors• Repellors• Gravity
– Boundaries
Growth example
HEMLS
• More complex productions– Context sensitivity– Time variation– Stochastic
HEMLS grammars
• Genr8 includes parser for HEMLS grammars
• User-specified systems– Very hard to construct by hand to obtain
specific outcome– Environmental influence very hard to predict
Pre-defined grammars
• Square and triangular patterns pre-defined– Versatile– Squares can yield
NURBS-surfaces
Evolution
• Search the universe of possible surfaces– Find a grammar
corresponding to the surface the designer has in mind
– Find something the designer was not thinking of
Grammatical Evolution
• Automatic generation of grammars
• Many constraints -> problematic for GP• Grammatical Evolution allows any language
– Use Backus-Naur Form (BNF) to map linear genome into a grammar
– Genetic operations are separated from language
• www.grammatical-evolution.org (Ryan and O’Neill)
Grammars
• Form sentences, arrays of symbols or words from an alphabet
• A grammar defines the syntax of a language– Formalism can be applied to English, French,
java, algebra, etc• I stand here – correct syntax• Here stand I – incorrect syntax
BNF
• Formal meta syntax for expressing context free grammars– N - a finite set of non-terminal symbols,– T - a finite set of terminal symbols,– S - a special start symbol,– P - a finite set of production rules
BNF, Example
• N = { <number>, <digit> }T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }S = { <number> }P = {<number> ::= <digit> | <number> <digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }
<number>
<digit> <number>
<digit> <number>
<digit> <number>
Example: 542 =>
5
4
2
HEMLS, BNF
• Terminals are turtle commands
• Genr8 evolves instructions for how to grow a surface
• These instructions are interpreted in a simulated environment
Mapping
• Several mappings– Increases the
complexity
• Individuals represented by linear genome
• Selection on the phenotype that is expressed through an environment
Design evaluation and fitness
• Fitness function with multiple parameters– Size
– Smoothness
– Soft boundary
– Subdivisions
– Symmetry
– Undulation
• User determines target values and weights for the criteria
Fitness evaluation, example
Criteria Target Weight
Smooth 5 1
Subdivisions
0 3
Undulation 3 2
Surface Diff W Diff
7.23 2.23 2.23
0.45 0.45 1.35
6.2 3.2 6.4
Fitness value = 2.23 + 1.35 + 6.4 = 9.98
Interruption, Intervention and Resumption (IIR)
• Allow user more control of the tool
• User can guide the evolution by interacting and interfering
Practicalities
• Plug-in for Maya
• Advantages for user– Easy to integrate into a design process– Easier to learn
• Advantages for developer– Lots of functionality for free
Scripting
• GUI• MEL command
– Scripts for sweeping parameter space
– Automatic saving, exporting etc
When and why to use Genr8
• Digital sketching tool• Can provide
suggestions to the user– Prepare to give up
control– Create using different
logic– Explore novel
algorithms for form-finding
Using Genr8
1. Set up environment2. Decide pre-defined, user-defined or
evolved grammar– Set fitness function parameters
3. User evaluates output4. If not happy
Go back to 1else
End
To keep in mind
• Understand difference between growth and evolution
• Understand difference in impact between parameters, environment and fitness criteria
• Not all parameters are equally important
• Pre-defined grammars + environment very powerful
To keep in mind
• Avoid getting overwhelmed by the volume of output– Impose external evaluation criteria which is
mapped into Genr8, possibly via external analysis
– Don’t let it run and hope it will produce interesting results
– Must actively prod the tool in the desired direction
Genr8 issues
• No notion of materials or structure– User must rely on
geometry
• A few annoying bugs• Not sure how much
students really understand?
More about emergent design
• Genr8 website• http://projects.csail.mit.edu/emergentDesign/genr8
• EDG website• http://web.mit.edu/arch/edg
• EmTech website• http://www.aaschool.ac.uk/et
• Special issue of Architectural Design (AD)
Acknowledgements
• MIT– Una-May O’Reilly– Peter Testa– Simon Greenwold– Devyn Weiser
• AA– Achim Menges– Mike Weinstock– Michael Hensel– Many AA students