Pookkalam by Safa ck

Code

def get_maveli():
    left_eyebrow=polygon([
        point(x=80,y=-53),
        point(x=85,y=-50),
        point(x=88,y=-46),
        point(x=83,y=-48),
        point(x=81,y=-51),
        point(x=80,y=-53)
    ],fill="black")

    right_eyebrow=polygon([
        point(x=98,y=-44),
        point(x=102,y=-45),
        point(x=105,y=-47),
        point(x=101,y=-47),
        point(x=98,y=-44)
    ],fill="black")

    left_eye=polygon([
        point(x=94,y=-58),
        point(x=93,y=-58),
        point(x=92,y=-56),
        point(x=89,y=-55),
        point(x=87,y=-58),
        point(x=90,y=-57),
        point(x=91,y=-57)
    ],fill="black")

    right_eye=polygon([
        point(x=101,y=-56),
        point(x=104,y=-52),
        point(x=107,y=-56),
        point(x=104,y=-54),
        point(x=102,y=-54)
    ],fill="black")

    left_moustache=polygon([
        point(x=82,y=-62),
        point(x=81,y=-65),
        point(x=82,y=-67),
        point(x=87,y=-66),
        point(x=88,y=-66),
        point(x=90,y=-63),
        point(x=99,y=-64),
        point(x=88,y=-59),
        point(x=85,y=-62),
        point(x=82,y=-62)
    ],fill="black")

    right_moustache=polygon([
        point(x=100,y=-64),
        point(x=107,y=-57),
        point(x=111,y=-60),
        point(x=114,y=-59),
        point(x=113,y=-63),
        point(x=109,y=-62),
        point(x=108,y=-62),
        point(x=108,y=-61),
        point(x=105,y=-61),
        point(x=100,y=-64)
    ],fill="black")

    mouth=polygon([
        point(x=87,y=-67),
        point(x=90,y=-70),
        point(x=100,y=-70),
        point(x=100,y=-71),
        point(x=102,y=-71),
        point(x=102,y=-72),
        point(x=103,y=-72),
        point(x=106,y=-69),
        point(x=106,y=-61),
        point(x=104,y=-64),
        point(x=102,y=-66),
        point(x=96,y=-67),
        point(x=91,y=-66),
        point(x=89,y=-64),
        point(x=88,y=-66),
        point(x=87,y=-67),
    ],fill="#300204",stroke="#b86648")

    tongue=polygon([
        point(x=90,y=-71),
        point(x=99,y=-71),
        point(x=102,y=-73),
        point(x=102,y=-73),
        point(x=93,y=-73),
        point(x=90,y=-71)
    ],fill="#cf7151",stroke="#b86648")

    left_hairline=polygon([
        point(x=72,y=-53),
        point(x=79,y=-76),
        point(x=74,y=-84),
        point(x=65,y=-77),
        point(x=67,y=-76),
        point(x=68,y=-76),
        point(x=68,y=-73),
        point(x=66,y=-70),
        point(x=66,y=-64),
        point(x=72,y=-53)
    ],fill="#15201a")

    face=polygon([
        point(x=74,y=-63),
        point(x=73,y=-51),
        point(x=83,y=-44),
        point(x=94,y=-44),
        point(x=102,y=-43),
        point(x=105,y=-44),
        point(x=107,y=-49),
        point(x=107,y=-52),
        point(x=107,y=-56),
        point(x=108,y=-56),
        point(x=111,y=-67),
        point(x=104,y=-76),
        point(x=96,y=-78),
        point(x=95,y=-79),
        point(x=86,y=-79),
        point(x=81,y=-76),
        point(x=77,y=-73),
        point(x=76,y=-73),
        point(x=75,y=-74),
        point(x=71,y=-74),
        point(x=67,y=-70),
        point(x=66,y=-66),
        point(x=67,y=-64),
        point(x=69,y=-63),
        point(x=73,y=-64),
        point(x=74,y=-63)
    ],fill="#d89571",stroke="#d57858")

    shirt_left=polygon([
        point(x=80,y=-77),
        point(x=83,y=-78),
        point(x=84,y=-79),
        point(x=83,y=-101),
        point(x=82,y=-105),
        point(x=79,y=-111),
        point(x=76,y=-115),
        point(x=74,y=-116),
        point(x=69,y=-112),
        point(x=69,y=-110),
        point(x=75,y=-101),
        point(x=79,y=-88),
        point(x=80,y=-88),
        point(x=80,y=-77)
    ],fill="#640128",stroke="#94363a")

    shirt_right=polygon([
        point(x=104,y=-76),
        point(x=106,y=-75),
        point(x=118,y=-105),
        point(x=118,y=-105),
        point(x=117,y=-109),
        point(x=114,y=-110),
        point(x=110,y=-110),
        point(x=113,y=-104),
        point(x=112,y=-95),
        point(x=109,y=-89),
        point(x=108,y=-84),
        point(x=105,y=-76),
        point(x=104,y=-76)
    ],fill="#640128",stroke="#94363a")

    stomach=polygon([
        point(x=85,y=-79),
        point(x=94,y=-79),
        point(x=99,y=-78),
        point(x=103,y=-76),
        point(x=108,y=-84),
        point(x=108,y=-88),
        point(x=109,y=-91),
        point(x=113,y=-99),
        point(x=112,y=-105),
        point(x=112,y=-105),
        point(x=110,y=-108),
        point(x=107,y=-112),
        point(x=107,y=-112),
        point(x=104,y=-114),
        point(x=104,y=-114),
        point(x=101,y=-114),
        point(x=101,y=-115),
        point(x=90,y=-115),
        point(x=86,y=-114),
        point(x=80,y=-110),
        point(x=83,y=-78),
        point(x=85,y=-79)
    ],fill="#d89571",stroke="#d57858")

    right_hand=polygon([
        point(x=107,y=-75),
        point(x=116,y=-66),
        point(x=117,y=-63),
        point(x=116,y=-63),
        point(x=116,y=-60),
        point(x=114,y=-58),
        point(x=114,y=-57),
        point(x=118,y=-59),
        point(x=118,y=-59),
        point(x=123,y=-50),
        point(x=124,y=-50),
        point(x=123,y=-56),
        point(x=126,y=-51),
        point(x=128,y=-52),
        point(x=128,y=-52),
        point(x=126,y=-54),
        point(x=124,y=-57),
        point(x=129,y=-55),
        point(x=126,y=-59),
        point(x=130,y=-58),
        point(x=124,y=-64),
        point(x=121,y=-65),
        point(x=119,y=-66),
        point(x=116,y=-73),
        point(x=113,y=-79),
        point(x=113,y=-79),
        point(x=110,y=-83),
        point(x=107,y=-75)
    ],fill="#d89571",stroke="#d57858")

    left_hand=polygon([
        point(x=79,y=-77),
        point(x=75,y=-84),
        point(x=73,y=-91),
        point(x=73,y=-97),
        point(x=73,y=-99),
        point(x=75,y=-101),
        point(x=80,y=-101),
        point(x=84,y=-97),
        point(x=88,y=-95),
        point(x=91,y=-90),
        point(x=90,y=-86),
        point(x=90,y=-83),
        point(x=87,y=-84),
        point(x=87,y=-84),
        point(x=85,y=-86),
        point(x=84,y=-88),
        point(x=84,y=-88),
        point(x=84,y=-92),
        point(x=82,y=-93),
        point(x=78,y=-94),
        point(x=79,y=-77)
    ],fill="#d89571",stroke="#d57858")

    left_leg=polygon([
        point(x=74,y=-117),
        point(x=74,y=-125),
        point(x=77,y=-126),
        point(x=90,y=-116),
        point(x=81,y=-111),
        point(x=80,y=-111),
        point(x=75,y=-116),
        point(x=74,y=-117)
    ],fill="white",stroke="#c4c3be")

    left_leg_bottom=polygon([
        point(x=74,y=-126),
        point(x=74,y=-129),
        point(x=74,y=-130),
        point(x=75,y=-130),
        point(x=75,y=-128),
        point(x=76,y=-128),
        point(x=76,y=-127),
        point(x=75,y=-127),
        point(x=74,y=-126)
    ],fill="#d89571",stroke="#d57858")

    left_shoe=polygon([
        point(x=72,y=-130),
        point(x=70,y=-132),
        point(x=70,y=-134),
        point(x=71,y=-135),
        point(x=75,y=-135),
        point(x=76,y=-134),
        point(x=76,y=-132),
        point(x=72,y=-130)
    ],fill="#640128",stroke="#94363a")

    right_leg=polygon([
        point(x=108,y=-112),
        point(x=102,y=-126),
        point(x=99,y=-128),
        point(x=100,y=-129),
        point(x=95,y=-125),
        point(x=94,y=-128),
        point(x=94,y=-130),
        point(x=91,y=-130),
        point(x=90,y=-129),
        point(x=89,y=-122),
        point(x=89,y=-122),
        point(x=86,y=-122),
        point(x=86,y=-121),
        point(x=90,y=-116),
        point(x=101,y=-116),
        point(x=104,y=-115),
        point(x=106,y=-114),
        point(x=108,y=-112)
    ],fill="white",stroke="#c4c3be")

    right_leg_bottom=polygon([
        point(x=95,y=-126),
        point(x=94,y=-128),
        point(x=94,y=-131),
        point(x=97,y=-131),
        point(x=97,y=-129),
        point(x=99,y=-128),
        point(x=95,y=-126)
    ],fill="#d89571",stroke="#d57858")

    right_shoe=polygon([
        point(x=94,y=-132),
        point(x=94,y=-136),
        point(x=102,y=-135),
        point(x=103,y=-135),
        point(x=104,y=-134),
        point(x=104,y=-131),
        point(x=103,y=-130),
        point(x=101,y=-130),
        point(x=101,y=-131),
        point(x=102,y=-133),
        point(x=97,y=-133),
        point(x=97,y=-132),
        point(x=94,y=-132)
    ],fill="#640128",stroke="#94363a")

    bottom_silk=polygon([
        point(x=86,y=-121),
        point(x=86,y=-122),
        point(x=89,y=-122),
        point(x=89,y=-124),
        point(x=90,y=-125),
        point(x=90,y=-129),
        point(x=91,y=-130),
        point(x=94,y=-130)
    ],fill="#fac40f",stroke="#eebd3e")

    upper_arm_ring=polygon([
        point(x=74,y=-85),
        point(x=73,y=-90),
        point(x=78,y=-91),
        point(x=79,y=-85),
        point(x=74,y=-85)
    ],fill="yellow",stroke="#fcdd02")

    headband=polygon([
        point(x=71,y=-53),
        point(x=70,y=-46),
        point(x=83,y=-40),
        point(x=102,y=-39),
        point(x=105,y=-43),
        point(x=98,y=-42),
        point(x=93,y=-44),
        point(x=83,y=-44),
        point(x=73,y=-50),
        point(x=71,y=-53),
    ],fill="yellow",stroke="#fcdd02")

    crown=polygon([
        point(x=70,y=-46),
        point(x=72,y=-14),
        point(x=101,y=-38),
        point(x=101,y=-38),
        point(x=87,y=-39),
        point(x=78,y=-42),
        point(x=70,y=-46)
    ],fill="yellow",stroke="#fcdd02")

    crown_ring=circle(r=20,x=80,y=-40,fill="#ca7502",stroke="#f8af0e")
    crown_outer_ring=circle(r=30,x=80,y=-40,fill="#f8af0e",stroke="yellow")
    crown_outer_petals=circle(r=5,x=20,y=20,fill="yellow",stroke="#f8af0e")
    crown_outer_petals=crown_outer_petals|repeat(18,rotate(20))
    crown_outer_petals=crown_outer_petals|translate(x=80,y=-40)

    stick=line(x1=40,y1=-52,x2=94,y2=-96,stroke="#9d511b",stroke_width=3)
    stick_part=line(x1=40,y1=-52,x2=83,y2=-87,stroke="#9d511b",stroke_width=3)

    umbrella_first_ring=circle(r=10,x=40,y=-52,fill="#c5793f",stroke="#9d501b")
    umbrella_second_ring=circle(r=20,x=40,y=-52,fill="#c5793f",stroke="#9d501b")
    umbrella_final_ring=circle(r=40,x=40,y=-52,fill="#c5793f",stroke="#9d501b")
    umbrella_final_ring=circle(r=40,x=40,y=-52,fill="#c5793f",stroke="#9d501b",stroke_width=3)
    umbrella_rays=line(x1=0,y1=0,x2=29,y2=29,stroke="#9d501b",stroke_width=1)
    umbrella_rays=umbrella_rays|repeat(12,rotate(30))
    umbrella_rays=umbrella_rays|translate(x=40,y=-52)

    return combine([
        umbrella_final_ring,
        umbrella_second_ring,
        umbrella_first_ring,
        umbrella_rays,
        crown_outer_petals,
        crown_outer_ring,
        crown_ring,
        left_hairline,
        crown,
        headband,
        stomach,
        shirt_left,
        stick,
        left_hand,
        stick_part,
        upper_arm_ring,
        right_hand,
        left_leg,
        left_leg_bottom,
        left_shoe,
        right_leg_bottom,
        right_leg,
        right_shoe,
        bottom_silk,
        shirt_right,
        face,
        left_eyebrow,
        left_eye,
        right_eyebrow,
        right_eye,
        left_moustache,
        right_moustache,
        mouth,
        tongue
    ])

maveli=get_maveli()|translate(x=-70,y=80)

outer_ring=circle(r=140,fill="white",stroke="white",stroke_width=10)
outer_design_ring=rectangle(w=210,h=210,fill=" #FCF4A3",stroke="none")|rotate(15)|repeat(20,rotate(50))|scale(0.98)
outer_design_ring_two=rectangle(w=190,h=190,fill=" #EA4C46",stroke="none")|repeat(20,rotate(50))
outer_design_ring_three=rectangle(w=170,h=170,fill="orange",stroke="none")|rotate(15)|repeat(20,rotate(50))
outer_design_ring_four=rectangle(w=150,h=150,fill="#c10b36",stroke="none")|repeat(20,rotate(50))

outer_design=combine([
    outer_design_ring,
    outer_design_ring_two,
    outer_design_ring_three,
    outer_design_ring_four
])

c1=color(r=250, g=224, b=56,a=0.5)
inner_design_ring=circle(r=30, fill=c1, stroke="none")
inner_design_ring_two=circle(r=50, fill=c1, stroke="none")
inner_design_ring_three=circle(r=70, fill=c1, stroke="none")

inner_design=combine([
    inner_design_ring,
    inner_design_ring_two,
    inner_design_ring_three
])

middle_design=ellipse(h=90,w=50,y=50,fill="#f14141",stroke="yellow",stroke_width=0)
middle_design=middle_design|repeat(12,rotate(30))

border_design=ellipse(h=85,w=50,y=50,stroke="#f1e47e",stroke_width=8)
border_design=border_design|repeat(12,rotate(30))

show(
    outer_ring,
    outer_design,
    border_design,
    middle_design,
    inner_design,
    maveli
)