Website powered by

Interactive Snowglobe with L-System Trees

This is an Interactive Snowglobe group project coded using C++ and OpenGL. Within this group project, my role was creating 3D tree polygon meshes using procedural generation of Lindenmayer Systems (L-Systems). L-System generation uses an alphabet of instruction symbols, a starting axiom, and a set of transformation rules to create a branching path used to shape trees. I used the paper "The Algorithmic Beauty of Plants" by A. Lindenmayer and P. Prusinkiewicz as my main reference for this project which provided me with the challenge of transforming the 2D structures outlined in the paper into 3D polygon meshes. To display a 3D mesh I used Maya to create branch, branch end and leaf .obj files which are positioned according to the l-system outcome. The code also includes adjustable variables: branch length, angle, iterations and rules which alter
the appearance of the tree.

Reference Images from "The Algorithmic Beauty of Plants."

Reference Images from "The Algorithmic Beauty of Plants."

Early 2D and 3D line results.

Early 2D and 3D line results.

Branch, branch end and leaf .obj Mesh files created in Maya.

Branch, branch end and leaf .obj Mesh files created in Maya.

3D L-System tree shapes with different variable values.

3D L-System tree shapes with different variable values.

Final 3D L-System trees produced using obj meshes.

Final 3D L-System trees produced using obj meshes.

Snowglobe (One)

Snowglobe (One)

Snowglobe (Two)

Snowglobe (Two)

Project Video.