#(0) (0) *0.3=L (3) *3=L *1.3=D C #(1) I (x0,0.9) (x1,0.96) (x3,0.8) *(0.7:0.9)= #(2) N *2.5=x3
Iter 11
R@ *0.8=D [m((3.3:3.6)) /((-10:10)) +((160:175)) CZ] [m((3.3:3.6)) /((62:82)) +((160:175)) CZ] [m((3.3:3.6)) /((134:154)) +((160:175)) CZ] [m((3.3:3.6)) /((206:226)) +((160:175)) CZ] [m((3.3:3.6)) /((278:298)) +((160:175)) CZ]
F@ Z C -((17:22))VC [<((20:30))VC] -((17:22))>((20:40))VC -((5:10))<((-40:40))VC
F@ Z C -((17:22))[<((20:30))VC VC] [+((17:22)) >((40:50))VC VC ] -((13:18))VCVC -((10:15))>((20:40))VC -((5:10))<((-40:40))VC
F@ Z C -((17:22))VC -((17:22))>((-40:40))VC -((5:10))<((-40:40))VC
R@ V *(0.5:0.7)=D *(1.1:1.4)=L
F@ I C *0.9=D C *0.9=D
F@ I C >((0:180)) *0.9=D C >((0:180)) *0.9=D
F@ I C >((0:180)) *0.9=D C >((0:180)) *0.9=D
F@ I C >((0:180)) *0.9=D C >((0:180)) >> *0.9=D
F@ I C >((0:180)) *0.9=D C >((0:180)) >> *0.9=D
F@ B C[-((1:5))A] C >((128:148)) *x0=D *x1=L *0.88=x3
F@ B C[+((1:5))A]>>C[+((1:5))A]>((128:148)) *x0=D *x1=L *0.88=x3
F@ B C >((128:148)) *x0=D *x1=L *0.88=x3
R@ *(0.9:1.1)=x3 #(1) (x3) C [&((15:30))][^((15:30))]
F@ A *(0.9:1.1)=x3 #(3) C(0.01,x3) *0.8=x3 (x3) +((10:40)) C [&((15:30))][^((15:30))+((-10:10))]
F@ A *(0.9:1.1)=x3 #(3) C(0.01,x3) *0.8=x3 (x3) +((10:40)) C &((-30:30))+((-30:30))
F@ A *(0.9:1.1)=x3 #(3) C(0.01,x3) *0.8=x3 (x3) +((10:40)) C -((-30:30))^((-30:30)) *(0.4:0.8)=D *(0.5:1)=L T
F@ *0.7=D *(0.7:0.8)=L #(3) C [+((15:30))][-((15:30))]
F@ *0.6=D *(0.7:0.8)=L #(4) C [&((15:30))][^((15:30))+((-10:10))]
F@ *0.7=D *(0.7:0.9)=L #(4) C [+((15:30))] *(0.4:0.8)=D *(0.5:1)=L T
F@ *0.7=D *(0.7:0.9)=L #(4) C [-((15:30))]
F@ *0.6=D *(0.7:0.9)=L #(4) C [+((15:30))][-((15:30))]
F@ *0.7=D *(0.7:0.8)=L #(4) C [&((15:30))][^((15:30))]
F@ *0.7=D *(0.7:0.9)=L #(4) C [&((15:30))]
F@ *0.7=D *(0.7:0.8)=L #(4) C [^((15:30))] *(0.4:0.8)=D *(0.5:1)=L T
F@ *0.7=D *(0.7:0.9)=L #(4) C [&((15:30))][^((15:30))+((-20:20))]
F@ *0.7=D *(0.7:0.8)=L #(4) C [&((15:30))][^((15:30))+((-20:20))]
F@ *0.7=D *(0.7:0.8)=L #(4) C [+((-30:30))]*(0.4:0.8)=D *(0.5:1)=L T
F@ *0.8=D *(0.8:0.9)=L #(5) C [^((15:30))][&((15:30))]
F@ *0.8=D *(0.8:0.9)=L #(5) C [+((15:30))][-((15:30))]
F@ *0.8=D *(0.8:0.9)=L #(5) C [&((15:30))][^((15:30))+((-20:20))]
F@ *0.8=D *(0.8:0.9)=L #(5) C +((-30:30))^((-30:30))
R@ [>((-180:180)) +((20:60)) *(0.15:0.25)=D *(0.4:0.6)=L C(0.001,0.4) T]
F@ T *0.7=L E
F@ T *0.7=L
F@ T *0.7=L
F@ T *0.7=L
F@ E *0.6=D *(0.7:1)=L #(6) C [+((15:30))][-((15:30))]
F@ E *0.7=D *(0.7:1)=L #(6) C [&((15:30))][^((15:30))]
F@ E *0.7=D *(0.7:1)=L #(6) C [&((15:30))]
F@ *0.6=D *(0.7:1)=L #(6) C [+((15:30))][-((15:30))]
F@ *0.7=D *(0.7:1)=L #(6) C [&((15:30))][^((15:30))]
F@ *0.7=D *(0.7:1)=L #(6) C [&((15:30))]
F@ *0.6=D *(0.7:1)=L #(6) C [+((15:30))][-((15:30))]
F@ *0.7=D *(0.7:1)=L #(6) C [&((15:30))][^((15:30))]
F@ *0.7=D *(0.7:1)=L #(6) C [&((15:30))]
F@ *0.6=D *(0.7:1)=L #(5) C [+((15:30))][-((15:30))]
F@ *0.7=D *(0.7:1)=L #(5) C [&((15:30))][^((15:30))]
F@ *0.7=D *(0.7:1)=L #(5) C [&((15:30))]
F@ *0.6=D *(0.7:1)=L #(5) C
F@ *0.7=D *0.5=L #(5) C >((-30:30)) +((-30:30)) *0.7=D *0.7=L C >((-30:30)) +((-30:30)) *0.7=D *0.7=L C
F@ #(7) (,0.5) C C #(8) (F,1) (F,-2) (W,3) P
F@ #(7) (,0.5) C C #(8) (F,1) (F,2) (W,-1) P



L-System code is a formal language used to mathematically describe growth of plants.
It contains descriptions of plant parts and how they should be assembled together
Such description is recursively applied to itself a number of times creating self-similar, pseudo-fractals shapes.
By repeating recursion loops, the shape 'grows' and becomes more complex :

L-System plant growth with increasing iterations

L-System grammar is usually simple and contains few commands, usually one characer is used as L-System language word, so the simplest code for basic shapes can be contained in couple of lines like :

w: F
p: F -> F[-F]F[+F][F]

But when a more realistic model is needed, with realistic variability of shape, then L-System code becomes longer and difficult to manage. Often it is difficult to imagine the impact of a modification inside the code to the shape of plant.

This kind of plants creation by typing L-system code is reserved to real hard-core geeks.

On the right side is an example of complex code devised to generate realistic looking tree model.
To cope with L-System code complexity on advanced models, often two stages approach is used :
Relatively simple code is defined for basic model, and then such rough model is interactively adjusted in procedural editor where result of parameters modifications is instantly visualised.

To cope with code complexity of L-System code on elaborate models, it is useful to define precise plan of modeled structure and to use same colors for structure graph and L-System code

L-System approach is used in the most advanced scientific & free software package for for 3D botany L-Studio/VLAB created by professor's Prusinkiewicz from University of Calgary, and also in Cinema 4D Mograph module.