This project, Growth and Evolution of Virtual Plants, used the L-system language, invented by Aristid Lindenmayer. It was implemented at Griffith University in 1995, as my Honours project, on Silicon Graphics Indys, using Cpfg software.
The principle behind it all: each iteration, a pattern of symbols is replaced by another pattern, and turtle graphics are used. Briefly, F means forward, [] encloses a branch, and + and - turn left and right. The string F -> F[+F]F[-F] produces these examples:
This movie rescales between frames. Each F in the previous string is being replaced by the entire string in the replacement rule. The resulting image is fractal and looks reasonably natural, if primitive.

I created a node-based model, with a leaf to gather energy, and a berry to store it. Each node can grow two children, which also feed it energy, and must give energy to its own parent, because a parent takes all its children with it when it dies. Each node has a set of "genes" which define how much energy it gives to each area. Genes are mutated slightly for each new node. An accompanying visual model improves appearance, but I won't go into that here.
That model, run to 50 iterations. Randomness in mutation is too small to affect this model very much; first runs tend to be quite similar, though the amount by which the branches bend is subject to change too. The number is a seed counter; each time a berry passes an energy threshold, it disappears and becomes a seed. These seeds can be used to generate new plants.
Now, the seed output is used to implement a natural evolution process, which the diagram should explain fairly clearly. In my model, each seed generated ten new plants, and was run for fifty generations. Each plant ran fifty iterations, as usual.

Once evolution had taken place, I grew a plant from one of the final seeds. As you can see, the final plant is much more successful, in terms of seeds produced, than its ancestor. In fact, the number of seeds produced is really its only measure of success; there are no artificial tendencies imposed on the evolutionary process. Simply, the more seeds a plant produces, the more likely it is to be chosen at random.
I am indebted to Rok Sosic and Jim Hanan for their supervision and assistance. For more information, please feel free to e-mail me at the address below; a thesis was written and may become available. A practical example of Virtual Plant technology is under development by the Insect/Plant Interactions group at the CSIRO's Centre for Tropical Pest Management in Brisbane.
December 1997