Pookkalam by Arjun Krishna

Code

edge = circle(r=150,fill='#660039',stroke='none')
v1 = rectangle(h=170,w=170,fill='yellow',stroke='none') | rotate(15) | repeat(3,rotate(30))
v4 = rectangle(h=210,w=210,fill='red',stroke='none') | repeat(3,rotate(30))
show(edge+v4+v1)
def t_angle(px,py,pz,color) :
    return polygon([px,py,pz],fill=color,stroke='none')


t1 = rectangle(h=100,w=100,fill='#ff008e',stroke='none') | repeat(3,rotate(30))
t2 = rectangle(h=120,w=120,fill='#660039',stroke='none') | repeat(3,rotate(30))
t3 = rectangle(h=140,w=140,fill='white',stroke='none') | repeat(3,rotate(30))
tp1 = point(x=0,y=120)
tp2 = point(x=10,y=0)
tp3 = point(x=-10,y=0)
t4 = t_angle(tp1,tp2,tp3,'#800000') | repeat(12,rotate(30))
show(t3+t2+t1+t4)


i_b = circle(r=20,fill='white',stroke='none')
o_p = ellipse(h=45,w=20,x=0,y=15,fill='#ffb733',stroke='none') | rotate(30) | repeat(6,rotate(60))
p1 = point(x=0,y=50)
p2 = point(x=20,y=0)
p3 = point(x=-20,y=0)
i_c = circle(r=50,fill='#800000',stroke='none')
show(i_c)
show(t_angle(p1,p2,p3,'yellow') | repeat(6,rotate(60)))
show(o_p)
show(i_b)


c1 = circle(r=16,stroke='#800000',stroke_width=1)
c2 = circle(r=13,stroke='#800000',stroke_width=1)
c3 = circle(r=10,stroke='#800000',stroke_width=1)
c4 = circle(r=7,stroke='#800000',stroke_width=1)
c5 = circle(r=4,stroke='#800000',stroke_width=1)
show(c1,c2,c3,c4,c5)