The objective of this assignment is to create an L System parser and generate interesting looking plants. Start by forking and then cloning this repository: https://github.com/CIS700-Procedural-Graphics/Project3-LSystems
For this project, I took inspiration from Low-Poly art (one of my favorite styles of art), and the Pokemon Bonsly. I wanted to simulate what it would look like for a tree like Bonsly to grow up. I originally kept the tree symmetrical about the y-axis because it looks more visually appealing to me, but I later added some twisting to the trunk to make it more dynamic. I changed the color of the light to a warm peach color to make the tree seem more "friendly."
I rewrote the turtle class so that the turtle had a local forward, up, and left axes. This allowed me to create the symmetric effect of the tree.
In addition to operations for [
and ]
, I invented the operations:
- '&' : rotate the turtle along its forward vector (main trunk)
- '$' : rotate the turtle along its up vector (trunk bending)
- '%' : rotate the turtle along its up vector (trunk bending)
- 'X' : draw a branch if iteration ends
- 'A' : draw a branch if iteration ends
- 'S' : make a bright-colored leaf
- 'D' : make a dark-colored leaf
Aspects of my demo that is interactive:
- the axiom
- number of iterations
- the angle of rotation of the turtle (branches only)
##Grammar Features
- The farther the branch from ground, the thinner it is.
- Leaves bunch up in "levels."
- Leaves are ONLY created at the ends of the branches.
- Randomized leaf color between 2 colors.
- Branch twisting between "levels" of leaf bunches
- Randomized branch twisting.
##Design Process