Pookkalam by Nandana K Ajay

Code

def xcircle(r,color):
    c=circle(r=r,fill=color,stroke="none")
    return c 
show(xcircle(147,"black"))
def rect(side,angle,rcolor):
    r=rectangle(w=side,h=side,fill=rcolor,stroke="none")
    r1=r| repeat(50, rotate(angle))
    return r1
whi=rect(205,10,"brown")
yel=rect(190,10,"red")|rotate(5)
org=rect(176,10,"#fcc612")
re=rect(163.2,10,"yellow")|rotate(5)
bla=rect(151.23,10,"white")
show(whi,yel,org,re,bla)
show(circle(r=97,stroke="none"))
s=ellipse(x=43,y=0,w=86,h=50,fill="#18066e",stroke="none")
s1=s|repeat(16,rotate(22.5))
s=ellipse(x=40,y=0,w=80,h=44.18,fill="#3249bf",stroke="none")
s2=s|repeat(16,rotate(22.5))|rotate(11.25)
f1=s1+s2+xcircle(70,"white")
s3=circle(x=66.5,r=2.5,fill="maroon",stroke="none")
s4=s3|repeat(20,rotate(18))
f2=xcircle(62,"#b2ebe7")+ellipse(y=10,h=105,w=130,fill="white",stroke="none")+s4
s5=ellipse(x=5,y=-25,w=105,h=40,fill="brown",stroke="none")
s6=s5+ellipse(x=14,y=-15,w=95,h=35,fill="white",stroke="none")
c1=circle(x=-17,y=-13,r=2.5,fill="black",stroke="none")
c2=c1|repeat(5,translate(x=15))
c3=ellipse(x=-17,y=-23,w=4,h=14,fill="black",stroke="none")
c4=c3|repeat(5,translate(x=15))
l=line(x1=-20,y1=0,x2=20,y2=0)|rotate(60)|translate(y=-30)
l1=l|translate(13)|repeat(3,translate(x=15))
l2=l|repeat(3,translate(x=-15))
f3=s6+c2+c4+l1+l2+circle(r=62)
p1=circle(r=100,fill="red",stroke="none")
p2=rectangle(w=225,h=110,y=-50,fill="white",stroke="none")
p3=circle(x=-75,r=25,fill="white",stroke="none")
p4=p3|repeat(4,translate(x=50))
p5=rectangle(y=-70,w=3,h=150,fill="black",stroke="none")
p6=circle(x=-100,r=4,fill="blue")|repeat(5,translate(50))
p7=circle(y=108,r=8,fill="#09ede9",stroke="none")
p8=circle(x=80,y=34,r=8,fill="#09ede9")
p9=p8|repeat(8,rotate(19))
p10=circle(r=70,stroke="white",stroke_width=5)
p11=circle(y=122,r=5,fill="blue")
p=p1+p2+p4+p7+p9+p10+p11+p5+p6
q=p|scale(0.15)|translate(x=-38,y=8)
p12=circle(x=25,y=25,r=10,fill="red",stroke="none",a=0.8)
f=f1+f2+f3+q+p12
s7=ellipse(x=43,y=0,w=86,h=50,fill="yellow",stroke="none")
s8=s7|repeat(5,rotate(72))
s9=ellipse(x=43,y=0,w=86,h=50,fill="red",stroke="none")
s10=s9|repeat(5,rotate(72))|rotate(36)
def tri(x1,y1,x2,y2,x3,y3,color):
    t1=point(x1,y1)
    t2=point(x2,y2)
    t3=point(x3,y3)
    k=polygon([t1,t2,t3],fill=color,stroke="none")
    return(k)
k1=tri(70,-20,70,20,95,0,"yellow")|repeat(5,rotate(72))
k2=tri(70,-20,70,20,95,0,"red")|repeat(5,rotate(72))|rotate(36)
o1=circle(r=21,fill="#006925",stroke="none")+circle(r=21,x=50,fill="#006925",stroke="none")
o2=ellipse(x=25,y=5,h=50,w=12,fill="#006925",stroke="none")
o3=o1+o2
o=o3|translate(x=-25,y=67)
obj=o|repeat(10,rotate(36))
show(obj,k1,k2)
show(s8,s10,circle(r=62,fill="white",stroke="none"))
show(f|scale(0.8))