This is an old revision of the document!
Making plants grow towards light
Using lindenmayer systems and genetic algorithms to simulate plant growth.
Plants are given a “fitness” based on their leaves -
- How much do they face the light?
- Are they too close to other leaves?
- Are they in shadow from another leaf?
- Are they below the ground?
- Also - the fitness drops as the plant description (a linenmayer system string) gets too long.
Using this measurement, a genetic algorithm can create populations of individual plants, score each one and iteratively create new populations by combining fit individuals.
The simplest strategy is to “cheat” :) Each frame is the fittest of a new population.
The result of a long run with many thousands of generations.
You can also evolve from a starting point - in this case a simple tree is modified to create a bigger and more suitable one for the environment.
Code: http://www.pawfal.org/flotsam/jetsam/patabotany/scheme/