Author Archive

Random Face Generator

I would suggest running the code to see how it works.

Screen Shot 2015-02-17 at 7.11.43 AM

Screen Shot 2015-02-17 at 7.12.12 AM

Screen Shot 2015-02-17 at 7.12.17 AM

Screen Shot 2015-02-17 at 7.12.41 AM

Screen Shot 2015-02-17 at 7.12.46 AM

Screen Shot 2015-02-17 at 7.12.55 AM

Screen Shot 2015-02-17 at 7.13.10 AM

Screen Shot 2015-02-17 at 7.13.14 AM

Screen Shot 2015-02-17 at 7.13.23 AM

Screen Shot 2015-02-17 at 7.13.39 AM

void setup() {
  size(400, 400);
 frameRate(2);
}
//face shape floats
float chinw;
float chinh;
float ljaww;
float ljawh;
float ujaww;
float ujawh;
float cheekw;
float cheekh;
float cheekbonew;
float cheekboneh;
float broww;
float browh;
float foreheadw;
float foreheadh;
float foreheadw2;
float foreheadh2;
float foreheadw3;
float foreheadh3;

//mouth shape floats
float mouthllh1;
float mouthllh2;
float mouthch;
float mouthcw;
float mouthmuw;
float mouthmuh;
float mouthtpw;
float mouthtph;
float philtrumbh;
float philtrumth;

//nose shape floats
float noselnw;
float noselnh;
float noselnw2;
float noselnh2;
float nosemnw;
float nosemnh;
float nosetnw;
float nosetnh;
float nosetnw2;
float nosetnh2;
float nosebtw;
float nosebth;

//brow shape floats
float browmw;
float browmh;
float browtw;
float browth;
float browocw;
float browoch;

//eye shape floats
float eyeicw;
float eyeich;
float eyetiw;
float eyetih;
float eyetocw;
float eyetoch;
float eyeocw;
float eyeoch;
float eyebw;
float eyebh;

void draw(){
  background(255);
  
//face  

  
//head shape
  fill(255);
  beginShape();
  curveVertex(200, chinh);
  curveVertex(200, chinh);
  curveVertex(chinw, chinh);
  curveVertex(ljaww, ljawh);
  curveVertex(ujaww, ujawh);
  curveVertex(cheekw, cheekh);
  curveVertex(cheekbonew, cheekboneh);
  curveVertex(broww, browh);
  curveVertex(foreheadw, foreheadh);
  curveVertex(foreheadw3, foreheadh3);
  curveVertex(200, 65);
  curveVertex(200, 65);
  endShape();

//mouth

  fill(255);
  beginShape();
  curveVertex(200, mouthllh1);
  curveVertex(200, mouthllh1);
  curveVertex(185, mouthllh2);
  curveVertex(mouthcw, mouthch);
  curveVertex(mouthmuw, mouthmuh);
  curveVertex(mouthtpw, mouthtph);
  curveVertex(200, philtrumbh);
  curveVertex(200, philtrumbh);
  endShape();
  
  noFill();
  beginShape();
  vertex(200, 235);
  vertex(mouthcw, mouthch);
  endShape();
  
  noFill();
  beginShape();
  vertex(mouthtpw, mouthtph);
  vertex(200, philtrumth);
  endShape();
  
//nose

  noFill();
  beginShape();
  curveVertex(200, philtrumth);
  curveVertex(200, philtrumth);
  curveVertex(noselnw, noselnh);
  curveVertex(noselnw2, noselnh2);
  curveVertex(nosemnw, nosemnh);
  curveVertex(nosetnw, nosetnh);
  curveVertex(nosetnw2, nosetnh2);
  curveVertex(nosebtw, nosebth);
  curveVertex(nosebtw, nosebth);
  endShape();
  
//brow

  noFill();
  beginShape();
  curveVertex(nosebtw, nosebth);
  curveVertex(nosebtw, nosebth);
  curveVertex(browmw, browmh);
  curveVertex(browtw, browth);
  curveVertex(browocw, browoch);
  curveVertex(browocw, browoch);
  endShape();
  
//eyes

  noFill();
  beginShape();
  curveVertex(eyeicw, eyeich);
  curveVertex(eyeicw, eyeich);
  curveVertex(eyetiw, eyetih);
  curveVertex(eyetocw, eyetoch);
  curveVertex(eyeocw, eyeoch);
  curveVertex(eyebw, eyebh);
  curveVertex(eyebw, eyebh);
  endShape(CLOSE);

//head shape random modifiers  
  if(mousePressed){
    chinw = random(170, 190);
    chinh = random(275, 290);
    
  if(mousePressed)
    ljaww = random(150, 165);
    ljawh = random(260, 275);
    
  if(mousePressed)
    ujaww = random(130, 145);
    ujawh = random(230, 250);
    
  if(mousePressed)
    cheekw = random(125, 135);
    cheekh = random(180, 200);
    
  if(mousePressed)
    cheekbonew = random(125, 135);
    cheekboneh = random(145, 155);
    
  if(mousePressed)
    broww = random(125, 130);
    browh = random(120, 130);
    
  if(mousePressed);
    foreheadw = random(140, 145);
    foreheadh = random(85, 90);
    
  if(mousePressed);
     foreheadw3 = random(175, 180);
     foreheadh3 = random(67, 65); 
 
//mouth shape random modifiers
  if(mousePressed);
    mouthllh1 = random(240, 245);
    
  if(mousePressed);
    mouthllh2 = random(240, 242);
    
  if(mousePressed);
    mouthch = random(230, 240); 
    mouthcw = random(160, 175); 
    
  if(mousePressed);
    mouthmuw = random(175, 183);
    mouthmuh = random(225, 232);
    
  if(mousePressed);
    mouthtpw = random(190, 195);
    mouthtph = random(222, 228);
    
  if(mousePressed);
    philtrumbh = random(225, 230);
    
  if(mousePressed);
    philtrumth = random(210, 215);
    
//nose shape random modifiers
  if(mousePressed);
    noselnw = random(186, 192);
    noselnh = random(206, 210);
  
  if(mousePressed);
    noselnw2 = random(180, 185);
    noselnh2 = random(208, 212);
    
  if(mousePressed);
    nosemnw = random(173, 180);
    nosemnh = random(198, 202);
  
  if(mousePressed);
    nosetnw = random(181, 186);
    nosetnh = random(195, 200);  
    
  if(mousePressed);
    nosetnw2 = random(187, 190);
    nosetnh2 = random(190, 200);  
    
  if(mousePressed);
    nosebtw = random(185, 195);
    nosebth = random(155, 170);  
    
//brow shape random modifier
  if(mousePressed);
    browmw = random(180, 190);
    browmh = random(140, 155);
    
  if(mousePressed);
    browtw = random(150, 160);
    browth = random(140, 150);  
    
  if(mousePressed);
    browocw = random(140, 145);
    browoch = random(145, 160);  
    
//eye shape random modifiers
  if(mousePressed);
    eyeicw = random(180, 185);
    eyeich = random(157, 165);
    
  if(mousePressed);
    eyetiw = random(170, 178);
    eyetih = random(150, 153);
    
  if(mousePressed);
    eyetocw = random(155, 165);
    eyetoch = random(148, 153);  
  
  if(mousePressed);
    eyeocw = random(148, 155);
    eyeoch = random(153, 163);
    
  if(mousePressed);
    eyebw = random(160, 170);
    eyebh = random(163, 167);
}
  
  
  println(mouseX);
  println(mouseY);
  
    PImage x1= get (0, 0, width/2, height);
  scale (-1, 1);
  image (x1, -width, 0);
  
  
  
}

Frank Zappa Portrait

Screen Shot 2015-02-10 at 8.38.06 AM

void setup(){
  size(500,270);
  background(500,300,0);
  }
  
 void draw(){
   
 noStroke();
 
//hair-top   
    fill(0);
    beginShape();
    curveVertex(250, 0);
    curveVertex(250, 0);
    curveVertex(200, 0);
    curveVertex(185, 10);
    curveVertex(165, 20);
    curveVertex(140, 60);
    curveVertex(150, 90);
    curveVertex(325, 130);
    curveVertex(345, 55);
    curveVertex(325, 15);
    curveVertex(300, 0);
    curveVertex(300, 0);
    endShape(CLOSE);
    
    fill(5);
    beginShape();
    curveVertex(150, 25);
    curveVertex(150, 25);
    curveVertex(200, 0);
    curveVertex(320, 0);
    curveVertex(345, 20);
    curveVertex(345, 60);
    curveVertex(310, 35);
    curveVertex(310, 35);
    endShape(CLOSE);
    
    fill(7);
    beginShape();
    curveVertex(205, 0);
    curveVertex(205, 0);
    curveVertex(175, 5);
    curveVertex(153, 17);
    curveVertex(150, 20);
    curveVertex(150, 45);
    curveVertex(150, 45);
    endShape(CLOSE);
    
    fill(9);
    beginShape();
    curveVertex(340, 20);
    curveVertex(340, 20);
    curveVertex(355, 25);
    curveVertex(370, 35);
    curveVertex(380, 45);
    curveVertex(400, 40);
    curveVertex(380, 50);
    curveVertex(370, 40);
    curveVertex(355, 45);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(345, 40);
    curveVertex(345, 40);
    curveVertex(370, 50);
    curveVertex(365, 55);
    curveVertex(360, 55);
    curveVertex(365, 55);
    curveVertex(365, 55);
    endShape(CLOSE);
    
    fill(30);
    beginShape();
    curveVertex(410, 75);
    curveVertex(410, 75);
    curveVertex(435, 85);
    curveVertex(440, 105);
    curveVertex(435, 135);
    curveVertex(428, 133);
    curveVertex(433, 105);
    curveVertex(428, 85);
    curveVertex(401, 80);
    curveVertex(401, 80);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(415, 85);
    curveVertex(415, 85);
    curveVertex(430, 100);
    curveVertex(440, 130);
    curveVertex(445, 145);
    curveVertex(445, 160);
    curveVertex(435, 130);
    curveVertex(425, 100);
    curveVertex(410, 90);
    curveVertex(410, 90);
    endShape(CLOSE);
    
    fill(10);
    beginShape();
    curveVertex(410, 110);
    curveVertex(410, 110);
    curveVertex(435, 145);
    curveVertex(445, 170);
    curveVertex(440, 180);
    curveVertex(450, 190);
    curveVertex(470, 200);
    curveVertex(460, 200);
    curveVertex(440, 190);
    curveVertex(430, 180);
    curveVertex(435, 170);
    curveVertex(425, 145);
    curveVertex(400, 110);
    curveVertex(400, 110);
    endShape(CLOSE);
    
    fill(10);
    beginShape();
    curveVertex(420, 190);
    curveVertex(420, 190);
    curveVertex(445, 210);
    curveVertex(450, 230);
    curveVertex(445, 230);
    curveVertex(440, 210);
    curveVertex(415, 190);
    curveVertex(415, 190);
    endShape(CLOSE);
    
    fill(15);
    beginShape();
    curveVertex(410, 140); 
    curveVertex(410, 140);
    curveVertex(425, 160);
    curveVertex(430, 190);
    curveVertex(450, 200);
    curveVertex(465, 235);
    curveVertex(460, 250);
    curveVertex(460, 235);
    curveVertex(444, 200);
    curveVertex(423, 190);
    curveVertex(416, 160);
    curveVertex(400, 140);
    curveVertex(400, 140);
    endShape(CLOSE);
    
    fill(13);
    beginShape();
    curveVertex(395, 245);
    curveVertex(395, 245);
    curveVertex(430, 255);
    curveVertex(440, 240);
    curveVertex(435, 225);
    curveVertex(430, 240);
    curveVertex(420, 230);
    curveVertex(420, 230);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(315, 150);
    curveVertex(315, 150);
    curveVertex(320, 155);
    curveVertex(330, 150);
    curveVertex(325, 175);
    curveVertex(335, 200);
    curveVertex(325, 220);
    curveVertex(345, 215);
    curveVertex(355, 165);
    curveVertex(315, 120);
    curveVertex(315, 120);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(380, 230);
    curveVertex(380, 230);
    curveVertex(350, 240);
    curveVertex(370, 255);
    curveVertex(360, 260);
    curveVertex(380, 260);
    curveVertex(370, 245);
    curveVertex(400, 240);
    curveVertex(400, 240);
    endShape(CLOSE);
    
    fill(15);
    beginShape();
    curveVertex(390, 60);
    curveVertex(390, 60);
    curveVertex(420, 75);
    curveVertex(435, 90);
    curveVertex(410, 85);
    curveVertex(410, 85);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(415, 90);
    curveVertex(415, 90);
    curveVertex(425, 130);
    curveVertex(410, 135);
    curveVertex(400, 100);
    curveVertex(400, 100);
    endShape(CLOSE);
    
    
//neck

    fill(250, 200, 130);
    beginShape();
    curveVertex(195, 180);
    curveVertex(195, 180);
    curveVertex(198, 240);
    curveVertex(193, 250);
    curveVertex(175, 270);
    curveVertex(325, 270);
    curveVertex(307, 250);
    curveVertex(302, 240);
    curveVertex(305, 180);
    curveVertex(305, 180);
    endShape(CLOSE);
    
    fill(130, 50, 30);
    beginShape();
    curveVertex(305, 195);
    curveVertex(305, 195);
    curveVertex(303, 245);
    curveVertex(335, 270);
    curveVertex(270, 270);
    curveVertex(255, 240);
    curveVertex(255, 240);
    endShape(CLOSE);
    
    fill(250, 180, 100);
    beginShape();
    curveVertex(195, 195);
    curveVertex(195, 195);
    curveVertex(200, 245);
    curveVertex(170, 270);
    curveVertex(210, 250);
    curveVertex(225, 255);
    curveVertex(205, 220);
    curveVertex(205, 200);
    curveVertex(205, 200);
    endShape(CLOSE);
   
//face
    fill(250, 200, 130);
    beginShape();
    curveVertex(250, 235);
    curveVertex(250, 235);
    curveVertex(230, 230);
    curveVertex(195, 190);
    curveVertex(185, 135);
    curveVertex(175, 105);
    curveVertex(180, 60);
    curveVertex(190, 50);
    curveVertex(250, 10);
    curveVertex(310, 50);
    curveVertex(320, 60);
    curveVertex(320, 105);
    curveVertex(315, 135);
    curveVertex(305, 190);
    curveVertex(270, 230);
    curveVertex(250, 235);
    curveVertex(250, 235);
    endShape(CLOSE);
    
//left eye

    fill(140, 60, 50, 300);
    beginShape();
    curveVertex(240, 85);
    curveVertex(240, 85);
    curveVertex(220, 75);
    curveVertex(190, 80);
    curveVertex(190, 95);
    curveVertex(215, 105);
    curveVertex(240, 100);
    curveVertex(240, 100);
    endShape(CLOSE);
    
    fill(0);
    beginShape();
    curveVertex(235, 90);
    curveVertex(235, 90);
    curveVertex(225, 80);
    curveVertex(205, 80);
    curveVertex(195, 92);
    curveVertex(198, 95);
    curveVertex(205, 90);
    curveVertex(225, 88);
    curveVertex(233, 90);
    curveVertex(233, 90);
    endShape(CLOSE);
    
    fill(250, 180, 100);
    beginShape();
    curveVertex(215, 80);
    curveVertex(215, 80);
    curveVertex(198, 92);
    curveVertex(205, 82);
    curveVertex(205, 82);
    endShape(CLOSE);
    
    fill(0);
    beginShape();
    curveVertex(235, 95);
    curveVertex(235, 95);
    curveVertex(220, 105);
    curveVertex(233, 93);
    curveVertex(233, 93);
    endShape(CLOSE);
    
    fill(280, 230, 230, 205);
    beginShape();
    curveVertex(230, 90);
    curveVertex(230, 90);
    curveVertex(220, 85);
    curveVertex(210, 85);
    curveVertex(200, 95);
    curveVertex(215, 100);
    curveVertex(225, 98);
    curveVertex(225, 98);
    endShape(CLOSE);
    
    fill(0);
    ellipse(215, 91, 15, 15);
    
    fill(110, 50, 50, 300);
    ellipse(215, 91, 10, 10);
    
    fill(0);
    ellipse(215, 91, 5, 5);
    
    fill(255);
    ellipse(211, 88, 3, 3);
    
    fill(250, 180, 100);
    beginShape();
    curveVertex(215, 108);
    curveVertex(215, 108);
    curveVertex(212, 106);
    curveVertex(195, 106);
    curveVertex(200, 96);
    curveVertex(215, 100);
    curveVertex(215, 100);
    endShape(CLOSE);
    
//shading

    fill(250, 180, 100);
    beginShape();
    curveVertex(260, 85);
    curveVertex(260, 85);
    curveVertex(250, 80);
    curveVertex(250, 150);
    curveVertex(252, 145);
    curveVertex(255, 140);
    curveVertex(253, 110);
    curveVertex(253, 110);
    endShape(CLOSE);
    
    fill(70, 50, 50, 300);
    beginShape();
    curveVertex(255, 70);
    curveVertex(255, 70);
    curveVertex(255, 80);
    curveVertex(265, 90);
    curveVertex(280, 105);
    curveVertex(320, 115);
    curveVertex(323, 80);
    curveVertex(310, 68);
    curveVertex(285, 70);
    curveVertex(265, 80);
    curveVertex(265, 80);
    endShape(CLOSE);
    
    fill(110, 50, 50, 300);
    beginShape();
    curveVertex(285, 75);
    curveVertex(285, 75);
    curveVertex(300, 80);
    curveVertex(310, 88);
    curveVertex(295, 95);
    curveVertex(280, 92);
    curveVertex(285, 100);
    curveVertex(305, 100);
    curveVertex(315, 95);
    curveVertex(315, 80);
    curveVertex(310, 78);
    curveVertex(310, 78);
    endShape(CLOSE);
    
    fill(110, 50, 50, 300);
    beginShape();
    curveVertex(260, 90);
    curveVertex(260, 90);
    curveVertex(275, 80);
    curveVertex(260, 80);
    curveVertex(260, 80);
    endShape(CLOSE);
    
    fill(40, 30, 30, 300);
    beginShape();
    curveVertex(265, 90);
    curveVertex(265, 90);
    curveVertex(280, 75);
    curveVertex(305, 80);
    curveVertex(310, 95);
    curveVertex(290, 100);
    curveVertex(275, 110);
    curveVertex(265, 90);
    curveVertex(265, 90);
    endShape(CLOSE);

    fill(110, 50, 50, 300);
    beginShape();
    curveVertex(280, 110);
    curveVertex(280, 110);
    curveVertex(280, 98);
    curveVertex(290, 98);
    curveVertex(320, 120);
    curveVertex(315, 135);
    curveVertex(310, 175);
    curveVertex(300, 200);
    curveVertex(275, 230);
    curveVertex(240, 230);
    curveVertex(265, 200);
    curveVertex(295, 140);
    curveVertex(295, 140);
    endShape(CLOSE);
    
    fill(90, 50, 50, 300);
    beginShape();
    curveVertex(265, 130);
    curveVertex(265, 130);
    curveVertex(295, 150);
    curveVertex(290, 170);
    curveVertex(250, 150);
    curveVertex(255, 135);
    curveVertex(255, 135);
    endShape(CLOSE);

    fill(150, 50, 50, 250);
    beginShape();
    curveVertex(265, 130);
    curveVertex(265, 130);
    curveVertex(270, 140);
    curveVertex(265, 143);
    curveVertex(260, 145);
    curveVertex(255, 145);
    curveVertex(253, 120);
    curveVertex(255, 95);
    curveVertex(261, 85);
    curveVertex(282, 110);
    curveVertex(310, 105);
    curveVertex(320, 110);
    curveVertex(315, 130);
    curveVertex(295, 150);
    curveVertex(295, 150);
    endShape(CLOSE);
    
    fill(300, 250, 300, 170);
    beginShape();
    curveVertex(255, 135);
    curveVertex(255, 135);
    curveVertex(255, 135);
    curveVertex(250, 135);
    curveVertex(245, 140);
    curveVertex(242, 139);
    curveVertex(245, 130);
    curveVertex(242, 82);
    curveVertex(245, 80);
    curveVertex(255, 85);
    curveVertex(250, 110);
    curveVertex(250, 110);
    endShape(CLOSE);
    
    fill(300, 250, 300, 170);
    beginShape();
    curveVertex(210, 110);
    curveVertex(210, 110);
    curveVertex(195, 120);
    curveVertex(185, 105);
    curveVertex(180, 90);
    curveVertex(190, 95);
    curveVertex(195, 105);
    curveVertex(205, 110);
    curveVertex(205, 110);
    endShape(CLOSE);
    
    fill(250, 250, 300, 100);
    beginShape();
    curveVertex(235, 145);
    curveVertex(235, 145);
    curveVertex(210, 170);
    curveVertex(205, 185);
    curveVertex(205, 205);
    curveVertex(190, 165);
    curveVertex(205, 135);
    curveVertex(205, 135);
    endShape(CLOSE);
    
    fill(250, 250, 300, 100);
    beginShape();
    curveVertex(240, 90);
    curveVertex(240, 90);
    curveVertex(235, 115);
    curveVertex(235, 125);
    curveVertex(235, 135);
    curveVertex(240, 140);
    curveVertex(245, 125);
    curveVertex(245, 125);
    endShape(CLOSE);
    
    fill(250, 180, 100);
    beginShape();
    curveVertex(235, 130);
    curveVertex(235, 120);
    curveVertex(215, 160);
    curveVertex(212, 130);
    curveVertex(190, 140);
    curveVertex(186, 153);
    curveVertex(183, 130);
    curveVertex(178, 120);
    curveVertex(178, 85);
    curveVertex(181, 65);
    curveVertex(185, 110);
    curveVertex(205, 115);
    curveVertex(220, 105);
    curveVertex(230, 105);
    curveVertex(225, 120);
    curveVertex(225, 120);
    endShape(CLOSE);
    
    fill(180, 100, 80, 250);
    beginShape();
    curveVertex(250, 140);
    curveVertex(250, 140);
    curveVertex(252, 145);
    curveVertex(255, 148);
    curveVertex(245, 148);
    curveVertex(235, 145);
    curveVertex(234, 140);
    curveVertex(245, 145);
    curveVertex(245, 145);
    endShape(CLOSE);
    
    fill(170, 70, 30);
    beginShape();
    curveVertex(306, 190);
    curveVertex(306, 190);
    curveVertex(295, 209);
    curveVertex(280, 229);
    curveVertex(265, 234);
    curveVertex(240, 236);
    curveVertex(225, 227);
    curveVertex(205, 207);
    curveVertex(225, 226);
    curveVertex(240, 235);
    curveVertex(265, 233);
    curveVertex(280, 228);
    curveVertex(295, 208);
    curveVertex(306, 189);
    curveVertex(306, 189);
    endShape();
    
    fill(100, 50, 20);
    beginShape();
    curveVertex(275, 70);
    curveVertex(275, 70);
    curveVertex(277, 50);
    curveVertex(300, 65);
    curveVertex(285, 70);
    curveVertex(285, 70);
    endShape(CLOSE);
    
    fill(250, 180, 100);
    beginShape();
    curveVertex(250, 10);
    curveVertex(250, 10);
    curveVertex(275, 50);
    curveVertex(270, 80);
    curveVertex(255, 70);
    curveVertex(250, 75);
    curveVertex(220, 75);
    curveVertex(195, 75);
    curveVertex(190, 45);
    curveVertex(230, 15);
    curveVertex(230, 15);
    endShape(CLOSE);
    
    fill(110, 60, 50);
    beginShape();
    curveVertex(220, 75);
    curveVertex(220, 75);
    curveVertex(240, 50);
    curveVertex(239, 45);
    curveVertex(220, 55);
    curveVertex(215, 30);
    curveVertex(185, 50);
    curveVertex(200, 60);
    curveVertex(200, 60);
    endShape(CLOSE);
    
    fill(90, 60, 50);
    beginShape();
    curveVertex(240, 150);
    curveVertex(240, 150);
    curveVertex(235, 145);
    curveVertex(238, 148);
    curveVertex(238, 148);
    endShape(CLOSE);
        
//right eye

    fill(100, 60, 60, 250);
    beginShape();
    curveVertex(273, 90);
    curveVertex(273, 90);
    curveVertex(283, 83);
    curveVertex(281, 88);
    curveVertex(284, 95);
    curveVertex(284, 95);
    endShape(CLOSE);
    
    fill(110, 75, 75, 250);
    beginShape();
    curveVertex(295, 83);
    curveVertex(295, 83);
    curveVertex(302, 92);
    curveVertex(293, 96);
    curveVertex(296, 90);
    curveVertex(295, 95);
    endShape(CLOSE);
    
    fill(0);
    ellipse(288, 89, 9, 9);
    
    fill(20);
    beginShape();
    curveVertex(272, 90);
    curveVertex(272, 90);
    curveVertex(280, 80);
    curveVertex(300, 82);
    curveVertex(308, 95);
    curveVertex(298, 83);
    curveVertex(283, 82);
    curveVertex(283, 85);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(270, 86);
    curveVertex(270, 86);
    curveVertex(280, 76);
    curveVertex(300, 78);
    curveVertex(310, 91);
    curveVertex(298, 79);
    curveVertex(283, 78);
    curveVertex(283, 81);
    endShape(CLOSE);

    
//eyebrows

    fill(0);
    beginShape();
    curveVertex(257, 73);
    curveVertex(257, 73);
    curveVertex(295, 63);
    curveVertex(315, 73);
    curveVertex(290, 72);
    curveVertex(265, 80);
    curveVertex(265, 80);
    endShape(CLOSE);
    
    fill(0);
    beginShape();
    curveVertex(240, 75);
    curveVertex(240, 75);
    curveVertex(239, 81);
    curveVertex(215, 78);
    curveVertex(185, 83);
    curveVertex(186, 75);
    curveVertex(205, 70);
    curveVertex(230, 74);
    curveVertex(230, 74);
    endShape(CLOSE);
    
    fill(250, 250, 300, 100);
    beginShape();
    curveVertex(245, 215);
    curveVertex(245, 215);
    curveVertex(235, 225);
    curveVertex(215, 215);
    curveVertex(225, 205);
    curveVertex(235, 205);
    curveVertex(235, 205);
    endShape(CLOSE);
    
    fill(250, 250, 300, 100);
    beginShape();
    curveVertex(220, 180);
    curveVertex(220, 180);
    curveVertex(240, 190);
    curveVertex(225, 190);
    curveVertex(225, 190);
    endShape(CLOSE);
    
//mouth

    fill(200, 100, 100);
    beginShape();
    curveVertex(225, 180);
    curveVertex(225, 180);
    curveVertex(240, 185);
    curveVertex(260, 185);
    curveVertex(275, 178);
    curveVertex(250, 160);
    curveVertex(250, 160);
    endShape(CLOSE);
    
    fill(0);
    beginShape();
    curveVertex(220, 173);
    curveVertex(220, 173);
    curveVertex(250, 177);
    curveVertex(280, 173);
    curveVertex(280, 173);
    endShape(CLOSE);
    
    fill(75, 25, 25);
    beginShape();
    curveVertex(255, 180);
    curveVertex(255, 180);
    curveVertex(260, 182);
    curveVertex(275, 180);
    curveVertex(270, 175);
    curveVertex(260, 175);
    curveVertex(260, 175);
    endShape(CLOSE);
    
    fill(75, 25, 25);
    beginShape();
    curveVertex(235, 172);
    curveVertex(235, 172);
    curveVertex(250, 174);
    curveVertex(265, 172);
    curveVertex(250, 162);
    curveVertex(250, 162);
    endShape(CLOSE);
    
    fill(160, 60, 30);
    beginShape();
    curveVertex(265, 200);
    curveVertex(265, 200);
    curveVertex(280, 180);
    curveVertex(260, 186);
    curveVertex(260, 186);
    endShape();
      
//goatee
    fill(0);
    rect(230, 183, 40, 40, 14, 14, 20, 20);  
  
//mustache
    fill(0);
    beginShape();
    curveVertex(245, 150);
    curveVertex(230, 150);
    curveVertex(210, 165);
    curveVertex(205, 185);
    curveVertex(215, 190);
    curveVertex(225, 180);
    curveVertex(250, 170);
    curveVertex(275, 180);
    curveVertex(285, 190);
    curveVertex(295, 185);
    curveVertex(290, 165);
    curveVertex(270, 150);
    curveVertex(255, 150);
    curveVertex(250, 160);
    endShape(CLOSE);
    
//bangs

    fill(0);
    beginShape();
    curveVertex(250, 5);
    curveVertex(250, 5);
    curveVertex(270, 50);
    curveVertex(320, 75);
    curveVertex(330, 105);
    curveVertex(330, 40);
    curveVertex(330, 40);
    endShape(CLOSE);

    noFill();
    beginShape();
    curveVertex(250, 10);
    curveVertex(250, 10);
    curveVertex(240, 30);
    curveVertex(220, 35);
    curveVertex(210, 25);
    curveVertex(210, 25);
    endShape();
    
    noFill();
    beginShape();
    curveVertex(248, 10);
    curveVertex(248, 10);
    curveVertex(238, 29);
    curveVertex(218, 34);
    curveVertex(208, 24);
    curveVertex(208, 24);
    endShape();

    noFill();
    beginShape();
    curveVertex(250, 10);
    curveVertex(240, 30);
    curveVertex(220, 35);
    endShape();
    
    fill(0);
    beginShape();
    vertex(180, 30);
    bezierVertex(230, 0, 200, 110, 230, 50);
    bezierVertex(220, 110, 210, 35, 170, 30);
    endShape();
    
    fill(20);
    beginShape();
    curveVertex(200, 40);
    curveVertex(200, 40);
    curveVertex(210, 70);
    curveVertex(200, 85);
    curveVertex(170, 90);
    curveVertex(170, 86);
    curveVertex(198, 83);
    curveVertex(208, 68);
    curveVertex(208, 68);
    endShape(CLOSE);
    
    fill(30);
    beginShape();
    curveVertex(190, 40);
    curveVertex(190, 40);
    curveVertex(200, 75);
    curveVertex(175, 80);
    curveVertex(175, 78);
    curveVertex(198, 75);
    curveVertex(188, 40);
    curveVertex(188, 40);
    endShape(CLOSE);
    
    fill(35);
    beginShape();
    curveVertex(190, 45);
    curveVertex(190, 45);
    curveVertex(195, 80);
    curveVertex(170, 95);
    curveVertex(170, 93);
    curveVertex(193, 80);
    curveVertex(188, 45);
    curveVertex(188, 45);
    endShape(CLOSE);
    
    fill(40);
    beginShape();
    curveVertex(185, 50);
    curveVertex(185, 50);
    curveVertex(185, 65);
    curveVertex(184, 64);
    curveVertex(183, 48);
    curveVertex(183, 48);
    endShape(CLOSE);
    
    fill(35);
    beginShape();
    curveVertex(240, 10);
    curveVertex(240, 10);
    curveVertex(230, 35);
    curveVertex(210, 30);
    curveVertex(205, 30);
    curveVertex(230, 40);
    curveVertex(245, 20);
    curveVertex(245, 10);
    curveVertex(245, 10);
    endShape(CLOSE);
    
    fill(30);
    beginShape();
    curveVertex(245, 8);
    curveVertex(245, 8);
    curveVertex(250, 55);
    curveVertex(290, 50);
    curveVertex(290, 45);
    curveVertex(255, 50);
    curveVertex(250, 8);
    curveVertex(250, 8);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(195, 40);
    curveVertex(195, 40);
    curveVertex(205, 70);
    curveVertex(200, 74);
    curveVertex(190, 40);
    curveVertex(190, 40);
    endShape(CLOSE);
    
    fill(27);
    beginShape();
    curveVertex(230, 5);
    curveVertex(230, 5);
    curveVertex(260, 25);
    curveVertex(255, 5);
    curveVertex(255, 5);
    endShape();
    
    fill(20);
    beginShape();
    curveVertex(245, 10);
    curveVertex(245, 10);
    curveVertex(210, 50);
    curveVertex(208, 46);
    curveVertex(225, 30);
    curveVertex(240, 10);
    curveVertex(240, 10);
    endShape(CLOSE);
    
    fill(10);
    beginShape();
    curveVertex(250, 10);
    curveVertex(250, 10);
    curveVertex(240, 20);
    curveVertex(230, 30);
    curveVertex(226, 30);
    curveVertex(236, 20);
    curveVertex(247, 10);
    endShape(CLOSE);
    
    fill(10);
    beginShape();
    curveVertex(250, 10);
    curveVertex(250, 10);
    curveVertex(245, 20);
    curveVertex(235, 30);
    curveVertex(231, 30);
    curveVertex(241, 20);
    curveVertex(252, 10);
    endShape(CLOSE);
    
    fill(9);
    beginShape();
    curveVertex(250, 20);
    curveVertex(250, 20);
    curveVertex(235, 55);
    curveVertex(230, 80);
    curveVertex(232, 80);
    curveVertex(237, 80);
    curveVertex(248, 20);
    endShape(CLOSE);
    
    fill(25);
    beginShape();
    curveVertex(240, 15);
    curveVertex(240, 15);
    curveVertex(220, 30);
    curveVertex(200, 35);
    curveVertex(215, 15);
    curveVertex(215, 15);
    endShape(CLOSE);
    
    fill(15);
    beginShape();
    curveVertex(255, 45);
    curveVertex(255, 45);
    curveVertex(280, 55);
    curveVertex(275, 45);
    curveVertex(275, 45);
    endShape(CLOSE);
    
//pigtails

    fill(20);
    beginShape();
    curveVertex(150, 75);
    curveVertex(150, 75);
    curveVertex(120, 50);
    curveVertex(100, 53);
    curveVertex(70, 85);
    curveVertex(45, 185);
    curveVertex(60, 215);
    curveVertex(100, 175);
    curveVertex(120, 235);
    curveVertex(130, 255);
    curveVertex(165, 240);
    curveVertex(155, 210);
    curveVertex(165, 185);
    curveVertex(175, 200);
    curveVertex(190, 180);
    curveVertex(185, 150);
    curveVertex(182, 130);
    curveVertex(176, 115);
    curveVertex(175, 100);
    curveVertex(175, 100);
    endShape(CLOSE);
    
    fill(30);
    beginShape();
    curveVertex(185, 15);
    curveVertex(185, 15);
    curveVertex(130, 30);
    curveVertex(135, 75);
    curveVertex(140, 70);
    curveVertex(135, 33);
    curveVertex(185, 20);
    curveVertex(185, 20);
    endShape(CLOSE);
    
    fill(15);
    beginShape();
    curveVertex(110, 55);
    curveVertex(110, 55);
    curveVertex(80, 60);
    curveVertex(60, 80);
    curveVertex(50, 110);
    curveVertex(53, 108);
    curveVertex(63, 80);
    curveVertex(83, 60);
    curveVertex(113, 55);
    curveVertex(113, 55);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(335, 60);
    curveVertex(335, 60);
    curveVertex(370, 50);
    curveVertex(415, 75);
    curveVertex(410, 125);
    curveVertex(410, 160);
    curveVertex(420, 200);
    curveVertex(410, 245);
    curveVertex(355, 220);
    curveVertex(325, 130);
    curveVertex(330, 95);
    curveVertex(330,95);
    endShape(CLOSE);
    
    fill(10);
    beginShape();
    curveVertex(105, 180);
    curveVertex(105, 180);
    curveVertex(90, 210);
    curveVertex(100, 220);
    curveVertex(85, 240);
    curveVertex(110, 215);
    curveVertex(97, 209);
    curveVertex(130, 170);
    curveVertex(130, 170);
    endShape(CLOSE);
    
    fill(20);
    beginShape();
    curveVertex(50, 210);
    curveVertex(50, 210);
    curveVertex(60, 230);
    curveVertex(55, 245);
    curveVertex(40, 235);
    curveVertex(55, 252);
    curveVertex(72, 240);
    curveVertex(70, 210);
    curveVertex(70, 210);
    endShape(CLOSE);

println(mouseX);
println(mouseY);
    
    
  }