Step 1: Create Branches
To create these amazing trees we can use recursion.
First we need to define the branches of our tree.
Scripting
f = Segment((0, 0), (0, 2))
A = Point(f, 0)
B = Point(f, 1)
C = Dilate(Rotate(A, π + random( ) * π / 4, B), 0.5 + 0.5 * random(), B)
D = Dilate(Rotate(A, π - random( ) * π / 4, B), 0.5 + 0.5 * random(), B)
E = Dilate(Rotate(A, π + π/8 + random( ) * π / 4, B), 0.5 + 0.5 * random(), B)
ListOutPut = {Segment(B, C), Segment(B, D), If(random() > 0.7, Segment(B, E), Segment(B, B))}