Thanks to NaN (Blender authors) for this wonderful freeware.
Lsystem is a script that has been developed by Armagan Yavuz :
TREES                   PLANTS


What we can obtain
The whole work in this tutorial has been made with the last modified version of the script by JM SOLER
and tested with 2.46, 2.47, 2.48 and the last 2.49b version of Blender
(A ". blend" file with the script within is available here :

What is L-system ?
It is a script that has to be used within Blender to generate plants and trees automatically
Blender's screen appearence when a file with the lsystem script is loaded
Lsystem at Launch
As we see in the upper picture, there is a set of textured leaves included in the file.
The Graphic User Interface of Neo-lstseed 
Vue de L'interface neo-lstseed
Colour code for the following explanations.
Vue de L'interface neo-lstseed
The principle of the original script is to generate a new plant each time you push the [Generate] button. In fact the script creates two meshes, one for the structure : the trunk and branches, and another one for the leaves or whatever you want to hang on to the structure. Thus we can hang on one and only one type of element (EITHER leaves, EITHER fruit, or any kind of object you want the tree to carry, provided that your objects have a reasonable amount of vertices). The JM SOLER's version gives the ability to keep a plant structure when you like it, in order to add more things (like fruit and so on) in addition to leaves to the nude shape ; You can do this thanks to the [Seed] button and the ability to save a set of parameters for a choosen plant into a file.


The basic functioning:
    First of all, at the lower left of the interface we find the two most important buttons. See the GUI above.
  • [Generate] to create the meshes.
  • [Iterations] that determines the levels of sub-branches that will be created.
    [Iterations:1] creates just the trunk, [Iterations:2] creates the trunk plus the first level of sub-branches, [Iterations:3] another sub-level, etc.
Branches and Stem : These two sections are connected and used together to define the structure of the plant, trunk and branches.
If [Stem] is on NONE StemNone thus non-activated, then the Branches section controls entirely the shape : trunk and sub-branches. If [Stem] is activated together with [Branches], then the parameters of the Stem section control the trunk shape and the parameters of the Branches section control the branches shape.

Branches : This button leaves located to the right of the Branches section title is a drop-down menu. It allows to choose a scheme of arrangement for the ramification that will be repeated in a recursive manner to construct the branches. We can distinguish two main models among the offered choices.
The two types of models :
"split N"
"arm N"

For each type we have several choices when we unroll the menu with the double-arrow. Then we can choose how many branches are created at each branch intersection and the way they are placed in space, 2D or 3D.

Resolution V : This value determines the number of section/lump that will constitute each branch.
Example with Resolution V= 2
Example with Resolution V= 4
By increasing the [ResolutionV] we can obtain a smoother and a better look mesh but it increases the number of vertices.
More over, this parameter has an influence on others like Shorten, ThinDwn, Twist and Force.
You LeftMouseclick on the right of the button ResolButtonto increase the value and on the left to decrease.

Repeat : It doesn't add any sub-level of branches. It only repeats the existing sub-levels as they are determined by [Iterations]. In fact this is a multiplication factor that multiplies the segments the necessary number of time in order to have each final level with the number of intersection corresponding to the repeat value. For repeat 1, each final level will diverge one time, for repeat 2 each final level will diverge two times, etc. See example below, 4 subdivision levels for each of the structures, but the left one has a repeat value of 1 and the right one has a repeat value of 2.

Spin : Twisting/rotation, each of the branches (mother branch and sub-branches) are submitted to a rotation around the central axe of the cylinder that it forms.
Rotation Example -187.01

Curve: curves the mother branch and the sub-branches towards the soil.

SubSlope (0 to 180) : determines the angle that the sub-branches form with the trunk (or mother branch),
curseur curseur
The more the cursor tends to 0 the more the sub-branches tip tend to the top of the trunk.
The more it tends to 180 the more the tip tend to the soil.

SubOrient : Orientation of the sub-branches, related to the model of the branches (armN or splitN).

SubLen : controls the length of the sub-levels of branches that are produced by the [Iterations] button. This parameter goes from 0.0 to 1.0. For 1.0 the sub-branches will have exactly the same length as their parent segment.

Values under 1.0, mean that the sub-branches will only get a percentage of the parent segment length. For example 0.5 is half the length of its parent segment. Each segment is shorter than the preceeding one, see picture below, [iteration 1] is the trunk alone, second iteration (first level of sub-branches) will be 0.5% of 1.0, third iteration and further will be 0.5% of 0.5%.

SubThickness :
controls the diameter of the sub-branches, related to the parent segment diameter. It works the same way the [SubLen] does.

Leavesthis button activates the creation of leaves, only the two last levels of branches carry leaves.
Leaf Pattern Menu : leaves allows to select a particular arrangement of leaves.
resolutionV : this button does nothing.
Repeat : this is a multiplication factor that determine the number of leaves per segment.
LengthMul : supplementary length that only acts on the branches that carry leaves.
ExtraSpin : supplementary twisting only acts on the branches that carry leaves.
ExtraCurve : supplementary curvature only acts on the branches that carry leaves.
LeafSlope : inclination of the leaves around the branches, acts sligthly on the orientation of the branches.
LeafOrient : change the orientation of the leaf, the result of this parameter depends on the model of the selected leaf, acts sligthly on the orientation of the branches too.
Add leaves : activates or deactivates the creation of leaves.
LeafObj : assign an object as a leaf. The objects from "a" to "o" already exist in the Layer number 3 but you can create other objects, see the example below :
However, be careful when creating new objects as leaves, avoid adding too much vertices..
Step 1 :
Create an object, aligned with the existing leaves.
(Here below, in pink, a "Sphere" object has been created).
Step 2 :
Push the button [AddLeaves] and write the name of the object you've just created in the field "leafobj:".
In my example an icosphere (4,4).

Push the button [GENERATE] and that's it, see the result below:
The object "Sphere" has been used as a leaf .
LeafScale : let enter the leaves size.

Force buttons :
UseThickness : Use this button if you want the force to affect more the thin branches than the thick ones.
Bearing : that means carrying.
Elevation : Height.
Magnitude : Value, that gives the importance of the force. It controls the direction and the magnitude of the force.
Vary along with resolutionV
Examples below : On the right, only the V resolution has been changed compared to the left settings.
Prune buttons : Cut the sub-branches randomly with the value written in the "Prob" slider.
PruneFirst: "Prune" that means cutting, cut the sub-branches created in the N first iterations.
Prob : from 0 to 0.500, probability value.

General buttons :
Scale : Total height of the tree as it is defined by the Branches and stem, without leaves.
Radius : Global diameter of the tree and branches.

Shorten : makes the segments getting progressivly shorter over iterations. Depends on resolutionV.
ThinDwn : makes the branches taper all the way up.The more you increase this value the narrower the segments get. Depends on resolutionV.

Redir : changes randomly the direction of the sub-branches.
Twist : applies a twist randomly along each branches. Depends on resolutionV.

LOD : (Level Of Detail) Make ResolutionU decrease according to "ThinDwn " decrease.
In other words : the thinner the Branches are, the less smoothed and detailed they are.
ResolutionU : Number of points that make up a ring.

Iterations : An iteration is a cycle of calculation. For each iteration it subdivides one time the existing branches. That is to say it generates one sub-level of sub-branches.

genButEx regGenBut

Book in French
Starter Kit Blender

Blender Starter Kit