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.
Spring Summer Autumn Winter
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.
![](https://sjoerd.tech/wp-content/uploads/2019/11/Dynamic-models-using-a-spring-mass-damper-system-representing-a-a-tree-as-a-single.png)
The leaves also have stacked 2-dimensional mass spring damper systems implemented so the leaves can also move with the wind.