L-Systems (Geometry-Nodes)

by Alex Martinelli in Modifier Setups


Geometry-nodes setup that allows to generate and experiment with L-systems.

Requires Blender >=4.1 ("Menu Switch" node).

For any inquiries or feedback, feel free to reach out on Twitter.

L-systems allow generation of complex shapes via iterations over a user-provided grammar. Results have often fractal like composition, and can resemble trees, snowflakes or other organic branching structures. Check the wiki page for an introduction to L-systems or the Houdini entry.

Summary of the setup

In the provided file you can find three main modifiers: "LSystem Custom", "LSystem Plants" and "LSystem Fractals". Just apply one to any object and the resulting L-system will be generated as a mesh.

The "LSystem Plants" and "LSystem Fractals" variations just provide few L-system presets which can be selected from the menu preset dropdown. These presets are examples of popular rules which you can play around without any prior knowledge of L-system rules, just edit the modifier parameters to adjust results as you find fit.

For example the "Iterations" parameter, defines how many times to apply the grammar rules and the "Max Str Length" specifies the maximum length of the resulting string that will be drawn. Be careful with these values, as a string can get quite long depending on the grammar, resulting in Blender slowing down to fully render the results. Test with small values first and increase gradually.

The real power of the setup resides in defining your own custom rules. The "LSystem Custom" modifier allows to provide your own axiom and rules (use just as many as needed, or manually edit its content if in need of more rules).

The "LSystem Renderer" is what takes care of rendering/displaying the generated string. It follows the "turtle" graphics routine. The following is the set of operations allowed in this setup, with the corresponding "turtle" effect.

  • F: move forward (drawing a line)

  • + or -: turn right or left by angle[1] (where angle is the "Angle Add" vector input for the modifier)

  • & or ^: pitch down or up by angle[0]

  • \ or /: roll clockwise or counterclockwise by angle[2]

  • ~: turn/pitch/roll by a random amount

  • " or _: multiply or divide current length by "Step Size Scale"

  • [ or ]: start or end a branch

Extra content

In addition to the basic setup we also provide an extensive preset of L-System rules and a "Mesh To Tree" modifier with sample materials.

In the "LSystem Plants" modifier you will find 12 presents that generate plant like structures. The "LSystem Fractals" 10 popular rules that resemble famous fractals like Sierpinski Square or Koch Curve.

The "Mesh To Tree" modifier takes as input the resulting L-System mesh and transform it into a tree-like object, with profiled trunk and branches. The modifier allows customization of different parameters like branch radius and full control on leaves and flowers distribution. It also includes sample materials for leaves, flowers and bark.


Published 21 days ago
Blender Version 4.1
License Creative Commons
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message