A few months ago I was looking for a new sample scene to test watercolor renderings. I was thinking of something complex, filled with vegetation – like trees overgrown with ivy. Fortunately I was able to implement a procedural system so that the ivy would grow by itself. The result is a small tool allowing a virtual ivy to grow in your 3d world.
The ivy grows from one single root following different forces: a primary growth direction (the weighted average of previous growth directions), a random influence, an adhesion force towards other objects, an up-vector imitating the phototropy of plants, and finally gravity. This simple scheme reveals that the goal was not to provide a biological simulation of growing ivy but rather a simple approach to producing complex and convincing vegetation that adapts to an existing scene. The ivy generator imports and exports obj+mtl files.