Boston University CS 580
Final Project Masha Shugrina
To model the development of the above blossoms and to create continuous animation of their development using the dL-system method.
The algorithm is based on the work of Prusinkiewicz et al [1], that extends the discretized approach for producing recursively branching structures (L-systems) to continuous domain in order to produce animation of plant development (dL-systmes). L-Systems model plant development by a set of rewriting rules that transform a particular plant element P (i.e. branch, etc.) to another element(s) (for instance, to the former branch and two new sub-branches): where R is some transformation matrix. dL-systems model the continuous transformation of a plant element P between these discretized steps, where P now has continuously varying parameter vector x: where x could represent a threshold length up to which the branch grows before splitting. Because plants often develop sigmoidally (initially grow slowly, then accelerate, then level off near the maximum value), the growth function used for calculating most &Delta x's in this project was Velhurst's logistic function, as suggested by [1]: where r is a constant parameter. Although a closed form solution for this differential equation exists, it is more convenient to use Euler's forward method for approximating the solution at discrete steps &Delta T.
Click on the icons to watch clips.
_{i} can be any one of the four branch elements, as determined by preset probabilities of
different splits.
where P is a petal, L a leaflet, S a stamen, A _{P} rotation angle of a petal,
A_{L} rotation angle of a leaflet, and w is the width of the flower base. The rates for petal, leaflet and bud base
growth are nearly idtentical, but are perturbed for every petal and leaflet. The rate of opening (growth rate of angles) for
the leaflets is greater than for the petals: r3>r4. A different rate controls the growth and elongation of stamena
whose development occurs after the bud has half-opened. The scale of all flower elements is a function
of the flower center width.
1. Prusinkiewicz, Przemyslaw, Mark Hammel and Eric Mjolsness. "Animation of Plant Development." Proceedings of SIGGRAPH '93, pp. 351-360. 2. Prusinkiewicz, Przemyslaw and Aristid Lindenmayer. Algorithmic Beauty of Plants.
Springer-Verlag: New York, 1990.
The program is a simple console application built in VC++. It compiles and runs on Windows using the OpenCV and OpenGL libraries. The most important files in the bundle are modules.cpp and const.h. Keyboard commands are as follows: Q: Quit R: Reset default view I: Zoom In O: Zoom Out G: "Gas" -- speed up animation B: "Break" -- slow down the animation S: Start or stop (if already saving) saving video clip into file test01.avi D: Toggle between views of growing FLOWER, APEX, BRANCH, STAMEN, and PETAL W: Toggle between Working and non_Working views (mesh v. texture-mapped surfaces) N: Resets whichever component is displayed to its initial state |