Emergent Design Martin Hemberg Imperial College London Architectural
Emergent Design Martin Hemberg Imperial College London Architectural Association
Yours Truly • Developed Genr 8 with the Emergent Design Group (EDG) at MIT in 2001 • Teach at the Emergent Design + Technologies (Em. Tech) MA/MArch program at AA since 2003 – Ph. D student at Dept of Bioengineering at Imperial College
Agenda • Motivation • Emergence • Evolutionary Computation (EC) • Artificial Life (ALife) – Lindenmayer Systems (L-systems) • Genr 8
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 topdown • 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 Separation Cohesion
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? • Potential and feature of evolution • What are the potentials and limits of living systems? • Agent-based and emergent properties • Flocks • L-systems
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 numbers Sought: an element x 0 in A such that f(x 0) ≤ 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
Neo Darwinian Evolution • Survival of the fittest • Selection on phenotype – Through environment • Genotypic inheritance • Reproduction • Blind variation
Genotype and phenotype • Genotype – the genetic makeup of an organism – What is inherited • Phenotype – the visible or measurable characteristics of an organism
Artificial evolution Pseudocode for an EA: generation = 0; initialize population; while generation < max-generation evaluate fitness of population members for i from 1 to population-size select two parents; Fitness biased selection Inheritance Iterate crossover parents -> child; Variation mutate child; by insert child into next generation’s generation population; endfor; generation++; update current population endwhile;
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 110011 000111 New individuals 110111 000011 Genome 110011 000111 011010 000101 Fitness 4 3 3 2 Select 1/3 ¼ ¼ 1/6
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
Genr 8 – 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: Rule: a a->ab b->ba a -> abbabaab ->. .
Turtle graphics • Turtle graphics is a way to visualize the grammar • Rules are interpreted as instructions for moving and drawing in 3 D space
Example, Koch curve • Koch curve or snowflake, a fractal curve (infinite length but finite area) Seed: Rule: Angle: a a->a+a--a+a 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: Rule: Angle: a a->a[+a]a 45 Draw line Turtle position Store position on stack Turn and draw line Pop position from stack Draw line
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 -> b b c b a d b b d a seed b b b d -> c c b b d c a b c -> b[-~a]b b a b d b c c a b d b b b d b c a b b b b d b b b c a b c b b B b
HEMLS • Language specifying surface growth – 3 D – Scaling
HEMLS, Environment • Growth in a simulated reactive physical environment – Forces • Attractors • Repellors • Gravity – Boundaries
Growth example
Growth example
HEMLS • More complex productions – Context sensitivity – Time variation – Stochastic
HEMLS rewrite systems • Genr 8 includes parser for HEMLS rewrite system – Turtle instructions + parameters • User-specified rewrite systems – Very hard to construct by hand to obtain specific outcome – Environmental influence very hard to predict
Pre-defined rewrite systems • Square and triangular patterns pre-defined – Versatile – Squares can yield NURBS-surfaces
Evolution • Search the universe of possible surfaces – Find a rewrite system 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 • Sentences can be expressed as a tree – Leaves are terminals
HEMLS, BNF • Terminals are turtle commands • Genr 8 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 Surface Diff W Diff Smooth 5 1 7. 23 2. 23 Subdivisio ns 0 3 0. 45 1. 35 Undulation 3 2 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 Genr 8 • Digital sketching tool • Can provide suggestions to the user – Prepare to give up control – Create using different logic – Explore novel algorithms formfinding
Using Genr 8 1. Set up environment 2. Decide pre-defined, user-defined or evolved grammar – Set fitness function parameters 3. User evaluates output 4. If not happy Go back to 1 else 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 Genr 8, 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
Genr 8 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 • Genr 8 website • http: //projects. csail. mit. edu/emergent. Design/genr 8 • EDG website • http: //web. mit. edu/arch/edg • Em. Tech 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 Katrin Jonas Michel da Costa Goncalves Steve Fuchs + many AA students
BNF, Example • N = { <number>, <digit> } T = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } S = { <number> } P = {<number> : : = <digit> | <number> <digit> : : = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 } Example: 542 => <number> <digit> <number> 5 <digit> <number> 4 <digit> <number> 2
- Slides: 62