bartlett
Document Sample


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?
• 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 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
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
crossover parents -> child; Inheritance Iterate
mutate child; Variation by
insert child into next generation’s population; generation
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 Genome Fitness Select
length binary string 110011 4 1/3
• Fitness is equal to
000111 3 ¼
number of ones
– Select 1 and 2 011010 3 ¼
– Crossover at 2 000101 2 1/6
110011
000111
• New individuals
110111
000011
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: a
Rule: 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: a
Rule: a->a+a--a+a
Angle: 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: a
Rule: a->a[+a]a
Angle: 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
c b b b b
a -> d[~a]b a b a a
b d b c b a c
d a
a b d b d
b -> b b b seed
b b b b b b
b b b b b b
a d b c b
b b b
b a b b b
c -> b[-~a]b c d c a
b b c b b b b B b
d c
d -> c
HEMLS
• Language
specifying
surface
growth
– 3D
– 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
• Genr8 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
• 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 Surface Diff W Diff
Smooth 5 1
7.23 2.23 2.23
Subdivisio 0 3 0.45 0.45 1.35
ns
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 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 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 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
– 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>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 }
Example: 542 => <number>
<digit> <number>
5
<digit> <number>
4
<digit> <number>
Get documents about "