#(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 code devised to generate realistic looking tree model.
When developing plants for old Vue system Botanica, I have created dozens of such codes.
After plan was generated, it was polished inside botanica, and variations have been made there too.
If you wondered how old plants have been made, this is it :-)

Creation of L-System tree for Vue  Botanica

To cope with code complexity on elaborate models, like dragon tree above, I designed coloured charts, and coloured code, to improve the visibility of coded tree structure.

L-System programming is also implemented in Cinema 4D Mograph module and probably the most advanced aplicatiom making use of L-System code is professor's Prusinkiewicz L-Studio/VLAB