L-systems

From GenerativeArt

(Difference between revisions)
Jump to: navigation, search
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.
[[Category:Complex systems]]
[[Category:Complex systems]]
 +
[[Category:Systems]]
[[Category:Systems used in Computer animation and effects]]
[[Category:Systems used in Computer animation and effects]]
[[Category:Systems used in Computer graphics]]
[[Category:Systems used in Computer graphics]]
[[Category:Systems used in Design]]
[[Category:Systems used in Design]]

Current revision

Personal tools