Pookkalam by Ajay Krishna

Code

c1 = Circle(radius=150, stroke="transparent", fill='#004225')

e1 = ellipse(h=294, w=110, fill='#db9d4c',
             stroke="transparent") | rotate(angle=22.5) | repeat(12, rotate(30))

c2 = Circle(radius=135, fill='#db5f32', stroke="transparent")

e2 = ellipse(h=268, w=90, fill='#930d29',
             stroke="transparent") | repeat(55, rotate(40))

sq1 = Rectangle(height=170, width=170, stroke="transparent", fill="#fbee38")
sq2 = sq1 | Rotate(angle=45)

sq3 = Rectangle(height=170, width=170, fill="white",
                stroke='#db5f32', stroke_width=6) | Rotate(angle=22.5) | Repeat(2, Rotate(angle=45))


p1 = Point(x=-39.375, y=84.375)
p2 = Point(x=39.375, y=84.375)
p3 = Point(x=84.375, y=39.375)
p4 = Point(x=84.375, y=-39.375)
p5 = Point(x=39.375, y=-84.375)
p6 = Point(x=-39.375, y=-84.375)
p7 = Point(x=-84.375, y=-39.375)
p8 = Point(x=-84.375, y=39.375)

poly1 = polygon([p1, p2, p3, p4, p5, p6, p7, p8],
                fill="#fbee38", stroke="#db5f32", stroke_width="5") | Rotate(angle=22.5)

ie1 = ellipse(x=0, y=0, w=83, h=165, fill="orange",
              stroke="#004225", stroke_width="2") | rotate(angle=22.5) | repeat(9, rotate(45))

ic1 = Circle(radius=70, stroke="transparent", fill='#db5f32')
ic2 = Circle(radius=55, stroke="transparent", fill='#3a3042')


isq1 = Rectangle(height=65, width=65, stroke="#ffffff", stroke_width="1",
                 fill="#db5f32") | Rotate(angle=22.5)
isq2 = isq1 | Rotate(angle=45)

iic1 = Circle(radius=34, stroke="transparent", fill='#fbee38')

iisq1 = Rectangle(height=35, width=35, stroke="transparent",
                  fill="#130a37")
iisq2 = iisq1 | Rotate(angle=45)

iiic1 = Circle(radius=18, stroke="transparent", fill='#fbee38')

center = Rectangle(width=16, height=16) | Repeat(18, Rotate(angle=10))

show(c1, e1, c2, e2, sq1, sq2, sq3, poly1, ie1, ic1, ic2,
       isq1, isq2, iic1, iisq1, iisq2, iiic1, center)