L-systems
From GenerativeArt
(Difference between revisions)
(→Organizations, Exhibits, Conferences, Publications) |
Current revision (04:19, 21 November 2012) (view source) (fix image urls) |
||
F[+F]F[-F]F | F[+F]F[-F]F | ||
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/01.png|caption=Example showing string interpretation}} |
== How L-systems Grow == | == How L-systems Grow == | ||
- | |||
<SPAN STYLE="font-size: larger;">String rewriting/substitution </SPAN> | <SPAN STYLE="font-size: larger;">String rewriting/substitution </SPAN> | ||
- | + | <br><br> | |
L-systems "grow" via iterative string substitution. The system initially has three components. | L-systems "grow" via iterative string substitution. The system initially has three components. | ||
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 | 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 | ||
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/02.png|caption=Example showing string substitution}} |
== Null Symbols == | == Null Symbols == | ||
- | |||
<SPAN STYLE="font-size: larger;">Adding complexity to production rules</SPAN> | <SPAN STYLE="font-size: larger;">Adding complexity to production rules</SPAN> | ||
- | + | <br><br> | |
L Systems can also have symbols that have no drawing operations associated with them, but add complexity when applying production rules. | L Systems can also have symbols that have no drawing operations associated with them, but add complexity when applying production rules. | ||
n = 2; FF[+F[+X]F[-X]+X]FF[-F[+X]F[-X]+X]+F[+X]F[-X]+X | n = 2; FF[+F[+X]F[-X]+X]FF[-F[+X]F[-X]+X]+F[+X]F[-X]+X | ||
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/03.png|caption=Example showing string substitution with symbols}} |
== Examples of Branching Structures == | == Examples of Branching Structures == | ||
- | |||
<SPAN STYLE="font-size: larger;">How production rules create form </SPAN> | <SPAN STYLE="font-size: larger;">How production rules create form </SPAN> | ||
+ | <br><br> | ||
- | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/book1.jpg|caption=Branching Structures}} | |
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | |
== Stochastic L-systems == | == Stochastic L-systems == | ||
- | |||
<SPAN STYLE="font-size: larger;">L-systems combined with chance operations </SPAN> | <SPAN STYLE="font-size: larger;">L-systems combined with chance operations </SPAN> | ||
- | + | <br><br> | |
Like typical L-systems, but with multiple production rules for a single expression, each with a probability. The sum of all the probabilities must total to 1. | Like typical L-systems, but with multiple production rules for a single expression, each with a probability. The sum of all the probabilities must total to 1. | ||
p3: F (0.33)→ F[-F]F | p3: F (0.33)→ F[-F]F | ||
- | {{SingleImage|imageWidthPlusTen=600|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=600|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/04.png|caption=Stochastic L-system}} |
<SPAN STYLE="font-size: larger;"><u>Example</u></SPAN> | <SPAN STYLE="font-size: larger;"><u>Example</u></SPAN> | ||
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/book2.jpg|caption=Stochastic L-system}} |
== Context Sensitive L-systems == | == Context Sensitive L-systems == | ||
- | |||
<SPAN STYLE="font-size: larger;">Simulating hormones and chemical triggers </SPAN> | <SPAN STYLE="font-size: larger;">Simulating hormones and chemical triggers </SPAN> | ||
- | + | <br><br> | |
Context sensitive L-systems can create signals (sub-strings) that travel the length of the branching structure string as it grows. The signals can, in turn, determine the location of new branches, flowers, buds, etc. | Context sensitive L-systems can create signals (sub-strings) that travel the length of the branching structure string as it grows. The signals can, in turn, determine the location of new branches, flowers, buds, etc. | ||
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/book3.jpg|caption=Context Sensitive L-systems}} |
- | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www | + | {{SingleImage|imageWidthPlusTen=460|imageURL=http://www.viz.tamu.edu/courses/viza658/wiki/lsys/book4.jpg|caption=Context Sensitive L-systems}} |
== Genetic L-systems == | == Genetic L-systems == | ||
- | |||
<SPAN STYLE="font-size: larger;">Systems that allow the evolution of form</SPAN> | <SPAN STYLE="font-size: larger;">Systems that allow the evolution of form</SPAN> | ||
- | + | <br><br> | |
L-systems can be combined with genetic algorithms. It is typically very difficult to start with a given plant or intended form and invent a set of production rules that will produce it. By encapsulating the L-system within an evolutionary system one can "navigate" the design space and guide the system towards the intended result without having to understand or inspect the actual production rules. | L-systems can be combined with genetic algorithms. It is typically very difficult to start with a given plant or intended form and invent a set of production rules that will produce it. By encapsulating the L-system within an evolutionary system one can "navigate" the design space and guide the system towards the intended result without having to understand or inspect the actual production rules. |