top of page

L-Systems

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.

ree

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

ree

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

ree

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.


ree

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.


ree

ree

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.

ree
ree

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.


ree
ree

Comments


Woolgathering Fabricator

© 2025 by Woolgathering Fabricator. All rights reserved.

bottom of page