Just for fun, I made a 3-dimensional procedural tree generator.
The tree is generated using an implementation of a Space Colonization Algorithm, as proposed in this paper.
The algorithm works by first generating a set of ‘leaves’, after which branches start growing towards those ‘leaves’. This results in very realistic looking trees, which look, in my opinion, far better than L-system or fractal trees.
After generating the trees, I implemented 3D rotational mass-spring-damper systems into the trees. Every branch in the tree is a 3D rotational MSD, which receives forces from both it’s parent and children. This generates a network of MSD’s. By using 4 dimensional Perlin Noise as wind, some natural looking tree movement can be obtained.
The leaves also have stacked 2-dimensional mass spring damper systems implemented so the leaves can also move with the wind.