Kyle Leve-Project-01-Face

sketch

//Kyle Leve
//Section A
//kleve@andrew.cmu.edu
//Project-01


function setup() {
    createCanvas(600, 600);
    background('skyblue');
}

function draw() {
	//face
	noStroke();
	fill('tan');
	ellipse(300,300,300,350);

	//eyes
	fill('white');
	ellipse(230,250,70,50);

	fill('white');
	ellipse(370,250,70,50);

	fill(77,47,23);
	ellipse(240,255,30,30);

	fill(77,47,23);
	ellipse(380,255,30,30);

	fill('black');
	ellipse(240,255,15,15);

	fill('black');
	ellipse(380,255,15,15);

	fill('white');
	ellipse(245,250,10,10);

	fill('white');
	ellipse(385,250,10,10);

	//hair
	fill(77,47,23);
	ellipse(300,150,225,125);

	fill('tan');
	ellipse(295,180,200,100);

	//Glasses
	fill('black');
	rect(280,250,35,5);

	fill('black');
	rect(280,210,8,80);

	fill('black');
	rect(180,210,100,8);

	fill('black');
	rect(180,285,108,8);

	fill('black');
	rect(180,210,8,75);

	fill('black');
	rect(155,247,30,8);

	fill('black');
	rect(315,210,8,80);

	fill('black');
	rect(315,210,100,8);

	fill('black');
	rect(315,285,108,8);

	fill('black');
	rect(415,210,8,75);

	fill('black');
	rect(415,247,28,8);

	//Eyebrows
	fill(77,47,23);
	ellipse(240,190,100,20);

	fill('tan');
	ellipse(240,200,100,20);

	fill(77,47,23);
	ellipse(365,190,100,20);

	fill('tan');
	ellipse(365,200,100,20);

	//Mouth
	fill('black');
	ellipse(300,400,150,60);

	fill('tan');
	ellipse(300,390,150,60);

	//Nose
	fill('black');
	rect(310,310,6,50);

	fill('black');
	rect(276,360,40,6);

}

This was my first successful attempt at coding and I really enjoyed it! I liked the process of getting to make something unique through trial-and-error, and was surprised at how easy it was to write and edit the code in Sublime.

Kyle Leve-Looking Outwards-01

An interactive project that I had discovered that inspires me is the works by Front Pictures. I find their work very interesting because it combines technology, music, and the human body to tell a story and create a performance. Every effect that is in all their performances seems to need a specific script timed perfectly to create the desired effect that corresponds with the music and characters. In addition, all the visual effects need to be programmed in a way that reflects the objects that are shown. It appears that there are only around 5-10 people in the group that focus on the effects, music, choreography, and overall story which makes what they do even more impressive. What I really admire about this project is that although there have been similar things to this in past, nothing is the same as what Front Pictures displays. This project points to an age where technology can be implemented in new ways to create live performances that tell unique stories in new and innovative ways.

Front Pictures performance.

Austin Treu-Project-01-Face

atreu-face

//Austin Treu
//Section C
//atreu@andrew.cmu.edu
//Project-01

function setup() {
    createCanvas(600, 600);
    background(0,255,255);

    //head
    fill(255, 208, 169);
    noStroke();
    ellipse(width/2, height/2, width/2+width/10, height/2+height/4);

    //eyes
        //whites l r
        fill(255);
        ellipse(width/2-width/8, height/2-height/10,width/10, height/15);
        ellipse(width/2+width/8, height/2-height/10,width/10, height/15);
        //iris l r
        fill(160, 177, 110);
        ellipse(width/2-width/8, height/2-height/10, width/15, height/15);
        ellipse(width/2+width/8, height/2-height/10,width/15, height/15);
        //pupils lr
        fill(0);
        ellipse(width/2-width/8, height/2-height/10, width/20, height/20);
        ellipse(width/2+width/8, height/2-height/10,width/20, height/20);

    //nose
    stroke(205, 158, 119);
    line(width/2,height/2-height/15, width/2+width/10, height/2+height/10);
    line(width/2,height/2+height/9,width/2+width/10, height/2+height/10);

    //ears lr
    noStroke();
    fill(255, 208, 169);
    ellipse(width/4-width/18, height/2, width/10, height/5);
    ellipse(3*width/4+width/18, height/2, width/10, height/5);

    //mouth
    fill(254);
    arc(width/2, height/2+height/5, width/5, height/7,0, PI, CHORD);

    //eyebrows lr
    fill(255,220,135);
    quad(width/2-width/5.5, height/2-height/6,
        width/2-width/5.5, height/2-height/7, 
        width/2-width/13, height/2-height/6, 
        width/2-width/13, height/2-height/5);
    quad(width/2+width/5.5, height/2-height/6,
        width/2+width/5.5, height/2-height/7, 
        width/2+width/13, height/2-height/6, 
        width/2+width/13, height/2-height/5);


    //hair
    fill(255,75,0);
        //sideburns lr
        triangle(width/4-width/25,height/2, 
            width/4-width/40, height/4, 
            width/4+width/20, height/4);
        triangle(3*width/4+width/25,height/2, 
            3*width/4+width/40, height/4, 
            3*width/4-width/20, height/4);
        //top
        arc(width/2,height/4, width/2+width/20, height/3, PI, 0, PI);
}

This was an interesting project to work on, as it required simplifying real life down to just rudimentary shapes. The coding wasn’t too difficult, although finding the exact points to place each shape required a decent amount of work.

Eunice Choe – Looking Outwards-01

An interactive art installation that interested me was Petting Zoo by the architecture and design firm Minimaforms. This installation mimics the lifelike interactions animals have with humans through tubelike robots that hang from the ceiling. These robots have several sensors that can detect sounds, gestures, and touch that can encourage the robots to learn behaviors and personalities that evolve over time. For instance, the more a human interacts with the animal robot, the more it can become attached to the human.

I admire this project because I find it fascinating how the designers were able to capture complex human and animal emotions through artificial intelligence and robots. However, I find the idea of robots being able to evolve and develop emotions unnerving, and it makes me question the interactions humans and robots may have in the future. This installation was developed over several years by the two cofounders of Minimaforms, three designers, and eleven assistants. The designers utilized Kinect sensors to detect multiple people within the environment. In addition, the designers used Processing, which is a language that can make the robots coordinate with one another and allow for interactions with multiple people. Petting Zoo was inspired by The Senster by Edward Ihnatowicz, which was the first robotic sculpture. The designers also pulled inspiration from the work of Gordon Pask and Walter Grey Walter. This project’s ability to empathize with humans and animals show the potential of their interactions in the future. This project is one example of the development of artificial intelligence and how it contributes to creating a more futuristic society.

Yoo Jin Shin-LookingOutwards-01

Piano Stairs

Piano Stairs in Stockholm, Sweden

How can we promote more people to be healthy and opt for the stairs, as opposed to less active modes like the escalator? To tackle such problems, Wolkswagen started an initiative called “The Fun Theory” in 2009, focused on nudging people’s behaviors for the better by making the activity irresistibly fun.

One of their projects, the Piano Stairs, is aimed at the question posed above. A team installed the piano stairs overnight in the Odenplan subway in Stockholm, Sweden using sensors and sound actuators. Not only is the stairwell visually appealing, but it also functions like an oversized piano! Each level of stairs corresponds to a note on the piano and it plays as someone steps on a key. In fact, “through the interactive steps the staircase successfully persuaded and motivated 66% more people to use the stairs instead of the escalator throughout the day.”

I think it’s fascinating that making such a small change in the interaction can influence some people to triumph over their laziness and tendency for convenience. It would be interesting to see other installations using this approach to promote a healthier lifestyle, and observe whether these changes can have longterm, lasting effects in the users.

To see the Piano Stairs in action, click here.

 

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.

Looking Outwards-01

Playful Geometries showcases music and art in an immersive environment.

Playful Geometries is an interactive animated 3D scene projected onto a white table. The constantly changing scenery created through fun geometric shapes and configurations is synced up with the music that is played in the room in which the installment is located. The user interacts with the art in the room by playing with the music, creating different images as they do so. On the walls of the room are images that simultaneously show the inside of the cube that is shown on the white table. In this way, the exhibit is entirely immersive and draws the user into changing the scenery through their own fingers.

The designers of the exhibit were aiming to have fun with the project as well as with the result, but also to push the boundaries of the cheap computers that they were using to create this project. Their goal was to ultimately create something with many cheap computers that would go beyond the scope of something an expensive computer would be able to create.

 

Original Source:https://devart.withgoogle.com/#/project/17120531

Jisoo Geum-Project 01-Face

sketchindex

function setup() {
    createCanvas(600,600);
    background(227,232,150);
}
function draw() {
	s = color(230,190,142)
	o = color(190,100,59)
	g = color(83,114,58)
	b = color(95,50,30)


    
    noStroke();
    fill(80,68,58);
    rect(84.3,269.865,443.011,214.291); //hair
    fill(g);
    quad(161.13,381.64,446.34,381.64,515.21,600,92.26,600); //clothes
    fill(228,183,136);
    ellipseMode(CORNER);
    ellipse(66.264,259.789,57.425,76.955);//Lears
    ellipse(486.497,259.789,57.425,76.955);//Rears
    fill(80,68,58);
    ellipse(84.3,34.471,443.011,376.798);//hair
    fill(s);
    ellipse(88.032,110.559,433.574,308.849);//Face
    fill(s);
    ellipse(244.556,94.708,62.73,62.73);//Lhairline
    ellipse(297.675,94.708,62.73,62.73);//Rhairline

    fill(o);
    ellipse(158.722,266.315,66.652,49.215);//LdsO
    fill(s);
    ellipse(156.37,259.5,67.225,52.039);//LdsS
    rect(154.474,287.076,24.856,23.121);
    rect(212.768,273.794,25.21,23.451);

    fill(o);
    ellipse(389.706,259.369,66.652,49.215);//RdsO
    fill(s);
    ellipse(391.485,252.555,67.225,52.039);//RdsS
    rect(435.749,280.131,24.856,23.121);
    rect(377.101,266.849,25.21,23.451);

    fill(b);
    ellipse(151.955,257.672,76.806,46.701);//LeyeB
    fill(255);
    ellipse(161.126,263.49,62.961,38.293);//LeyeW
    fill(o);
    ellipse(182.175,273.554,40.264,23.451);//LeyeO
    fill(g);
    ellipse(192.048,276.586,26.822,17.867);//LeyeG

    fill(b);
    ellipse(385.107,252.773,76.806,42.311);//ReyeB
    fill(255);
    ellipse(389.62,256.56,67.781,34.736);//ReyeW
    fill(o);
    ellipse(395.84,263.844,42.245,24.466);//ReyeO
    fill(g);
    ellipse(400.753,269.865,25.388,14.703);//ReyeG

    fill(o);
    ellipse(278.441,299.638,50.599,42.754);//noseO
    fill(s);
    ellipse(275.921,305.33,51.035,45.208);
    rect(273.223,313.966,10.436,11.109);
    rect(321.737,323.486,10.436,11.109);




    


   
    

    
}

I used to draw an animated version of my alter ego, which is a 5 year old girl who is addicted to internet. When I received this project, I knew I wanted to code a portrait of my alter ego. The process was enjoyable since I was learning something completely new.

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!

Anthony Ra – Project01 – Face

sketch

/* Anthony Ra
Section A
ahra@andrew.cmu.edu
project_01 */


var r, g, b;

function setup() {
    createCanvas(600, 600);
    background(0);
    r = random(255);
    g = random(255);
    b = random(255);


}


function draw() {

  fill(r, g, b, 127);
  ellipse(310, 270, 195, 195);

/* glasses */
  stroke(250);
  strokeWeight(23);
  ellipse(310, 270, 195, 195);
  ellipse(591, 270, 195, 195);
;
/* right line of face */
  stroke(250);
  strokeWeight(10);
  point(210, 271);
  point(206, 323);
  point(213, 399);
  point(228, 475);
  point(260, 550);
  point(295, 600);

  noFill();
  beginShape();
  curveVertex(210, 271);
  curveVertex(210, 271);
  curveVertex(206, 323);
  curveVertex(213, 399);
  curveVertex(228, 475);
  curveVertex(260, 550);
  curveVertex(295, 600);
  curveVertex(295, 600);
  endShape();

/* right ear */
  stroke(250);
  strokeWeight(10);
  point(210, 271);
  point(188, 275);
  point(178, 288);
  point(177, 307);
  point(181, 330);
  point(187, 357);
  point(199, 386);
  point(201, 393);
  point(195, 405);

  noFill();
  beginShape();
  curveVertex(210, 271);
  curveVertex(210, 271);
  curveVertex(188, 275);
  curveVertex(178, 288);
  curveVertex(177, 307);
  curveVertex(181, 330);
  curveVertex(187, 357);
  curveVertex(199, 386);
  curveVertex(201, 393);
  curveVertex(195, 405);
  curveVertex(195, 406);
  endShape();

/* right eyebrow */
  stroke(250);
  strokeWeight(15);
  point(277, 239);
  point(320, 229);
  point(360, 229);
  point(379, 237);
  point(387, 246);

  noFill();
  beginShape();
  curveVertex(277, 239);
  curveVertex(277, 239);
  curveVertex(320, 229);
  curveVertex(360, 229);
  curveVertex(379, 237);
  curveVertex(387, 246);
  curveVertex(387, 246);
  endShape();

/* left eyebrow */
  stroke(250);
  strokeWeight(15);
  point(520, 246);
  point(530, 235);
  point(545, 230);
  point(581, 229);
  point(600, 232);

  noFill();
  beginShape();
  curveVertex(520, 246);
  curveVertex(520, 246);
  curveVertex(530, 235);
  curveVertex(545, 230);
  curveVertex(581, 229);
  curveVertex(600, 232);
  curveVertex(600, 232);
  endShape();

/* right nose */
  stroke(250);
  strokeWeight(10);
  point(373, 399);
  point(367, 384);
  point(370, 370);
  point(373, 355);

  noFill();
  beginShape();
  curveVertex(373, 399);
  curveVertex(373, 399);
  curveVertex(367, 384);
  curveVertex(370, 370);
  curveVertex(373, 355);
  curveVertex(373, 355);
  endShape();

/* left nose */
  stroke(250);
  strokeWeight(10);
  point(519, 413);
  point(531, 402);
  point(534, 391);
  point(532, 374);
  point(527, 361);
  point(516, 346);
  point(507, 324);

  noFill();
  beginShape();
  curveVertex(519, 413);
  curveVertex(519, 413);
  curveVertex(531, 402);
  curveVertex(534, 391);
  curveVertex(532, 374);
  curveVertex(527, 361);
  curveVertex(516, 346);
  curveVertex(507, 324);
  curveVertex(507, 324);
  endShape();

/* under nose */
  stroke(250);
  strokeWeight(10);
  point(425, 386);
  point(434, 391);
  point(440, 399);
  point(444, 404);
  point(457, 405);
  point(465, 398);
  point(475, 390);

  noFill();
  beginShape();
  curveVertex(425, 386);
  curveVertex(425, 386);
  curveVertex(434, 391);
  curveVertex(440, 399);
  curveVertex(444, 404);
  curveVertex(457, 405);
  curveVertex(465, 398);
  curveVertex(475, 390);
  curveVertex(475, 390);
  endShape();

/* mouth side */
  stroke(250);
  strokeWeight(12);
  point(330, 471);
  point(323, 485);
  point(322, 497);
  point(325, 509);

  noFill();
  beginShape();
  curveVertex(330, 471);
  curveVertex(330, 471);
  curveVertex(323, 485);
  curveVertex(322, 497);
  curveVertex(325, 509);
  curveVertex(325, 509);
  endShape();

/* mouth */
  stroke(250);
  strokeWeight(12);
  point(330, 471);
  point(391, 483);
  point(436, 488);
  point(475, 493);
  point(512, 498);

  noFill();
  beginShape();
  curveVertex(330, 471);
  curveVertex(330, 471);
  curveVertex(391, 483);
  curveVertex(436, 488);
  curveVertex(475, 493);
  curveVertex(512, 498);
  curveVertex(512, 498);
  endShape();

/* right eyebrow */
  stroke(250);
  strokeWeight(19);
  point(255, 161);
  point(292, 144);
  point(317, 139);
  point(351, 142);
  point(379, 151);

  noFill();
  beginShape();
  curveVertex(255, 161);
  curveVertex(255, 161);
  curveVertex(292, 144);
  curveVertex(317, 139);
  curveVertex(351, 142);
  curveVertex(379, 151);
  curveVertex(379, 151);
  endShape();

/* left eyebrow */
  stroke(250);
  strokeWeight(19);
  point(523, 161);
  point(556, 146);
  point(582, 143);
  point(600, 146);

  noFill();
  beginShape();
  curveVertex(523, 161);
  curveVertex(523, 161);
  curveVertex(556, 146);
  curveVertex(582, 143);
  curveVertex(600, 146);
  curveVertex(600, 146);
  endShape();

/* leftist stroke of hair */
  stroke(250);
  strokeWeight(10);
  point(257, 65);
  point(234, 89);
  point(221, 110);
  point(211 ,133);
  point(209, 151);
  point(209, 171);
  point(214, 189);

  noFill();
  beginShape();
  curveVertex(257, 65);
  curveVertex(257, 65);
  curveVertex(234, 89);
  curveVertex(221, 110);
  curveVertex(211 ,133);
  curveVertex(209, 151);
  curveVertex(209, 171);
  curveVertex(214, 189);
  curveVertex(214, 189);
  endShape();

/* second leftest strand of hair */
  stroke(250);
  strokeWeight(10);
  point(231, 65);
  point(243, 39);
  point(265, 18);
  point(289, 6);
  point(322, 0);
  point(365, 10);
  point(392, 25);
  point(412, 41);
  point(427, 61);
  point(442, 100);
  point(447, 132);
  point(447, 165);

  noFill();
  beginShape();
  curveVertex(231, 65);
  curveVertex(231, 65);
  curveVertex(243, 39);
  curveVertex(265, 18);
  curveVertex(289, 6);
  curveVertex(322, 0);
  curveVertex(365, 10);
  curveVertex(392, 25);
  curveVertex(412, 41);
  curveVertex(427, 61);
  curveVertex(442, 100);
  curveVertex(447, 132);
  curveVertex(447, 165);
  curveVertex(447, 165);
  endShape();

/* second rightest strand of hair */
  stroke(250);
  strokeWeight(10);
  point(466, 0);
  point(480, 17);
  point(491, 36);
  point(500, 58);
  point(509, 88);
  point(513, 111);
  point(514, 130);

  noFill();
  beginShape();
  curveVertex(466, 0);
  curveVertex(466, 0);
  curveVertex(480, 17);
  curveVertex(491, 36);
  curveVertex(500, 58);
  curveVertex(509, 88);
  curveVertex(513, 111);
  curveVertex(514, 130);
  curveVertex(514, 130);
  endShape();

/* rightest strand of hair */
  stroke(250);
  strokeWeight(10);
  point(573, 0);
  point(580, 14);
  point(588, 41);
  point(593, 69);
  point(592, 91);
  point(591, 112);
  point(586, 138);

  noFill();
  beginShape();
  curveVertex(573, 0);
  curveVertex(573, 0);
  curveVertex(580, 14);
  curveVertex(588, 41);
  curveVertex(593, 69);
  curveVertex(592, 91);
  curveVertex(591, 112);
  curveVertex(586, 138);
  curveVertex(586, 138);
  endShape();

/* eye */
  stroke(250);
  strokeWeight(9);
  ellipse(345, 240, 42, 24);
  ellipse(566, 243, 42, 24);

  stroke(250);
  strokeWeight(7);
  ellipse(409, 386, 30, 15);
  ellipse(493, 393, 34, 16);


  /* middle of glasses */
    stroke(250);
    strokeWeight(23);
    point(406, 239);
    point(427, 226);
    point(452, 220);
    point(474, 223);
    point(498, 236);

    noFill();
    beginShape();
    curveVertex(406, 239);
    curveVertex(406, 239);
    curveVertex(427, 226);
    curveVertex(452, 220);
    curveVertex(474, 223);
    curveVertex(498, 236);
    curveVertex(498, 236);
    endShape();

}

function mousePressed() {
  var d = dist(mouseX, mouseY, 310, 270);
  if (d < 100) {
    r = random(255);
    g = random(255);
    b = random(255);
  }
}

I have done many self-portrait oil paintings in the past couple years where minute details and influx of different shades and hues were a priority. For this assignment, I decided to take a minimalistic approach to this and include simply the lines that define my face (glasses, brows, nose, hair, etc.). This also expresses my simple nature and laid-back attitude.

The coding was largely used by plotting point coordinates and connecting those points to create a curve. Then, I implemented a mousePressed function where the lens changes color with every click in order for me to see the world differently.