sketch
function setup(){
createCanvas(500,300);
background(221,236,240);
}
function draw(){
noStroke();
fill(125,158,166);
ellipse(40,60,180,90);
ellipse(450,200,180,90);
stroke(23,20,49);
strokeWeight(20);
line(0,200,500,100);
line(0,150,500,200);
noStroke();
fill(208,187,164);
rect(230,180,40,40);//rectangle of the neck
fill(131,142,189);
triangle(100,240,230,200,270,240);
triangle(400,240,270,200,230,240);
rect(100,240,300,60);
fill(235,210,173);
ellipse(250,110,120,160);//head ellipse
fill(210,152,138);
beginShape();
vertex(235,168);
vertex(245,162);
vertex(250,165);
vertex(255,162);
vertex(265,168);
vertex(255,175);
vertex(245,175);
endShape();
fill(113,96,79);
beginShape();
vertex(185,80);
vertex(180,120);
vertex(200,100);
vertex(210,110);
vertex(220,95);
vertex(240,110);
vertex(260,100);
vertex(280,125);
vertex(290,100);
vertex(295,115);
vertex(305,100);
vertex(320,120);
vertex(310,80);
endShape();//hair
fill(50);
ellipse(250,70,200,40);
fill(20);
ellipse(250,60,120,20);
rect(190,10,120,50);
ellipse(250,10,120,20);
fill(190);
rect(180,110,140,35);
fill(147,141,140);
beginShape();
vertex(300,110);
vertex(305,110);
vertex(298,145);
vertex(290,145);
endShape();
beginShape();
vertex(310,110);
vertex(312,110);
vertex(310,145);
vertex(305,145);
endShape();
fill(255);
beginShape();
vertex(316,110);
vertex(318,110);
vertex(315,145);
vertex(312,145);
endShape();
beginShape();
vertex(185,110);
vertex(190,110);
vertex(187,145);
vertex(183,145);
endShape();
stroke(0);
strokeWeight(4);
line(230,120,230,135);
line(270,120,270,135);
noStroke();
fill(235,210,173);
triangle(250,140,240,145,260,145);
fill(220,227,146);
ellipse(140,270,30);
ellipse(290,260,20);
fill(190,145,192);
ellipse(220,250,20);
fill(225,168,39);
ellipse(350,280,30);
fill(148,209,205);
ellipse(300,220,15);
}
I found that creating an irregular shape is very challenging, and also I need to calculate a lot of the positions and locations.