synthetic topiary. premislaw prunsinkiewicz (prof. p) mark james radomír měch

Post on 22-Dec-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Synthetic Topiary

Synthetic Topiary

• Premislaw Prunsinkiewicz (Prof. P)

• Mark James

• Radomír Měch

Synthetic Topiary

• Development in two directions:– structure-oriented models– space-oriented models

Synthetic Topiary

• Development in two directions:– structure-oriented models

• Endogenous : module inherits lineage at creation.

• Interactive : information flow.

Context-sensitive L-systems

– space-oriented models

Synthetic Topiary

• Development in two directions:– structure-oriented models– space-oriented models

• exogenous : information transmitted from environment.

Synthetic Topiary

• Development in two directions:– structure-oriented models– space-oriented models

Environmentally-sensitive L-systems address the dichotomy.

Lindenmayer systems

• Stochastic context-sensitive grammars.

• id : lc < pred > rc : cond succ : prob– replace pred by succ with probability prob if

• pred has lc on the left and rc on the right and

• cond is true

Modules

• Each module controls a LOGO-style turtle.– F moves forward.– +-, &^, / \ are rotations around H, U, L.– @o draws a sphere at current position.– % terminates a branch (e.g. pruning )

• magnitude parameters are optional

Lindenmayer Systems

• Example: L-System 2ω : A(1) B(3) A(5)

p1: A(x) A(x+1) : 0.4

p2: A(x) B(x-1) : 0.6

p3: A(x) < B(y) > A(z) : y<4 B(x+z)[A(y)]

A(1) B(3) A(5)

Lindenmayer Systems

• Example: L-System 2 ω : A(1) B(3) A(5)

p1: A(x) A(x+1) : 0.4

p2: A(x) B(x-1) : 0.6

p3: A(x) < B(y) > A(z) : y<4 B(x+z)[A(y)]

A(2) B(3) A(5)

Lindenmayer Systems

• Example: L-System 2ω : A(1) B(3) A(5)

p1: A(x) A(x+1) : 0.4

p2: A(x) B(x-1) : 0.6

p3: A(x) < B(y) > A(z) : y<4 B(x+z)[A(y)]

B(7)[A(3)]

Lindenmayer Systems

• Example: L-System 2ω : A(1) B(3) A(5)

p1: A(x) A(x+1) : 0.4

p2: A(x) B(x-1) : 0.6

p3: A(x) < B(y) > A(z) : y<4 B(x+z)[A(y)]

B(7)[B(2)]

Environmental Sensitivity

• Add a ‘query’ module to read the position.– ?P(x,y) will assign the current position to x,y.– ?H(h) will assign the H orientation to h.

• Allows parameter variation depending on external parameter.

A?P(x,y) : (x²+y²)<10² F(x²+y²)

• Example: L-System 3

Pruning

• Use ?P to find when to prune, % to do it.

• Example: L-system 4– Dormant buds grow on the tree.– New branches grow if the ‘leading bud’ is cut.– Pruning function cut bud leaving a L*L cube.

A model of tree development

• Early works: A tree is a self-similar branching structure.– Led to unnatural exponential growth.

• Botanical model:A shoot is viable only if it receives enough light.– Leads to a more constrained branching ratio.

A model of tree development

• Hypotheses:– Start with a single non-branching shoot.– New shoots grow from buds near end of

previous year’s segments.– There is a maximum branching ratio.– All branch segments have the same length.– Current year’s shoots grow leaves.– Leaves need light.

A model of tree development

• Consequences– Crown radius is Θ(age).– Available leaf area is Θ(age²).– Number of potential shoots is Θ(exp(age))

• will get, in time, limited by available leaf area.

• Branching factor bage is thus

bage = (2.age+1)/age²

• This produces L-system 5.

Putting all together : LS 6

ω: Axiom - start with a single apex, aged 1.

P1: Growth - !pruned, branching.

P2: Growth - !pruned, !branching, creates a bud.

P3: Growth - pruned.

P4: Creates growth signal S where P3 occured.

P5,6: Propagate S to earlier buds.

P7: S activate a new apex, with the right age.

P8: Housekeeping - Age of the buds.

Conclusion

• Issues :– Defining the pruning volume equation.

• Use constructive geometry.

• Use ellipsoid skeletons.

– Large number of primitives.• Reuse via instantiation.

– Characterizing plants and their reaction to pruning is non-trivial.

Conclusion

• It’s cool.

• Enough data to code the algorithm.– It’s all theory, maybe a fancy CS660 project ?

top related