When we are on the subject of branches, I figured I could mention this similar little thing I wrote.
I wanted to try to grow branches in a similar way to Hyphae, but have new branches only appear on the "tip" of other branches. In addition I don't worry about collisions or anything like that in this simulation. The results are not quite trees, but they can be rather convincing if you don't look very carefully.
The perhaps most interesting thing to note here is that no tree ever grew from the trunk up at fixed width, like these so-called trees do. Trees grow both in height and width over time, and it is a very dynamic process with loads of factors. Hence this algorithm has very little in common with actual trees, but the few naive rules of this algorithm still make a decent job of mimicking real life trees.