Hmm, nice idea. The problem is probably at the python end. Tim's ForestWalk works because the trees are merged into one object with one matrix ( + assoc. uniform variables) needing to be multiplied and sent to the gpu each frame. If they were all individual trees it would grind to a halt. Worse if each tree was more than a couple of crossed planes.
However you could do something cunning with the vertex shader:
1. forest is a single object grid of crossed planes (as per ForestWalk trees)
2. texture for drawing the trees has 9 (say) images
3. 2nd texture is generated by tree of life algorithm with pixels representing grid squares
4. 2nd texture is passed to vertex shader and used to figure out which part of image to use and modify texture coordinates sent to fragment shader
It would be quite good if you could 'plant' a seed on a grid square, or 'add nutrients', or ...
PS if you cobble some of it together I will hack the shaders to make it work