Pookkalam by Niranjan Neelakantan

Code

h1=line(x1=0,x2=0,y1=0,y2=30,stroke='red',stroke_width=6)
h2=line(x1=0,x2=20,y1=15,y2=15,stroke='red',stroke_width=6)
h3=line(x1=20,x2=20,y1=0,y2=30,stroke='red',stroke_width=6)
h=(h1 + h2 + h3)

a1=line(x1=0,x2=10,y1=0,y2=30,stroke='red',stroke_width=6)
a2=line(x1=0,x2=10,y1=30,y2=0,stroke='red',stroke_width=6)| translate(x=10)
a3=line(x1=2,x2=18,y1=10,y2=10,stroke='red',stroke_width=6)
a_first=(a1+a2+a3) |translate(x=25)
a_second=(a1+a2+a3) |translate(x=50)

p1=line(x1=0,x2=0,y1=0,y2=20,stroke='red',stroke_width=6)
p2=circle(r=10,x=10,y=20,stroke='red',stroke_width=6)
p_first=(p1+p2) |translate(x=50)
p_second=(p1+p2) |translate(x=75)

y1=line(x1=0,x2=10,y1=30,y2=15,stroke='red',stroke_width=6)
y2=line(x1=20,x2=10,y1=30,y2=15,stroke='red',stroke_width=6)
y3=line(x1=10,x2=10,y1=0,y2=15,stroke='red',stroke_width=6)
y=y1+y2+y3 | translate(x=100)

o= ellipse(w=20,h=30,x=10,y=15,stroke='red',stroke_width=6)

n1=h1
n2=line(x1=0,x2=20,y1=30,y2=0,stroke='red',stroke_width=6)
n3=h3
n=n1+n2+n3 |translate(x=25)

m1=h1
m2=line(x1=0,x2=10,y1=30,y2=0,stroke='red',stroke_width=6)
m3=line(x1=10,x2=20,y1=0,y2=30,stroke='red',stroke_width=6)
m4=h3
m=(m1+m2+m3+m4) | translate(x=75) 

happy=(h+a_first+p_first+p_second+y) | translate(x=-60)
onam=(o+n+a_second+m) | translate(x=-52.5,y=-35)


sq1=rectangle(w=2,h=212,fill='#FFB85C',stroke="transparent") | repeat(90,rotate(4)) 
sq2=rectangle(h=150,w=150,stroke='#FF6700',stroke_width=3) | repeat(10,rotate(36))
sq3=rectangle(h=300,w=300,stroke='#FF6700',stroke_width=3) | repeat(10,rotate(36))

# c4=circle(r=200,fill='#0E5400')
# c1=circle(r=180,fill='#FD91F1')
# c2=circle(r=150,fill='#9A08FF')
# c3=circle(r=120,fill='#FFF06E')
p_11=point(x=0,y=0)
p_12=point(x=100,y=10)
p_13=point(x=200,y=0)
p_14=point(x=100,y=-10)

p_31=point(x=0,y=0)
p_32=point(x=200,y=25)
p_33=point(x=300,y=0)
p_34=point(x=200,y=-25)

pol1=polygon([p_11,p_12,p_13,p_14],fill="#FFF06E") | repeat(36,rotate(10))
pol2=polygon([p_11,p_12,p_13,p_14],fill="#0E5400") |scale(1.4)| repeat(18,rotate(20))
pol3=polygon([p_31,p_32,p_33,p_34],fill="#00DD79") | repeat(9,rotate(40))
pol4=pol3 | scale(1.2) | rotate(20)
pol5=pol2|scale(1.5)

ell1=ellipse(x=150,w=250,h=250,fill="white") | rotate(10) | repeat (18,rotate(20))
ell2=ellipse(x=150,w=350,h=250,fill="#9efdff") | rotate(10) | repeat (18,rotate(20))
ell3=ellipse(x=150,w=450,h=250,fill="#6cdeff") | repeat (18,rotate(20))
ell4=ellipse(x=150,w=500,h=250,fill="#55d0ff") | rotate(10)| repeat (18,rotate(20))
ell5=ellipse(x=150,w=550,h=250,fill="#52b5ff") | repeat (18,rotate(20))
ell6=ellipse(x=150,w=600,h=250,fill="#58CCED") | rotate(10)| repeat (18,rotate(20))
ell7=ellipse(x=150,w=650,h=250,fill="#3895D3") |  repeat (18,rotate(20))
ell8=ellipse(x=150,w=700,h=250,fill="#1261A0") | rotate(10)| repeat (18,rotate(20))
ell9=ellipse(x=150,w=750,h=250,fill="#072F5F") |  repeat (18,rotate(20))
background=rectangle(w=1000,h=1000,fill="black")


pol=(pol5+pol4+pol3+pol2+pol1)
show(background)
show((ell9+ell8+ell7+ell6+ell5+ell4+ell3+ell2+ell1+pol+sq1+sq2) | scale(0.29))
show((happy +onam)| scale(0.29))