Step 1: Create Branches
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjykaX-y-YZh5qXY2yjW2ym6otUpTki_tzamXcCtTf5PncS9cAelxfabNVzyF90yxlIqT2IfLmDV_haDJeTVXLPXuunZjFGy8Fwffbdk4RVv_V3kx6QoJy2K0J-R2jtjHem3h5xiEvOy77kRORF_u1WUy-c9jaCCsN_Uz5ptth6XYiv2Hw/s1600/trees-ggb.gif)
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))}