Finally got the tree generator algorithm down! The tool is still not fully complete. We still need to add in features like mesh merging, applying final material, auto-make prefab, auto-name, etc. But those are all pretty minor stuff that should be very simple to add.
The important part is the algorithm, and that is now done.
Here are some images showing the tool and trees generated:
A major part of what made the algorithm relatively easy to work with was we stuck with world coordinates for the directions (David’s idea!), instead of using local rotations and matrices to pass down information from parent to child (totally what I would have done). So vector3.up was up for every trunk and branch, which is quite important, because the rules guiding horizontal and vertical growth are quite different (different probabilities, lengths, restrictions, etc).
I made a video explaining more of the process, why we chose to write this tool, and show some of the different variables that can be tweaked