illidol: a framework for exploration of l-systems in three dimensions
DESCRIPTION
IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions. Vilas Dhar [email protected] Math 198 Spring 2003. What are Lindenmeyer Systems?. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/1.jpg)
IlliDOL:
A Framework for Exploration of L-Systems in Three Dimensions
Vilas Dhar [email protected] Math 198
Spring 2003
![Page 2: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/2.jpg)
What are Lindenmeyer Systems?
• Class of string rewriting mechanisms originally used to model plant development
• Arose from an interest in formal grammars proposed by Chomsky
• Different from Chomsky grammars in that successive productions are applied in parallel
![Page 3: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/3.jpg)
A simple L-system consists of 4 elements:
1. VARIABLES are symbols denoting elements that can are replaced.
2. CONSTANTS are symbols denoting elements that remain fixed.
3. INITIATOR is the start position of the system
4. RULES ("syntax") define how the variables are to be replaced by constants or other variables.
![Page 4: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/4.jpg)
Example
Variables: A B Constants: none Initiator: A Rules: A -> B B -> AB
![Page 5: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/5.jpg)
Example (con’t)
Stage 0 : A Stage 1 : B Stage 2 : AB Stage 3 : BAB Stage 4 : ABBAB Stage 5 : BABABBAB Stage 6 : ABBABBABABBAB Stage 7 : BABABBABABBABBABABBAB
![Page 6: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/6.jpg)
Example (con’t)
Stage 0 : A 1 Stage 1 : B 1 Stage 2 : AB 2 Stage 3 : BAB 3 Stage 4 : ABBAB 5 Stage 5 : BABABBAB 8 Stage 6 : ABBABBABABBAB 13 Stage 7 : BABABBABABBABBABABBAB 21
Fibonacci sequence!
![Page 7: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/7.jpg)
String Interpretation – Turtle Geometry
A simple model:State: (x,y,alpha)Commands:
F: Move forward step of length d f: Move forward step of length d, do not draw a line +: Turn left by angle delta
-: Turn right by angle delta
![Page 8: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/8.jpg)
A Familiar Figure
Number of Iterations =4, delta = 60 DegreesInitial State: Fr
Rules: Fl -> Fr+Fl+FrRules: Fr -> Fl-Fr-Fl
![Page 9: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/9.jpg)
Growing Things!
• Start with the string G• Use the following rules:
F -> FFG -> F[+G][-G]F[+G][-G]FG
![Page 10: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/10.jpg)
Strings Strings Strings!
Stage 1: G
Stage 2: F[+G][-G]F[+G][-G]FG
Stage 3: FF[+F[+G][-G]F[+G][-G]FG][-F[+G][-G]F[+G][-G]FG]FF[+F[+G][-G]F[+G][-G]FG][-F[+G][-G]F[+G][-G]FG]FFF[+G][-G]F[+G][-G]FG
![Page 11: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/11.jpg)
Plants?Take the preceding string and apply two simple rules. Every G becomes a
green short branch, and every F becomes a longer brown branch, and define the turning angle as 25 degrees. Here’s what we end up with:
![Page 12: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/12.jpg)
Turtle Geometry in 3D
Turtle State:H, L, U -- unit length perpendicular vectors
Rotations are represented by:[H’,L’,U’] = [H,L,U] R
Where R is a 3x3 matrix – Specifically:
![Page 13: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/13.jpg)
Rotation Matrices
| cos(alpha) sin(alpha) 0 | RU (alpha ) = | -sin(alpha) cos(alpha) 0 |
| 0 0 1 |
| cos(alpha) 0 - sin(alpha) | RL(alpha ) = | 0 1 0 |
| sin(alpha) 0 cos(alpha) |
| 1 0 0 | RH (alpha ) = | 0 cos(alpha) –sin(alpha) |
| 0 sin(alpha) cos(alpha) |
![Page 14: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/14.jpg)
New Turtle Commands
+ : turn left by angle using RU(alpha)- : turn right by angle using RU(-alpha)& : Pitch up by angle using RL(alpha)^ : Pitch down by angle using RL(-alpha)\ : Roll left by angle using RH(alpha)/ : Roll right by angle using RH(-alpha)| : Turn around, using rotation matrix RU(180 deg)
![Page 15: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/15.jpg)
What can this turtle do?
![Page 16: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/16.jpg)
More Turtles!
![Page 17: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/17.jpg)
Growing 3D Things
Start with a string A with the following rules:A-> [&FL!A]/////’ [&FL!A]///////’ [&FL!A]F -> S/////FS - > F LL-> [‘’’^^{-f+f+f-|-f+f+f}]A represents an apex, L a leaf, F an edge
![Page 18: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/18.jpg)
Applying the rules for 3 repetitions gives us:
![Page 19: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/19.jpg)
IlliDOL: A Framework for Exploration
The goal of IlliDOL is to allow the novice user to explore L-system based processes in 3 dimensions with as little training as possible.
![Page 20: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/20.jpg)
IlliDOL components
• A point and click toolkit for string and rule creation.
• A grammar parser that takes an axiom and rules to generate strings at every level of iteration.
• A graphical environment based on illiSkel which converts strings into real figures. This environment will be expandable by users to generate variable phenomena.
![Page 21: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/21.jpg)
Project Timeline
• By May 2003:A parser which generates strings based on user-
supplied rules.Hilbert Curve, generated via L-systems and displayed in the CAVE.Bush structure with user definable parameters growing on CAVE floor through at least 4 iterations
![Page 22: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/22.jpg)
For More Information
General Info:Prusinkiewicz, Lindenmeyer, “The Algorithmic Beauty of Plants” Springer Verlag, 1990
Applications:http://www.gressly.ch/systems/projects/vp/http://instruct1.cit.cornell.edu/courses/bionb441/LSystem/
Evolutionary Approaches:http://www.csse.monash.edu.au/~jonmc/resources/L-systems-evol.pdf
![Page 23: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/23.jpg)
Pretty Pictures
http://www-viz.tamu.edu/courses/viza615/97spring/benc/research/img12.jpg
![Page 24: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/24.jpg)
http://www-viz.tamu.edu/courses/viza615/97spring/benc/research/img4.jpg
![Page 25: IlliDOL: A Framework for Exploration of L-Systems in Three Dimensions](https://reader036.vdocument.in/reader036/viewer/2022062410/56815dcf550346895dcbfa49/html5/thumbnails/25.jpg)
http://www-viz.tamu.edu/courses/viza615/97spring/benc/research/img13.jpg