L-systems

From GenerativeArt

(Difference between revisions)
Jump to: navigation, search
(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-viz.tamu.edu/courses/viza658/wiki/lsys/01.png|caption=Example showing string interpretation}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/02.png|caption=Example showing string substitution}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/03.png|caption=Example showing string substitution with symbols}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/book1.jpg|caption=Branching Structures}}
+
== 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)&rarr; F[-F]F
  p3: F (0.33)&rarr; F[-F]F
-
{{SingleImage|imageWidthPlusTen=600|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/lsys/04.png|caption=Stochastic L-system}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/book2.jpg|caption=Stochastic L-system}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/book3.jpg|caption=Context Sensitive L-systems}}
+
{{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-viz.tamu.edu/courses/viza658/wiki/lsys/book4.jpg|caption=Context Sensitive L-systems}}
+
{{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.

Current revision