Difference between revisions of "LSystem SOP"

From TouchDesigner Documentation
Jump to: navigation, search
(TD Editor)
Line 68: Line 68:
 
|Parlabel=Random Scale
 
|Parlabel=Random Scale
 
|Parname=randscale
 
|Parname=randscale
|Parsummary=<span class="tipTextSOP">Random Scale</span> as a percentage. This will apply a random scale to the changing geometry's lengths, angles and thickness.
+
|Parsummary=Random Scale as a percentage. This will apply a random scale to the changing geometry's lengths, angles and thickness.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 76: Line 76:
 
|Parlabel=Random Seed
 
|Parlabel=Random Seed
 
|Parname=randseed
 
|Parname=randseed
|Parsummary=<span class="tipTextSOP">Random Seed</span> for the SOP. This value can be used to select different sequences of random values.
+
|Parsummary=Random Seed for the SOP. This value can be used to select different sequences of random values.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 84: Line 84:
 
|Parlabel=Continuous Angles
 
|Parlabel=Continuous Angles
 
|Parname=contangl
 
|Parname=contangl
|Parsummary=Calculates the incremental angles of branches, if a non-integer generational value is used. If the <span class="tipTextSOP">Generations</span> field is animating, this should be set to ensure smooth growth.
+
|Parsummary=Calculates the incremental angles of branches, if a non-integer generational value is used. If the Generations field is animating, this should be set to ensure smooth growth.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 92: Line 92:
 
|Parlabel=Continuous Length
 
|Parlabel=Continuous Length
 
|Parname=contlength
 
|Parname=contlength
|Parsummary=Calculates the incremental lengths of the geometry points if a non-integer generational value is used. As with <span class="tipTextSOP">Continuous Angles</span>, if the <span class="tipTextSOP">Generations</span> field is animating, this should be set to ensure smooth, continuous growth. The <span class="tipTextSOP">Continuous Width</span> field applies to tube thickness.
+
|Parsummary=Calculates the incremental lengths of the geometry points if a non-integer generational value is used. As with Continuous Angles, if the Generations field is animating, this should be set to ensure smooth, continuous growth. The Continuous Width field applies to tube thickness.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 100: Line 100:
 
|Parlabel=Continuous Width
 
|Parlabel=Continuous Width
 
|Parname=contwidth
 
|Parname=contwidth
|Parsummary=Calculates the incremental lengths of the geometry points if a non-integer generational value is used. As with <span class="tipTextSOP">Continuous Angles</span>, if the <span class="tipTextSOP">Generations</span> field is animating, this should be set to ensure smooth, continuous growth. The <span class="tipTextSOP">Continuous Width</span> field applies to tube thickness.
+
|Parsummary=Calculates the incremental lengths of the geometry points if a non-integer generational value is used. As with Continuous Angles, if the Generations field is animating, this should be set to ensure smooth, continuous growth. The Continuous Width field applies to tube thickness.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 117: Line 117:
 
|Parlabel=Image File
 
|Parlabel=Image File
 
|Parname=colormap
 
|Parname=colormap
|Parsummary=Defines a TOP to use when the <span class="tipTextSOP">Apply Color</span> button is selected. Also see the ` and # turtle operators.
+
|Parsummary=Defines a TOP to use when the Apply Color button is selected. Also see the ` and # turtle operators.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 226: Line 226:
 
|Pagename=Tube
 
|Pagename=Tube
 
|OPfamily=SOP
 
|OPfamily=SOP
|Pagesummary=The parameters on this page are active only if [[#Parameters - Geometry Page|Geometry Page]] &gt; <span class="tipTextSOP">Type</span> has been set to the <span class="tipTextSOP">Tube</span> type.
+
|Pagesummary=The parameters on this page are active only if [[#Parameters - Geometry Page|Geometry Page]] &gt; Type has been set to the Tube type.
 
}}
 
}}
 
{{ParameterPage
 
{{ParameterPage
Line 235: Line 235:
 
|Parlabel=Step Size
 
|Parlabel=Step Size
 
|Parname=stepinit
 
|Parname=stepinit
|Parsummary=<span class="tipTextSOP">Step Size</span> allows you to define the default length of the edges when new geometry is generated.
+
|Parsummary=Step Size allows you to define the default length of the edges when new geometry is generated.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 243: Line 243:
 
|Parlabel=Step Size Scale
 
|Parlabel=Step Size Scale
 
|Parname=stepscale
 
|Parname=stepscale
|Parsummary=<span class="tipTextSOP">Step Size Scale</span> defines the scale by which the geometry will be modified by the " or _ (double quote, or underscore) turtle operators.
+
|Parsummary=Step Size Scale defines the scale by which the geometry will be modified by the " or _ (double quote, or underscore) turtle operators.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 251: Line 251:
 
|Parlabel=Angle
 
|Parlabel=Angle
 
|Parname=angleinit
 
|Parname=angleinit
|Parsummary=<span class="tipTextSOP">Angle</span> defines the default turning angle for turns, rolls and pitches.
+
|Parsummary=Angle defines the default turning angle for turns, rolls and pitches.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 259: Line 259:
 
|Parlabel=Angle Scale
 
|Parlabel=Angle Scale
 
|Parname=anglescale
 
|Parname=anglescale
|Parsummary=<span class="tipTextSOP">Angle Scale</span> allows you to enter the scaling factor to be employed when the ; or @ operators are used.
+
|Parsummary=Angle Scale allows you to enter the scaling factor to be employed when the ; or @ operators are used.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}
Line 356: Line 356:
 
|Parname=rules
 
|Parname=rules
 
|Parsummary=Path to the DAT defining the rules for the LSystem.
 
|Parsummary=Path to the DAT defining the rules for the LSystem.
<!--TDitemStart-->*<span class="tipTextSOP">Context Ignore</span> <code>context_ignore:</code> - Defining this in the Rules DAT specifies all characters which are to be skipped when testing context sensitivity in the rules below.<!--TDitemEnd-->
+
*Context Ignore <code>context_ignore:</code> - Defining this in the Rules DAT specifies all characters which are to be skipped when testing context sensitivity in the rules below.
<!--TDitemStart-->*<span class="tipTextSOP">Premise</span> <code>premise:</code> - Define an initial string of characters to which the substitution rules are applied.<!--TDitemEnd-->
+
*Premise <code>premise:</code> - Define an initial string of characters to which the substitution rules are applied.
<!--TDitemStart-->*<span class="tipTextSOP">Rules</span> - This is where the turtle substitution rules are defined.<!--TDitemEnd-->
+
*Rules - This is where the turtle substitution rules are defined.
 
|OPfamily=SOP
 
|OPfamily=SOP
 
}}
 
}}

Revision as of 17:49, 9 March 2018

  • Invalid title: ""

Summary
[edit]

The Lsystem SOP implements L-systems (Lindenmayer-systems, named after Aristid Lindenmayer (1925-1989)), allow definition of complex shapes through the use of iteration. They use a mathematical language in which an initial string of characters is evaluated repeatedly, and the results are used to generate geometry. The result of each evaluation becomes the basis for the next iteration of geometry, giving the illusion of growth.

You begin building an L-system by defining a sequence of rules which are evaluated to produce a new string of characters. Each character of the new string represents one command which affects an imaginary stylus, or "turtle". Repeating this process will grow your geometry.

You can use L-systems to create things such as:

  • Create organic objects such as trees, plants, flowers over time.
  • Create animated branching objects such as lightning and snowflakes.

The file can be read in from disk or from the web. Use http:// when specifying a URL.

The Algorithmic Beauty of Plants

The descriptions located here should be enough to get you started in writing your own L-system rules, however, if you have any serious interests in creating L-systems, you should obtain the book:

The Algorithmic Beauty of Plants			
Przemyslaw Prusinkiewicz & Aristid Lindenmayer			
Springer-Verlag, New York, Phone: 212.460.1500			
ISBN: 0-387-94676-4, 1996.			

which is the definitive reference on the subject. It contains a multitude of L-systems examples complete with descriptions of the ideas and theories behind modelling realistic plant growth.

PythonIcon.png[[{{{opClass}}}]]


Parameters - Page

Template:ParMenu Template:ParFloat Template:ParFloat Template:ParInteger Template:ParToggle Template:ParToggle Template:ParToggle Template:ParToggle Template:ParTopRef Template:ParFloat Template:ParToggle


Parameters - Page

Template:ParInteger Template:ParInteger Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat Template:ParToggle Template:ParFloat


Parameters - Page

Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat Template:ParFloat


Parameters - Page

Template:ParTopRef Template:ParString Template:ParString Template:ParString Template:ParString Template:ParString Template:ParDatRef

TouchDesigner Build:

SOPs
Add • Alembic • Align • Arm • Attribute Create • Attribute • Basis • Blend • Bone Group • Boolean • Box • Bridge • Cache • Cap • Capture Region • Capture • Carve • CHOP to • Circle • Clay • Clip • Convert • Copy • CPlusPlus • Creep • Curveclay • Curvesect • DAT to • Deform • Delete • Divide • Extrude • Facet • File In • Fillet • Fit • Font • Force • Fractal • Grid • Group • Hole • Import Select • In • Introduction To SOPs id • Inverse Curve • Iso Surface • Join • Joint • Kinect • Lattice • Limit • Line • Line Thick • LOD • LSystem • Magnet • Material • Merge • Metaball • Model • Noise • Null • Object Merge • Oculus Rift • OpenVR • Out • Particle • Point • Polyloft • Polypatch • Polyreduce • Polyspline • Polystitch • Primitive • Profile • Project • Rails • Raster • Ray • Rectangle • Refine • Resample • Revolve • Script • Select • Sequence Blend • Skin • Sort • Sphere • Spring • Sprite • Stitch • Subdivide • Superquad • Surfsect • Sweep • Switch • Text • Texture • Torus • Trace • Trail • Transform • Trim • Tristrip • Tube • Twist • Vertex • Wireframe • ZED

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.