The Artificial Life of Plants Przemyslaw Prusinkiewicz, Mark Hammel, Radom´ır Mˇech Department of Computer Science University of Calgary Calgary, Alberta, Canada T2N 1N4 Jim Hanan CSIRO - Cooperative Research Centre for Tropical Pest Management Brisbane, Australia From Artificial life for graphics, animation, and virtual reality, volume 7 of SIGGRAPH ’95 Course Notes, pages 1-1–1-38. ACM Press, 1995.
L-systems Aristid Lindenmayer, 1968 Formalism to simulate development of multi-cellular organisms Has been extensively used to simulate development of plants Data base amplification – Generate complex structures from small data sets Emergence – a process in which a collection of interacting units acquires qualitatively new properties that cannot be reduced to a simple superposition of individual contributions Module – any discrete constructional unit that is repeated as the plant develops – an apex, a flower, or a branch
Example (from wiki) variables : X F (draw forward) constants : + − (turn right/left) angle : 25° start : X rules : X → F-[[X]+X]+F[+FX]-X F → FF
Plant development as rewriting Development at modular level is captured by parallel rewriting system Parent -> child Modules belong to alphabet of module types Rewriting rules are called productions
Rewriting
Example
Productions May be applied sequentially Or parallel – Rewrite modules simultaneously at each derivation step Parallel is more appropriate for biological development, as such development takes place simultaneously in each part of an organism Start with an axiom Derivation steps form a developmental sequence
Example
Koch Construction Koch construction Initiator Generator – Oriented broken line of N equal sides of length r Replace each straight line with a copy of a generator
Example
Parametric L-Systems Extend L-system by assigning numerical attributes A(t):t > 5 -> B(t + 1)CD(t^0.5, t – 2) Called deterministic iff for each module A, production set includes exactly one production
Parametric L-Systems Example
Stochastic L-systems If x <= 3, p1 = 2 / (2 + 3), p2 = 3 / (2 + 3)
Parametric L-Systems 0L-system – Context free 1L-system – Context on one side (left or right context) 2L-system – Both left and right context
Turtle interpretation of L-Systems Move a cursor over plane or in 3D Specify its movements by commands
Examples
P1 describes creating of two new branches P2 describes creating of a branch and a bud
Examples