Pookkalam by S Atul Krishnan

Code

#colors
lightyellow = color(255, 227, 54)
lightpurple = color(38, 133, 110)
accentblue = color(23, 85, 217)
simpleGreen = color(41, 211, 74)
darkPink = color(255, 0, 253)
orange = color(255, 114, 0)

#POOKKALAM SHAPES
green_circular_bg = circle(r=141, fill = simpleGreen, stroke=darkPink, stroke_width=7)
yellow_flower_shape = circle(x=50, y=0, r=50, fill=lightyellow, stroke = 'red', stroke_width=3) | repeat(6, rotate(60))|repeat(5, scale(0.8))
green_flower_shape = ellipse(w = 200, h = 50, fill=lightpurple, stroke =lightpurple) | repeat(6, rotate(60))
orange_dot_shape = circle(x=90, y=0, r=5,fill=orange, stroke = lightyellow) | repeat(6, rotate(60))
green_spiral_shape = circle(x=40, y=0, r=96, stroke = 'green') | repeat(60, rotate(10))
orange_flower_shape = ellipse(w = 190, h = 40, stroke =orange, stroke_width=5) | repeat(6, rotate(60)) |repeat(10, scale(0.80))

# for background pattern
def bg_pattern():
    p1 = point(0,0)
    p2 = point(100,0)
    p3 = point(120,25)
    p22 = point(90,0)
    p33 = point(110,25)
    outer_pattern = polygon([p1,p2,p3],fill=accentblue, stroke = accentblue) | repeat(80, rotate(5))
    inner_pattern = polygon([p1,p22,p33],fill=orange, stroke = orange) | repeat(80, rotate(5))
    
    new_design = combine([green_circular_bg,green_spiral_shape, outer_pattern, inner_pattern,])
    return new_design


def center_pattern():
    p1 = point(0,0)
    p2 = point(10,5)
    p3 = point(4,0)
    p4 = point(10,-5)
    p22 = point(7,3)
    p33 = point(3,0)
    p44 = point(7,-3)
    outer_pattern = polygon([p1,p2,p3, p4], stroke = accentblue) | repeat(10, rotate(36)) | scale(1.6)
    inner_pattern = polygon([p1,p22,p33, p44], stroke = darkPink) | repeat(10, rotate(36))| scale(1.59)
    return combine([outer_pattern, inner_pattern])

background_pattern = bg_pattern()
center_pattern = center_pattern()
pookkalam = combine([background_pattern,yellow_flower_shape,green_flower_shape,orange_dot_shape, orange_flower_shape, center_pattern])
show(pookkalam)