Procedural low poly trees

or how to use overengineered fractal systems to create cute trees

— Aug 14 2022 —

Some time ago I experimented with procedural mesh creation in Blender. Soon I stumbled upon some interesting fractals which resembled some kind of 2D-tree. Obviously the next logical step was to jump on the low-poly hype and see if it was possible to create a useful plugin. The first prototype looked very promising.

The extrusion algorithm is pretty simple. We start with a single vertex and extrude it twice at an angle to the "looking" vector. For the very first vector, the looking vector is straight up. For every consecutive vertex the looking vector is the direction in wich the last edge is pointing. Additionally the new edges are reduced by some factor every recursion step.

Going 3D!

Now we want to go 3D! Also we need some randomness. So we apply a rotation around the looking vector to the two branches. Additionally we decide randomly if we branch out or if only one branch is going to continue. Randomness can also be applied to all kind of parameters, namely length of each branch, vertex radii (more on that later), rotation and so on.

Finishing the tree

The final step is to use the blender skin modifier in order to give the stem some shape. That's where the vertex radii come in. They define the "width" of the stem at any given vertex. At the end of each branch we can add some spheres which resemble the leaves. The final add-on has in option to provide multiple materials for the leaves.

Are you interested in diving deep into the source code? Then head over to my Github page: https://github.com/LuFlo/low-poly-tree-generator