Implementation [of branching model]
It is convenient to represent the positions of all tips by complex numbers. One can take the original stem to extend from the point -1 to 0; the rule is then specified by the list b of complex numbers corresponding to the positions of the new tip obtained after one step. And after n steps the positions of all tips generated are given simply by
Nest[Flatten[Outer[Times, 1 + #, b]] &, {0}, n]