L-Systems
- Jax Whitham
- Feb 23
- 2 min read
Task 1: Using Turtle in Processing
Drawings in Task 1 were all done using the Turtle library in Processing.
Capitalized 'T'
Capital 'I'
Triangle
Pentagon
Circle with defined radius
Task 2: Implement the L-System Framework
The base code provided left functional elements to be filled in for the L-system to work as expected. Code snip-its below feature completed aspects of the frame work integral to l-systems and their generation.
Minimum vocabulary implemented through a switch statement.

Below, iterate() reads through the current iteration string, reads each letter and and applies the appropriate production rule, or held constant.

draw() calls the current iteration string and preforms the designed rules to draw the l-system.

Task 3: My own L-systems
treeBush()
This system was made chiefly to practice use and effect of push and pop in a l-system.

treeBush() iteration strings
n=1
-F+[F][+F[+F]-F+[F]][-F[-F]-F+[F]]-F+[F][-F[-F]-F+[F]][+F[+F]-F+[F]]
n=2
+F[+F]-F+[F]-F[-F][-F+[F]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]+F[+F]-F+[F]-F[-F][-F+[F]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]
n=3
-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]]]-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]][-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]][+F[+F]-F+[F][+F[+F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]]-F[-F]-F+[F][-F[-F]-F+[F]]+F[+F]-F+[F]-F[-F][-F+[F]]+F[+F]-F+[F][+F[+F]-F+[F]][+F[+F]-F+[F]-F[-F][-F+[F]]]]
leafTree()
This system is a modification of the L-System Leaf by Paul Bourke. The axiom used below is the first iteration of the original leaf with an longer 'stem'. Additionally, angles were added to the production rules.


leafTree() iteration strings. The video above goes up to n=8.
n=1
>F<>F<[+F[+x]F-y]>F<-F[-y]F+x
n=2
>>F<<>>F<<[+>F<[+F[+x]F-y]>F<-F[-y]F+x]>>F<<->F<[-F[-y]F+x]>F<+F[+x]F-y
n=3
>>>F<<<>>>F<<<[+>>F<<[+>F<[+F[+x]F-y]>F<-F[-y]F+x]>>F<<->F<[-F[-y]F+x]>F<+F[+x]F-y]>>>F<<<->>F<<[->F<[-F[-y]F+x]>F<+F[+x]F-y]>>F<<+>F<[+F[+x]F-y]>F<-F[-y]F+x
wreath()
The wreath l-system explores using push and pop in the axiom.


n=1
F[-y]F+[F-[-F]y[F+[F]-Fy]F+[F-F]y[F+[F-F]yF-[-F]y[F+[F]-Fy]]F[-y]F+F[-y]F+F+[F-F]y]
n=2
F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy]]F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]
n=3
F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y[F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]yF+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yy]]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y[F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y[F+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]y]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]yF[-y]F+[F[-y]F+F+[F-F]y]y[F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]y]F[-y]F+F+[F-F]yy][F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]yF+[F-F]y[F[-y]F+y]F+[F-F]yF-[-F]y[F+[F]-Fy]F+[F-F]yF-[-F]y[F+[F]-Fy][F+[F-F]yF[-y]F+F+[F-F]y]y]y]
Task 4: Fabrication
L-systems were etched into acrylic. Fabrication was straightforward laser work. Cutting overlapping designs, usually those at higher iteration numbers, would resulting in unintentional holes.
All in all I'm underwhelmed by what I made. It was too focused in the technical didn't give enough consideration for a pattern and growth of the strings.
EC: Probabilistic L-System
L-systems originated as a method to visualize plants and plant growth. To truly mimic a living organization some options should be left up to chance. This idea was successfully applied to the distance and angle of 'branches' of a select system. Managed by a bit of random tweaking in the in the vocabulary switch statement.




























Comments