Sophie Chen-Project 01-Face

sophiec-sketch

function setup() {
    createCanvas(600, 600);
    background(243, 166, 138);
}

function draw() {
	//body
	noStroke();
	fill(77, 78, 73);
	arc(300, 630, 350, 350, PI, TWO_PI);

	// hair
	noStroke();
	fill(36, 38, 33);
	quad(100, 100, 160, 100, 210, 550, 70, 450);
	quad(360, 100, 460, 100, 520, 450, 390, 550)

	// head
	noStroke();
	fill(255, 224, 182);
	ellipse(300, 250, 300, 350);

	//neck
	rect(275, 400, 50, 80);
	ellipse(300, 477, 50, 50);

	//ears
	noStroke();
	fill(255, 224, 182);
	ellipse(150, 250, 50, 50);
	ellipse(450, 250, 50, 50);
	

	// face
	// mouth
	fill(255, 100, 80);
	arc(300, 300, 70, 80, TWO_PI, PI);
	//nose
	fill(243, 175, 132);
	ellipse(300, 250, 30, 30);
	stroke(243, 175, 132);
	strokeWeight(15);
	line(292, 210, 292, 253);
	//right eye
	fill(0)
	stroke(255, 255, 255);
	strokeWeight(5);
	ellipse(355, 200, 45, 45);
	//left eye
	fill(0)
	stroke(255, 255, 255);
	strokeWeight(5);
	ellipse(240, 200, 45, 45);
	//right eyebrow
	noStroke();
	fill(36, 38, 33);
	quad(330, 170, 330, 160, 375, 160, 396, 170);
	//details
	ellipse(385, 225, 5, 5);
	fill(248, 187, 182, 70);
	ellipse(390, 270, 90, 80);
	ellipse(200, 270, 90, 80);

	//hat
	fill(245, 245, 245);
	arc(300, 160, 350, 350, PI, TWO_PI);
	stroke(245, 245, 245);
	strokeWeight(100);
	line(50, 150, 400, 95);
	noStroke();
	fill(245, 100, 100);
	rect(300, 50, 25, 25);
	fill(255, 255, 255);
	rect(275, 50, 25, 25);
	fill(30, 90, 200);
	rect(275, 40, 50, 10);
	rect(275, 70, 50, 10);
	
}

Overall I really enjoyed creating this self-portrait. I learned that keeping the code clean and organized is super important and allowed me to have a better grasp of what I’m doing and code more effectively. I also found that rather than trying to make every feature look exactly like mine, incorporating one or two specific details made a huge difference.

Jonathan Liang – Project 1 – Face

sketch

/*Jonathan Liang
Section A
jliang2@andrew.cmu.edu
project_01*/



function setup() {
    createCanvas(600, 600);
    background(22, 13, 16);
    text("p5.js vers 0.7.1 test.", 10, 15);
}

function draw() {
	
//face
	fill(253, 240, 81);
	noStroke();
	ellipse(300, 330, 220, 200);

	fill(205, 82, 48);
	noStroke();
	arc(308, 390, 159, 80, 0, HALF_PI);

	fill(205, 82, 48);
	noStroke();
	quad(300, 330, 410, 330, 390, 400, 300, 365);

	fill(205, 82, 48);
	noStroke();
	triangle(300, 360, 310, 400, 389, 400);

	fill(22, 13, 16);
	noStroke();
	triangle(190, 330, 190, 430, 225, 430);

	fill(22, 13, 16);
	noStroke();
	triangle(410, 330, 410, 430, 375, 430);

	fill(205, 82, 48);
	noStroke();
	quad(300, 360, 290, 380, 310, 400, 387, 398);


//eyes
	fill('white');
	noStroke();
	ellipse(250, 330, 50, 40);

	fill('white');
	noStroke();
	ellipse(350, 330, 50, 40);

//shades
	fill(22, 13, 16);
	noStroke();
	arc(250, 330, 68, 60, 0, PI + QUARTER_PI, CHORD);

	fill(22, 13, 16);
	noStroke();
	arc(350, 330, 68, 60, 0, PI + QUARTER_PI, CHORD);

	noFill();
	stroke(22, 13, 16);
	strokeWeight(15);
	curve(250, 325, 283, 330, 317, 330, 350, 325)

//buckethat
	fill(253, 240, 81);
	noStroke();
	quad(180, 180, 420, 170, 440, 330, 160, 330);
	
	fill(253, 240, 81);
	triangle(170, 315, 170, 330, 130, 330);
	noStroke();

	fill(205, 82, 48);
	triangle(430, 320, 430, 330, 450, 330);
	noStroke();

	fill(205, 82, 48);
	noStroke();
	quad(200, 200, 420, 170, 440, 330, 190, 330);

//design
	noFill();
	stroke(253, 240, 81);
	strokeWeight(10);
	ellipse(300, 241, 110, 110);

	fill(253, 240, 81);
	noStroke();
	textSize(75);
	text('梁', 266, 265);


//text
	fill(205, 82, 48);
	noStroke();
	textSize(10);
	text('little man, big hat', 265, 500);
	

}

rrandell project01-face

rrandell-project01

function setup() {
    createCanvas(500, 500);
    background(255, 165, 0); //make pink? or orange?


}

function draw() {

        fill(90, 50, 19);
    stroke(90, 50, 19);
    rect(160, 200, 180, 200); //hair

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(170, 390, 40, 40); //start of curls

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(170, 370, 30, 30);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(190, 400, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(220, 405, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(240, 415, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(260, 405, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(280, 405, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(300, 400, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(330, 390, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(330, 370, 30, 30);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(330, 200, 30, 50);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(170, 200, 30, 50);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(325, 180, 30, 40);


    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(170, 180, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(320, 165, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(180, 165, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(315, 155, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(185, 155, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(250, 110, 100, 50);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(320, 165, 30, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(300, 130, 40, 40);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(200, 130, 40, 40);

    fill(234, 192, 134);
    stroke(234, 192, 134);
    ellipse(250, 200, 150, 200); //face

    fill(234, 192, 134);
    stroke(234, 192, 134);
    ellipse(325, 200, 30, 40);

    fill(234, 192, 134);
    stroke(234, 192, 134);
    ellipse(175, 200, 30, 40);

    fill(250, 199, 138); //nose
    stroke(250, 199, 138);
    rect(242, 190, 13, 40);

    fill(250, 199, 138); //nose
    stroke(250, 199, 138);
    ellipse(242, 230, 15, 15);

    fill(250, 199, 138); //nose
    stroke(250, 199, 138);
    ellipse(255, 230, 15, 15);

    fill(255, 255, 255); //eyes
    stroke(255, 255, 255);
    ellipse(287, 175, 35, 20);

    fill(90, 50, 19);
    stroke(0, 0, 0);
    ellipse(287, 175, 17, 17);

    fill(255, 255, 255);
    stroke(255, 255, 255);
    ellipse(213, 175, 35, 20);

    fill(90, 50, 19);
    stroke(0, 0, 0);
    ellipse(213, 175, 17, 17);

    fill(0, 0, 0);
    stroke(0, 0, 0);
    ellipse(213, 175, 7, 7);

    fill(0, 0, 0);
    stroke(0, 0, 0);
    ellipse(287, 175, 7, 7);

    fill(255, 255, 255);
    stroke(255, 255, 255);
    ellipse(210, 175, 2, 3);

    fill(255, 255, 255);
    stroke(255, 255, 255);
    ellipse(285, 175, 2, 3);

    fill(255, 180, 203); //mouth
    stroke(255, 0, 0);
    ellipse(250, 260, 60, 20);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(210, 155, 35, 5);

    fill(90, 50, 19);
    stroke(90, 50, 19);
    ellipse(288, 155, 35, 5)

    if(mouseX<250){//flash tongue
    fill(219, 112, 147);
    stroke(219, 112, 147);
    ellipse(250,275, 20, 40);
    stroke(199, 21, 133)
    line(250, 255, 250, 293);
    }
    
}

I really enjoyed experimenting with color for my self portrait; RGB is really unfamiliar to me but I liked how similar is is to mixing paint. Move your mouse around my image for a fun surprise!

Connor McGaffin – Looking Outwards -01

The “wavegrower” Project

Whirpool: a sinking loop created in part of the wavegrower project (source)Frédéric Vayssouze-Faure is an independent creative based in France whose work focuses on the intersection of minimalism and multitude. His “wavegrower” project focuses on the creation of physical spaces through oscillating shapes driven by the use of the sine function.

I am inspired by this body of work because of it’s ability to successfully use incredibly artificial means to create such a natural environment. As a student studying environments design, I am in awe of his ability to generate something so manmade and yet so organic.

Surfer’s Dream: we’re brought right into the heart of the the perfect barrel. (source)

I think the project is interesting in that the animations move the viewer through the space, almost in a trance-like manner. However, I wonder how a project like this would feel if the viewer were able to navigate the space in their free will, whether it be through the use of a keyboard or the use of virtual reality. Building off of this, I would love to see how this could be integrated into a physical space, be it with intricate LED lights or through immersive and interactive projections.

Vayssouze-Faure’s prior work focuses on the visualization of sound, specifically in regards to the vibration emitted by guitars. When questioned about his influences, the artist references the awe-inspiring power of nature and the attempt to make sense of it mathematically.

self portrait

sketch.js

function setup() {
    createCanvas(350, 350);
    background(0);
}

function draw() {

	fill (45,34,30);//hair
	stroke(45,34,30);
	ellipse (200,230,310,400);


	fill (255,205,148); //face
	ellipse(200,200,230,300);

	stroke (255,205,148); //neck
	rect(148,290,98,90);
	
	stroke(255,205,148) //ear
	ellipse(80,200,60,80);

	ellipse(315,200,60,80); //ear

	fill (253,180,115);
	ellipse (320,200,30,60);//inner ear
	ellipse(70,200,30,60)

	noFill();
	stroke (209,119,0);//earrings
	ellipse (320,265,35,60);
	ellipse (80,265,35,60);
	strokeWeight(4);

	/*fill (139,0,0);//lips
	stroke (139,0,0);
	triangle(230,300,150,250,150,300);
	fill (255,20,147);//inside
	stroke (139,0,0);
	triangle(230,300,150,250,150,300);*/

	if (mouseIsPressed) {
		fill (139,0,0);
		stroke (139,0,0);
		ellipse (200,290,80,80);
		fill (255,20,147);
		ellipse (200,290,79,79);
	} else {fill (139,0,0);//lips
		stroke (139,0,0);
		triangle(230,300,150,250,150,300);
		fill (255,20,147);//inside
		stroke (139,0,0);
		triangle(230,300,150,250,150,300);
	}


	stroke(253,180,115); //hairpart
	line (200, 29, 200, 53);

//nose
	fill(253,180,115);
	ellipse (200,230,30,30);
	ellipse (212,230,20,20);
	ellipse (188,230,20,20);

	rect(190,150,20,80);

	stroke(255,205,148);
	line (195,230,195,60);


	//eyebrows
	stroke(253,180,115);
	rect (220,150,70,5);
	rect (110,150,70,5);


	//Eyes
	fill(255,255,255);
	rect (220,170,70,7);
	rect (110,170,70,7);

	fill (0,0,0);
	stroke(0,0,0);
	rect (222,172,3,3);
	rect (112,172,3,3);

	console.log("dsklhflasdh");




}

I had fun doing this assignment and seeing what I can create visually with code. I gave myself some attitude with a side eye look and I added an if mouse is pressed variable to show me talking.

Miranda Luong Project-01-Face

sketch

/*Miranda Luong
Section E
mluong
Project-01-Face
*/

function setup() {
    createCanvas(500, 525);
    background(9,0,255);
}

function draw() {
	//hair
	fill(20);
	noStroke();
	ellipse(250, 250, 380, 430);
	//body
	fill(60);
	noStroke();
	ellipse(250,500,420,500)
	//head
	fill(220);
	noStroke();
	ellipse(250, 250, 300, 320);
	//ears
	noStroke();
	fill(220);
	rect(370,230,50,60,30);
	noStroke();
	rect(80,230,50,60,30);
	//left eye
	fill(51);
	noStroke();
	ellipse(190, 245, 30, 30);
	//right eye
	fill(51);
	noStroke();
	ellipse(310, 245, 30, 30);
	//nose
	fill(51);
	noStroke();
	ellipse(250,280,40,40);
	fill(220);
	noStroke();
	ellipse(250,280,20,20);
	fill(220)
	noStroke();
	rect(230,260,40,22)
	//mouth
	fill(51);
	ellipse(250,350,40,40);
	//mouse
	fill(120);
	noStroke;
	ellipse(150,490,100,100)
	//left hand
	fill(220);
	noStroke();
	rect(100,450,20,20,30);
	rect(120,430,20,30,30);
	rect(140,430,20,30,30);
	rect(160,430,20,30,30);
	ellipse(200,470,20,20);
	//keyboard
	fill(120)
	rect(280,463,20,12)
	rect(310,470,20,5)
	rect(340,463,20,12)
	rect(370,463,20,12)
	rect(400,463,20,12)
	rect(270,480,160,15)
	//right hand
	fill(220);
	noStroke();
	rect(370,430,20,20,30);
	rect(350,420,20,30,30);
	rect(330,420,20,30,30);
	rect(310,440,20,30,30);
	ellipse(290,440,20,20);
	//desk
	fill(220)
	rect(0,495,500,30);
}

I thought it would be funny to create a self-portrait of myself hunched over a computer coding and clicking away on a keyboard and mouse. It was supposed to be very meta-I’m happy with the way it turned out.

Looking Outwards rrandell01

This is a link to new media artist Angela Washko’s video trailer about her interactive art piece called The Game: The Game in which the viewer essentially plays a dating simulation video game.

This piece is a culmination of over three years of research on ‘dating coaches’ or ‘pick-up artists’ and vastly explores the world of female exploitation, sexism, and misogyny through an interactive video game. It is unclear what software Angela Washko used in creating this interactive program, but this piece is not just the program, it also included a physical exhibition in New York City. Angela Washko was inspired by a series of books by author Roosh V in which he instructs men on how to pursue sex with women. This project explores a future in which women can rebel against unwanted male attention and have more agency in a virtual world. I feel that this project is incredibly interesting and complex as it delves deep into controversial topics but explains them well with an accessible platform for all to understand the purpose of the project.

Alexandra Kaplan-Project-01-Face

aekaplan-selfportrait

function setup() {
    createCanvas(600, 600);
    background(186,173,218);
}

function draw() {
 
    //hair
    strokeWeight(0);
    fill(60,40,30);
	//left side
	ellipse(130,400,90,100);
	ellipse(130,340,100,150);
	ellipse(140,280,100,150);
	ellipse(155,240,90,220);
	//back
	ellipse(170,400,100,100);
	ellipse(220,400,100,100);
	ellipse(260,400,100,100);
	ellipse(300,400,100,100);
	ellipse(340,400,100,100);
	ellipse(380,400,100,100);
	ellipse(420,400,100,100);
	ellipse(470,400,100,100);
	//right side
	ellipse(480,400,90,100);
	ellipse(470,340,100,150);
	ellipse(460,280,100,150);
	ellipse(450,220,80,150);

	//body
    fill(100,100,60);
    strokeWeight(0);
    ellipse(300,600,425,240);

    //neck
    fill(245,210,190);
    ellipse(300,513,160,80);
    rect(240,440,125,90);
    fill(235,200,180);
    ellipse(300,440,130,52);

    //head
    fill(255,220,200);
    rect(163,130,275,200);
    ellipse(300,300,280,330);

    //eyebrows
    strokeWeight(7);
    ellipse(240,260,80,40);
    strokeWeight(0);
    ellipse(240,265,90,40);
    strokeWeight(7);
    ellipse(360,260,80,40);
    strokeWeight(0);
    ellipse(360,265,90,40);

    //eyes
	//back
	fill(205,170,150);
	ellipse(240,275,70,40);
	ellipse(360,275,70,40);
	//front
	fill(255)
	ellipse(240,277,60,35);
	ellipse(360,277,60,35);
	//color
	fill(70,50,40);
	ellipse(240,275,30,30);
	ellipse(360,275,30,30);
	//pupil
	fill(0);
	ellipse(240,275,20,20);
	ellipse(360,275,20,20);
	
    //ears
    fill(255,220,200);
    ellipse(155,275,30,60);
    ellipse(445,275,30,60);

    //lips
    fill(200,138,120);
    ellipse(300,400,90,20);
    ellipse(280,395,60,20);
    ellipse(320,395,60,20);
    strokeWeight(2);
    line(255,395,345,395);
    line(245,390,255,395);
    line(355,390,345,395);

    //nose
    fill(255,220,200);
    arc(300,330,40,30,0,PI, PI + QUARTER_PI);

    //bangs
    strokeWeight(0);
    fill(60,40,30);
    ellipse(200,160,140,90);
    ellipse(160,200,70,125);
    ellipse(450,200,60,120);
    rotate(radians(10));
    ellipse(360,90,270,125);

}

I really enjoyed the freedom this project gave me to explore the basics of programming. As this is my first experience with coding, I really enjoyed seeing how I could make something appear just by writing a short line of code.

My process started with a quick napkin sketch of the general shapes I wanted and where they would be. I then mainly worked on guess and check with the exact placement of the shapes. In future projects, I want to be more careful in my planning and tracking of where different things are located to make the process a bit more streamlined.

Romi Jin – Project-01-Face

romi-selfportrait

/* Romi Jin 
Section B 
rsjin@andrew.cmu.edu 
Project-01 */

function setup() {
    createCanvas(500, 1000);
    background(252, 221, 215);
    //background(255, 240, 245);
}

function draw() {

    //right side of hair
    fill(106, 59, 51);
    noStroke();
    beginShape();

    curveVertex(380,219);
    curveVertex(371,200);
    curveVertex(352,172);
    curveVertex(336,153);
    curveVertex(323,141);
    curveVertex(311,136);
    curveVertex(324,128);
    curveVertex(338,119);
    curveVertex(350,102);
    curveVertex(353,105);
    curveVertex(366,118);
    curveVertex(391,157);
    curveVertex(411,195);
    curveVertex(417,213);
    curveVertex(421,229);
    curveVertex(422,247);
    curveVertex(422,261);
    curveVertex(423,283);
    curveVertex(425,309);
    curveVertex(427,331);
    curveVertex(429,349);
    curveVertex(423,368);
    curveVertex(415,387);
    curveVertex(405,399);
    curveVertex(391,413);
    curveVertex(384,418);
    endShape(CLOSE);


     //shirt
    fill(255,255,255);
    stroke(220,220,220);
    strokeWeight(1);
    beginShape();
    vertex(333,493);
    vertex(351,502);
    vertex(367,500);
    vertex(423,504);
    vertex(453,525);
    vertex(500,538);
    vertex(500,793);
    vertex(462,749);
    vertex(468,1000);
    vertex(0,1000);
    vertex(0,561);
    vertex(11,558);
    vertex(333,493);
    endShape(CLOSE);

    //shirt lines
    noFill();
    stroke(220,220,220);
    strokeWeight(1);
    triangle(333, 493, 308, 605, 383, 624);

    noFill();
    stroke(220,220,220);
    strokeWeight(1);
    beginShape();
    vertex(308,605);
    vertex(271,850);
    vertex(286,1000);
    vertex(237,1000);
    vertex(229,852);
    vertex(254,659);
    endShape(CLOSE);

    stroke(220,220,220);
    strokeWeight(1);
    line(199,713,241,758);

    stroke(220,220,220);
    strokeWeight(2);
    line(270,686,267,702);

    noFill();
    stroke(220,220,220);
    strokeWeight(1);
    ellipse(255,886,18,18);

    //neck
    fill(244, 224, 217);
    noStroke();
    beginShape();
    vertex(333,493);
    vertex(308,605);
    vertex(254,659);
    vertex(241,758);
    vertex(199,713);
    vertex(199,490);
    vertex(333,493);
    endShape(CLOSE);

    //neckshadow
    fill(221,205,202);
    noStroke();
    triangle(253,517,211,640,199,490);

    //face shape
    fill(255, 233, 224);
    noStroke();
    ellipse(271, 320, 260, 395);

    //facial features

    //beauty mark
    stroke(139,94,60);
    strokeWeight(4);
    point(200,334);

    //eyebrows
    //left
    fill(68,50,35);
    noStroke();
    beginShape();
    curveVertex(246,233);
    curveVertex(228,230);
    curveVertex(208,229);
    curveVertex(189,231);
    curveVertex(178,238);
    curveVertex(180,247);
    curveVertex(194,246);
    curveVertex(217,246);
    curveVertex(238,247);
    curveVertex(250,245);
    endShape(CLOSE);
    //right
    fill(68,50,35);
    noStroke();
    beginShape();
    curveVertex(317,234);
    curveVertex(338,232);
    curveVertex(356,233);
    curveVertex(376,237);
    curveVertex(387,243);
    curveVertex(391,251);
    curveVertex(393,256);
    curveVertex(386,255);
    curveVertex(371,249);
    curveVertex(355,247);
    curveVertex(335,247);
    curveVertex(320,248);
    curveVertex(312,250);
    curveVertex(308,242);
    endShape(CLOSE);

    //eyes

    //outline
    //left
    fill(255);
    stroke(0);
    strokeWeight(.75)
    beginShape();
    curveVertex(238,295);
    curveVertex(238,295);
    curveVertex(236,291);
    curveVertex(233,287);
    curveVertex(228,283);
    curveVertex(221,280);
    curveVertex(211,279);
    curveVertex(201,279);
    curveVertex(190,282);
    curveVertex(182,286);
    curveVertex(177,289);
    curveVertex(179,292);
    curveVertex(184,299);
    curveVertex(193,303);
    curveVertex(201,305);
    curveVertex(210,306);
    curveVertex(217,304);
    curveVertex(226,301);
    curveVertex(233,299);
    curveVertex(238,295);
    endShape(CLOSE);
    //right
    fill(255);
    stroke(0);
    strokeWeight(.75)
    beginShape();
    curveVertex(312,297);
    curveVertex(312,297);
    curveVertex(319,287);
    curveVertex(330,282);
    curveVertex(343,280);
    curveVertex(354,282);
    curveVertex(363,286);
    curveVertex(370,292);
    curveVertex(373,295);
    curveVertex(367,300);
    curveVertex(359,302);
    curveVertex(351,305);
    curveVertex(344,306);
    curveVertex(333,305);
    curveVertex(327,304);
    curveVertex(320,300);
    endShape(CLOSE);

    //left
    stroke(96,57,19);
    strokeWeight(27);
    point(209,293);

    stroke(0);
    strokeWeight(15);
    point(209,293);

    stroke(255);
    strokeWeight(6);
    point(215,290);

    //right
    stroke(96,57,19);
    strokeWeight(26);
    point(341,293);

    stroke(0);
    strokeWeight(14);
    point(341,293);

    stroke(255);
    strokeWeight(6);
    point(347,290);

    noFill();
    stroke(0);
    strokeWeight(.5);
    beginShape();
    curveVertex(179,281);
    curveVertex(179,281);
    curveVertex(197,274);
    curveVertex(210,273);
    curveVertex(223,276);
    curveVertex(232,282);
    curveVertex(238,288);
    curveVertex(238,288);
    endShape();

    noFill();
    stroke(0);
    strokeWeight(.5);
    beginShape();
    curveVertex(312,289);
    curveVertex(312,289);
    curveVertex(321,281);
    curveVertex(332,277);
    curveVertex(347,276);
    curveVertex(360,279);
    curveVertex(375,290);
    curveVertex(375,290);
    endShape();

    //nose
    noFill();
    stroke(0);
    strokeWeight(1);
    beginShape();
    curveVertex(253,342);
    curveVertex(253,342);
    curveVertex(244,355);
    curveVertex(241,367);
    curveVertex(248,383);
    curveVertex(260,379);
    curveVertex(261,372);
    curveVertex(270,375);
    curveVertex(279,383);
    curveVertex(289,378);
    curveVertex(301,373);
    curveVertex(301,383);
    curveVertex(312,380);
    curveVertex(314,369);
    curveVertex(309,353);
    curveVertex(304,342);
    curveVertex(304,342);
    endShape();

    //lips
    fill(232,163,163);
    noStroke();
    beginShape();
    curveVertex(228,427);
    curveVertex(228,427);
    curveVertex(238,422);
    curveVertex(257,407);
    curveVertex(268,409);
    curveVertex(276,412);
    curveVertex(283,411);
    curveVertex(293,408);
    curveVertex(306,417);
    curveVertex(319,431);
    curveVertex(308,441);
    curveVertex(290,454);
    curveVertex(275,455);
    curveVertex(260,454);
    curveVertex(250,449);
    curveVertex(242,442);
    curveVertex(234,435);
    endShape(CLOSE);

    noFill();
    stroke(183,132,132);
    strokeWeight(1.5);
    beginShape();
    curveVertex(228,427);
    curveVertex(238,427);
    curveVertex(251,425);
    curveVertex(263,426);
    curveVertex(276,428);
    curveVertex(295,427);
    curveVertex(309,431);
    curveVertex(319,431);
    endShape();

    stroke(0);
    strokeWeight(.25);
    line(264,387,261,401);

    stroke(0);
    strokeWeight(.25);
    line(290,389,293,403);

    fill(244,223,220);
    noStroke();
    quad(278,388,269,403,277,408,286,403);

    //hair
    fill(150, 82, 61);
    noStroke();
    beginShape();
    curveVertex(347,79);
    curveVertex(342,74);
    curveVertex(338,68);
    curveVertex(327,61);
    curveVertex(315,57);
    curveVertex(312,57);
    curveVertex(301,54);
    curveVertex(285,54);
    curveVertex(226,71);
    curveVertex(142,137);
    curveVertex(81,249);
    curveVertex(70,315);
    curveVertex(57,368);
    curveVertex(38,427);
    curveVertex(19,499);
    curveVertex(11,563);
    curveVertex(26,671);
    curveVertex(51,729);
    curveVertex(82,825);
    curveVertex(91,848);
    curveVertex(109,887);
    curveVertex(109,823);
    curveVertex(139,850);
    curveVertex(142,890);
    curveVertex(164,861);
    curveVertex(172,814);
    curveVertex(196,846);
    curveVertex(258,868);
    curveVertex(219,828);
    curveVertex(204,793);
    curveVertex(198,751);
    curveVertex(210,648);
    curveVertex(211,544);
    curveVertex(203,507);
    curveVertex(199,490);
    curveVertex(180,380);
    curveVertex(171,320);
    curveVertex(191,230);
    curveVertex(236,163);
    curveVertex(289,138);
    curveVertex(309,138);
    curveVertex(323,125);
    curveVertex(330,132);
    curveVertex(336,127);
    curveVertex(347,119);
    curveVertex(352,110);
    curveVertex(352,108);
    curveVertex(354,91);
    endShape(CLOSE);

}

For this project, I wanted to code a realistic cartoon of my face, using a photo, drawing a simple outline in Illustrator, and extracting coordinates from there to save time of randomly guessing the positions of each component. I also used a light, pastel color palette according to the photo this was based on. It took a lot less time than I had thought it would and was a lot of fun!