I would like to know how to “grow” a tree. I know how to create a static tree, one which is fully drawn and printed at run-time.
It would be nice if I could control the speed of growth and the number of branches.
Something along the lines of “Funky Forest” by Theo Watson is what I am trying to achieve.
I would be most grateful for any help.
you should have a look at Lindenmayer systems:
Ok great thanks.
So to simulate the growth I’d have a counter and a recursive call? I’ve tried but failed =(
i think it’s way more complicated. if you’d like to use l-systems you’d need rules, string replacement, some turtle graphics…
You can use good old fractal noise for this (perlin or simplex or whatever).
Here is an example by Jens Heinen (from Lichtfaktor):
And i’d done something similar in 2D a while ago (I wasn’t trying to simulate trees, but more vineline branching. With number tweaking and a bit of logic you can get trees, or any kind of natural phenomena for that matter! I think Jens is doing something similar).
(the 2nd video on that page is more relevant).
an earlier version of that with source code (processing) can be found at
The key is going to be tweaking how often you branch, and how wiggly you want the branches to be.
That’s exactly the effect I was looking for. And more!
It can also be done in an l-system but the recursive string is very tricky to get working correctly. I might had the code for it posted somewhere for those interested.