t = { 'x': 20, 'y': 30, 'a': 60 } def setup(): size(450, 400) background(0, 0, 200) stroke(-1) sc(7, 400, -60) def sc(o, l, a, s = t, X = 'x', Y = 'y', A = 'a', HALF = .5): if o: o -= 1 l *= HALF sc(o, l, -a)[A] += a sc(o, l, a)[A] += a sc(o, l, -a) else: x, y = s[X], s[Y] s[X] += cos(radians(s[A])) * l s[Y] += sin(radians(s[A])) * l line(x, y, s[X], s[Y]) return s