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
For all the testing here, i used the modified version of the script by JM SOLER
and the 2.47 version of Blender
(A ". blend" file with the script within is available here :

What is L-system ?
It is a script to generate plants and trees automatically
Blender screen appearence when a file with the lsystem script is loaded
Lsystem at Launch
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 trunc and branches, and another one for the leaves or whatever you want to hang to the structure. So you can hang one and only one type of element (EITHER leaves, EITHER fruit, or any kind of object you want the tree to bear, 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 thank to the [Seed] button and the possibility to save the set of parameter values into a file.


The basic functioning:

Branches and Stem : These two sections are connected and used together to define the structure of the plant, trunc and branches.
If  Stem is on NONE thus non-activated, then Branches controls entirely the ramifications : branches and sub-branches.
If Stem is activated together with Branches , then Stem controls the main branches and Branches controls the sub-branches.

Branches This button leaves located to the right of the title section allows to choose the basic model of ramification that will be repeated in a recursive manner to construct the branches.
Two types of models are available :
"split N"
"arm N"

For each type you have several choices when you unroll the menu with the double-arrow.

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 VResolution we can obtain a smoother and a better look mesh but it increases the number of vertices of the mesh.
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 : this is a multiplication factor that determines the number of time that the model of "Branches" (see above) will be repeated before the next level. 
Repeat 1
Repeat 2
repeat 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 trunc (or mother branch),
curseur curseur
The more the cursor tends to 0 the more the extremities of the sub-branches tend to the top of the trunc.
The more it tends to 180 the more the extremities tend to the soil.

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

SubLen : sub-branches length, related to the length of the current segment.
SubThickness :  diameter of the sub-branches, related to the current segment diameter.

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 Thickness/diameter of the tree.

Shorten : Controls how much shorter will be the next segment. Depends on resolutionV.
ThinDwn : Controls how much narrow will be the next segment. Depends on resolutionV.

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

LOD : (Level Of Detail) Make ResolutionU decrease in proportion with "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 : number of iterations.

genButEx regGenBut