Houdini: Creating trees using python

I have been intrigued with procedural object creation for a long time, especially nature stuff. A lot of the stuff out there uses Lindenmayer Systems which are very cool in themselves, and Houdini has direct support for that.

I wanted to do something slightly different - instead of having a 'turtle' drawing the tree through a potentially complex expression, I am looking at the way a tree (or plants, for that matter) really grows and simulate that in very basic steps. To learn a bit more about python, I started doing this as a python OTL in houdini.


I chose to only add points with attributes. That way, the user can later on define how he wants to create the geometry (metaballs, polywire...).

A simple add SOP later we can see the tree structure:

How it works:
After a 'seed' (point) has been spawned, the point is duplicated and transformed along it's normal. At every instance, a point may branch, inheriting the previous point's attributes.

This already yields interesting results. I then added phototropism and gravity to beef it up a bit.

Some in-between shots:

Next up: Roots..