L-System Tree Animation

John Bowidowicz (jbowidow@ucsc.edu)


Description:

L-Systems:

L-Systems are a formal grammar developed by Aristid Lindenmayer in the late 1960's. In simple terms, L-Systems can be thought of as instructions to command a drawing system, known as the turtle, for generating self-similar fractals. While originally developed to describe the fractal growth of plants, L-Systems can be generalized to draw many varieties of fractals such as Dragon curves & Penrose tilings.

The grammar of an L-System is composed of a set of replacement rules to be performed each iteration, an axiom (inital state), variables, and constants. Variables have replacement rules associated with them such as F --> FF while constants are associated with a draw operation such as [ --> push transform onto stack. Each iteration, the replacement rules are run on each of the characters in the axiom. Constants may control a variety of things, but most common is pushing/popping transformations onto a stack. In this project, there are four stack operations +, - , [ , ]. The operators + and - change the rotation transform in the positive and negative direction respectively. The last two operators, [ and ] push and pop the current transformation onto the stack.

Wind:

The wind was implemented as a 2D-Vector, which when directed at the tree, will bias the branches to blow with the wind vector. The angle of the wind vector effects the movement of the branches because the higher the angle of incedence to a branch, the less surface area is hit by the wind. The result is less movement of the branches. One of the problems I ran into while doing this project was getting a good approximation of how the wind blows. In the real world, trees are not just a series of branches that react to the exterior, but they depend of the other branches as well and the internal wind the tree creates on its own.

Images/Videos:

Users Guide:

The interface is straight forward. The controls to the right control the properties of the wind and the tree's growth. The velocity and angle of the wind may be increased and the change may be seen in the amount and direction of the branch sway. The iterations performed by the underlying L-System may be changed from 1 (Very Fast Rendering) to 7 (Very Slow Rendering) and the type of L-System drawn may be selected from a listbox. The listbox contains 6 different L-System configurations each of which blows in the breeze.

References:


Diener, Julien, Mathieu Rodriguez, Lionel Baboud, and Lionel Reveret. "Comparison of Two Accelerations For Interactive Animation of Trees." Institut National De Recherche En Informatique Eten Automatique (2008).

"Generate a Tree as L-System." JavaView. 3 Oct. 2005. 16 Mar. 2009 <http://www.javaview.de>.

Habel, Ralf, Alexander Kusternig, and Michael Wimmer. "Physically Guided Animation of Trees." Eurographics 2009 28 (2009).

Kanai, Takashi, Takefumi Ohide, Shingo Miyajima, and Ryo Kondo. "Comparison of Two Accelerations For Interactive Animation of Trees." Keio University.

"L-System." Wikipedia. 24 Feb. 2009. Wikimedia Foundation. 16 Mar. 2009 <http://www.wikimedia.org>.

Prusinkiewicz, Przemyslaw; Lindenmayer, Aristid (1990). The Algorithmic Beauty of Plants. Springer-Verlag. ISBN 978-0387972978.

Weber, Jason, and Joseph Penn. "Creation and Rendering of Realistic Trees." ACM (1995): 119-28.

Source:

Source: Download