W2514 Emergence & Lindenmayer Systems (Part 4)
Prerequisites[edit]
Research[edit]
 Read Stacks
 Review those Lindenmayer Systems that require use of a stack (pop/push). One example is a "Fractal Tree".
Experiment[edit]
Getting Started[edit]
Modify the code from your previous experience.
Turtle objects are able to remember their current state and restore that state at a later point. The state is stored on a stack and is therefore in LIFO (Last In First Out) order. A turtle's state includes:
 location
 angle
 pen color
 pen width
Consider a Fractal Tree with the following translation mechanisms:
 0: draw a line segment (ending in a leaf)
 1: draw a line segment
 [: push position and angle, turn left 45 degrees
 ]: pop position and angle, turn right 45 degrees
When encountering a push or pop operation we can use the turtle's functionality as follows:
case "[":
turtle.push()
turtle.left(degrees:45)
case "]":
turtle.pop()
turtle.right(degrees:45)
Regardless of what occurs between a push and a pop, the turtle will be in the same situation it was in immediately prior to the push. This enables us to build very complex systems, such as Kev's Wispy Tree.
Kev's Wispy Tree^{[1]} (Adapted)[edit]
 Alphabet: "F", "X", "[", "]", "+", "", "0", "1", "2", "3"
 Axiom: "FX"
 Production Rules:
 "F" > "0FF[1F+F]+[2+FF]"
 "X" > "0FF+[1+F]+[3F]"
 Geometric mechanism:
 "F" > Forward
 "X" > Forward
 "" > Right 25 degrees
 "+" > Left 25 degrees
 "[" > Push
 "]" > Pop
 "0" > Pen color: red:140, green:80, blue:60
 "1" > Pen color: red:24, green:180, blue:24
 "2" > Pen color: red:48, green:220, blue:48
 "3" > Pen color: red:64, green:255, blue:64
👀 See Also[edit]
📺 Videos[edit]
Lindenmayer Systems and The Nature of Code
Procedural Plant Generation with LSystems
📖 Texts[edit]
W2511 Emergence & Lindenmayer Systems (Part 1)
W2512 Emergence & Lindenmayer Systems (Part 2)
W2513 Emergence & Lindenmayer Systems (Part 3)
W2514 Emergence & Lindenmayer Systems (Part 4)
📚 References[edit]
 ↑ Adapted from http://www.kevs3d.co.uk
Exercises[edit]
Exercises  
Supplemental exercises:

Key Concepts[edit]
Key Concepts  
