String-rewriting systems developed by Aristid Lindenmayer (which is where the `L' comes from) which model plants quite successfully. An L-system is basically a set of symbols in an alphabet, a set of
rules to apply to the
alphabet, and a starting string of the symbols.
As an example, take the alphabet to be {a,b}. Take two rules:
b -> ab
a -> b
And use `a' as the initial string. The development of the system will go like this (where
n is the generation of the system):
n String
0 a
1 b
2 ab
3 bab
4 abbab
5 bababbab
This may not seem like much, but (if I've remembered it correctly) it's a good model for the development and cell growth of a real system. The details may be found in The Algorithmic Beauty of Plants. With the expansion of the alphabet, and the addition of a turtle-based interpretation of the strings (like LOGO), fractal shapes such as a Sierpinski gasket can be formed. With care, plant and leaf-like forms can be generated. The addition of stochastic rules adds variation to the final output of the L-system on each run.