Hyejo Seo – Project 01

hyejos-portrait

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

}

function draw() {

  //hair
  noFill();
  stroke(255,80,73);
  strokeWeight(8);
  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(140, 120);
  curveVertex(100,300);
  curveVertex(100, 530);
  curveVertex(220, 580);
  curveVertex(220, 500);
  curveVertex(125, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();
  line(300,30,300,75);

  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(460, 120);
  curveVertex(500,300);
  curveVertex(500, 530);
  curveVertex(380, 580);
  curveVertex(380, 500);
  curveVertex(475, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();

  stroke(255,80,73);
  strokeWeight(5);
  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(140, 120);
  curveVertex(100,300);
  curveVertex(100, 530);
  curveVertex(220, 580);
  curveVertex(220, 500);
  curveVertex(125, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();

//face
  noFill();
  stroke(255,178,217);
  strokeWeight(8);
  ellipse(300, 300, 350, 450);
  

  noFill();
  stroke('#00120B');
  strokeWeight(5);
  beginShape();
  curveVertex(350, 260);
  curveVertex(350, 260);
  curveVertex(375, 235);
  curveVertex(410,235);
  curveVertex(445, 260);
  curveVertex(445, 260);
  endShape();

  
  noFill();
  stroke(0);
  strokeWeight(3);
  beginShape();
  curveVertex(350, 260);
  curveVertex(350, 260);
  curveVertex(375, 275);
  curveVertex(410,275);
  curveVertex(445, 260);
  curveVertex(445, 260);
  endShape();
  
  //eyeliner - right eye
 
  fill(0);
  noStroke();
  beginShape();
  curveVertex(347, 260);
  curveVertex(347, 260);
  curveVertex(355,240);
  curveVertex(375,225);
  curveVertex(400,222);
  curveVertex(420,225);
  curveVertex(420,225);
  curveVertex(445,260);
  curveVertex(410,235);
  curveVertex(375,235);
  curveVertex(350,260);
  curveVertex(350,260);
  endShape();
  triangle(416,225, 475,240, 446,262)

   //left eye
   
   noFill();
   stroke('#00120B');
   strokeWeight(5);
   beginShape();
   curveVertex(250, 260);
   curveVertex(250, 260);
   curveVertex(225, 235);
   curveVertex(190,235);
   curveVertex(155, 260);
   curveVertex(155, 260);
   endShape();
 
   //under eye
  
   noFill();
   stroke(0);
   strokeWeight(3);
   beginShape();
   curveVertex(250, 260);
   curveVertex(250, 260);
   curveVertex(225, 275);
   curveVertex(190,275);
   curveVertex(155, 260);
   curveVertex(155, 260);
   endShape();
   
   //eyeliner - right eye
  
   fill('#00120B');
   noStroke();
   beginShape();
   curveVertex(253, 260);
   curveVertex(253, 260);
   curveVertex(245,240);
   curveVertex(225,225);
   curveVertex(200,222);
   curveVertex(180,225);
   curveVertex(180,225);
   curveVertex(155,260);
   curveVertex(190,235);
   curveVertex(225,235);
   curveVertex(250,260);
   curveVertex(250,260);
   endShape();
   triangle(184,225, 125,240, 154,262)

  //  pupils
  circle(215,245,35,35)
  circle(408,245,35,35)

  //eyebrows
  fill(0);
  beginShape();
  quad(257,185,170,180,170,190,255,200);
  endShape(CLOSE);
  triangle(170,180,130,200,180,190);
  endShape();

  fill(0);
  beginShape();
  quad(343,185,430,180,430,190,345,200);
  endShape(CLOSE);
  triangle(430,180,470,200,420,190);
  endShape();

  //nose
  noFill();
  stroke(223,253,255);
  line(290,240,285,340);
  stroke(223,253,255);
  line(310,240,315,340);
  arc(311,368, 90, 70, PI, PI + QUARTER_PI);
  noFill();
  stroke(223,253,255);
  line(290,240,285,340);
  stroke(223,253,255);
  line(310,240,315,340);
  endShape();
  arc(287, 368, 90, 70, -PI*1/4, 0);
  stroke()
  arc(300,430, 70, 30, 0, PI)
}

For my self-portrait, I tried to make it look as much as a line drawing as possible. I also wanted to bring focus to my eyes as I consider my eye liner (my eye makeup as I have been putting it on consistently for several years now) to be part of my identity. 

Nawon Choi— Project 01

nawon-portrait

// Nawon Choi
// Section C
// Project-01 Self-Portrait


function setup() {
    createCanvas(500, 500);
    background(220);    
}

function draw() {
    
    // background
    noStroke();
    fill("#E3CBC8");
    rect(0, 0, 500, 250);
    
    // head
    noStroke();
    fill("#6A6159");
    ellipse(234, 250, 395, 500);

    noStroke();
    fill("#6A6159");
    ellipse(312, 249, 302, 465);

    noStroke();
    fill("#F2E3C2");
    ellipse(255, 236, 356, 423);

    noStroke();
    fill("#6A6159");
    rect(122, 142, 69, 16);

    noStroke();
    fill("#6A6159");
    rect(315, 142, 69, 16);

    noStroke();
    fill("#6A6159");
    quad(128, 61, 303, 30, 200, 125, 54, 182);

    noStroke();
    fill("#6A6159");
    triangle(224, 16, 303, 30, 153, 57);

    // table
    noStroke();
    fill("#AA827C");
    rect(0, 250, 500, 134);

    noStroke();
    fill("#9B736D");
    rect(0, 384, 500, 30);

    noStroke();
    fill("#E1ACA4");
    rect(0, 414, 500, 86);
    
    // rice
    noStroke();
    fill("#F3EEE9");
    rect(163, 250, 175, 80, 29);

    // egg
    noStroke();
    fill("#F2BD39");
    rect(143, 224, 214, 53, 7);

    noStroke();
    fill("#F8D683");
    rect(143, 224, 214, 20, 7);

    // seaweed
    noStroke();
    fill("#424944");
    rect(235, 220, 30, 24);

    noStroke();
    fill("#27312B");
    rect(235, 244, 30, 33);

    noStroke();
    fill("#151916");
    rect(235, 277, 30, 53);

    // eyes
    noStroke();
    fill("#ffffff");
    ellipse(154, 198, 57, 46);

    noStroke();
    fill("#ffffff");
    ellipse(347, 198, 57, 46);
    

    // eyeballs
    let x1, x2, y;
    // let x1 = mouseX+153;
    //     x2 = mouseX
    //     y = mouseY-142;

    // LEFT x range: (142 - 166)
    // RIGHT x range: (335 - 359)
    // y range: (192 - 205)
    if (mouseY < 192 ){
        y = 192;
    } else if (mouseY >= 192 & mouseY <=205) {
        y = mouseY;
    } else {
        y = 205;
    }

    if (mouseX < 142) {
        x1 = 142,
        x2 = 335;
    } else if (mouseX >= 142 & mouseX <= 166) {
        x1 = mouseX,
        x2 = 335;
    } else if (mouseX > 166 & mouseX < 335) {
        x1 = 166,
        x2 = 335;
    } else if (mouseX >= 335 & mouseX <= 359) {
        x1 = 166,
        x2 = mouseX;
    } else {
        x1 = 166,
        x2 = 359;
    }

    noStroke();
    fill("#6A6159");
    ellipse(x1, y, 33, 33);

    noStroke();
    fill("#6A6159");
    ellipse(x2, y, 33, 33);

    noStroke();
    fill("#FAFAFA");
    ellipse(x1-4, y-4, 12, 12);

    noStroke();
    fill("#FAFAFA");
    ellipse(x2-4, y-4, 12, 12);

    
}

I definitely wanted to have an interactive component for my self-portrait, so I made the eyes follow the direction of the mouse. Perhaps the most challenging part of this project was coding the values so that the eyeballs would stay within the range of the eyes. I thought for a while on what I wanted my self-portrait to look like, and ultimately, I decided to focus on my two of my favorite foods—eggs and sushi.

Project-01-Face Sarah Kang

My approach to this project was to capture my features into a mini cartoon character. Although I tried my best to translate my face features into this portrait, my picture turned out looking pretty different from my appearance in reality, especially my hair. Despite this outcome, this was a good learning experience on how to draw geometric shapes on p5.js.

face

//Sarah Kang
//Section C
//sarahk1@andrew.cmu.edu
//assignment-01
var line;
function setup() {
	createCanvas(600, 600);
}
function draw() {
	background(255, 204, 100);
	

	strokeWeight(2.5);
	stroke(0, 0, 255);
	for(var offset =0; offset<600; offset +=20){
		line(offset, 0, offset, height);
	}
	//bangs
	noStroke();
	fill(0);
	rect(185, 315, 230, 180);
	//face + neck
	noStroke();
	fill(238, 212, 194);
	ellipse(300, 300, 196, 264);
	ellipse(300, 450, 40, 150);
	//ears
	ellipse(392, 355, 30, 30);
	ellipse(208, 355, 30, 30);
	
	//shirt
	fill(245, 102, 91);
	ellipse(300, 600, 170, 260);
	//hair in back
	fill(0);
	arc(300, 240, 230, 185, PI, 0, OPEN);
	rect(185, 240, 230, 75);
	//eyes
	ellipse(255, 350, 15, 7);
	ellipse(345, 350, 15, 7);
	//eyebrows
	stroke(0);
	noFill();
	arc(255, 340, 30, 10, PI, 0, OPEN);
	arc(345, 340, 30, 10, PI, 0, OPEN);
	//mouth
	stroke(245, 102, 91);
	noFill();
	arc(300, 400, 20, 7, 0, PI, OPEN);
	//earrings
	stroke(360);
	ellipse(392, 375, 14, 20);
	ellipse(208, 375, 14, 20);
}

Yoshi Torralva-Project-01-Face

When approaching this project, I wanted to create my self-portrait that was angular with similarly toned hues. Using mostly quadrilaterals, I needed to make sure points lined up with each other to create a unified facial structure. Additionally, I added mouse tracking to a square in the background to add an extra element of depth.

sketch

//Yoshi Torralva
//Section E
//yrt@andrew.cmu.edu
//Project-01
function setup() {
    createCanvas(600,600);
}
function draw() {
    background(249,33,33);
//background with mouse tracking for added depth
    fill(234,24,24);
    rect(mouseX,mouseY,500,500);
//shirt
    fill(51,3,14);
    noStroke();
    quad(122,517,374,408,374,600,91,600);
    quad(374,408,507,432,579,600,292,600);
//right ear
    fill(160,2,18);
    noStroke();
    quad(384,267,392,277,377,318,340,326);
//hair behind ellipse
    fill(114,7,18);
    noStroke();
    ellipse(269,172,112,112);
//side hair
    fill(114,7,18);
    noStroke();
    quad(200,194,225,177,218,244,197,274);
//hair
    fill(114,7,18);
    noStroke();
    ellipse(290,163,112,112);
    ellipse(330,224,125,174);
//neck shadow
    fill(89,4,20);
    noStroke();
    quad(224,363,360,314,350,385,237,433);
//head
    fill(191,16,25);
    noStroke();
    quad(256,322,350,331,326,362,274,368);
    quad(207,346,257,322,274,368,224,363);
    quad(207,241,257,323,207,346);
    quad(197,273,207,241,207,346,199,323);
    quad(225,273,297,283,256,322);
    quad(250,323,353,227,357,270,324,329);
    quad(305,359,357,270,370,292,350,331);
//ellipse for head
    fill(191,16,25);
    noStroke();
    ellipse(281,229,146,135);
//neck
    fill(191,16,25);
    noStroke();
    quad(254,390,334,371,374,408,220,477);
    quad(334,371,357,328,351,387);
    quad(219,477,374,407,345,459,269,483);
//hair in front of head
    fill(114,7,18);
    noStroke();
    ellipse(324,172,106,76);
//nose shadow
    fill(160,2,8);
    noStroke();
    quad(276,237,283,245,286,279,278,269);
    quad(261,241,263,238,254,266,246,276);
//sunglasses
    fill(114,7,18)
    noStroke();
    quad(206,225,264,233,250,268,203,260);
    quad(279,235,338,240,334,275,284,273);
    quad(240,230,361,242,360,249,239,237);
//eyebrows
    fill(114,7,18)
    noStroke();
    quad(221,213,236,210,231,219,214,223);
    quad(236,210,261,217,260,226,231,219);
    quad(286,220,326,218,327,227,289,229);
    quad(326,218,342,233,327,227);
//nostrils
    fill(160,2,8);
    noStroke();
    ellipse(254,280,8,4);
    ellipse(274,282,8,4);
//upper lip
    fill(160,2,8)
    noStroke();
    quad(243,309,257,306,257,313,233,316);
    quad(257,306,260,307,260,314,257,313);
    quad(260,307,262,306,263,313,260,314);
    quad(262,306,279,310,288,319,263,313);
//lower lip
    fill(135,3,22);
    noStroke();
    quad(233,316,257,313,256,321,245,320);
    quad(257,313,260,314,259,321,256,321);
    quad(260,314,263,313,262,321,259,321);
    quad(263,313,288,319,262,321);
}

Shariq M. Shah – Self Portrait01


Using basic geometric shapes and a subtle color palette, this exercise allowed me to explore different ways of arranging shapes in p5.js. Although the image looks simple, the functions that allow it to look minimal and composed will have uses in more complex programs.

shariqs_Portrait

// Shariq M. Shah
// Section C
// shariqs@andrew.cmu.edu
// Assignment_01


function setup() {
  createCanvas(600, 600);
}

function draw() {
  background(230, 211, 211);
  noStroke()

  fill(250, 200, 0)
  ellipse(300,600,600,300)

  strokeWeight(2)
  rect(220, 400, 150, 150, 15)

  //Face
  fill(200, 162, 132)
  rect(170, 180, 250, 250, 30, 100, 150, 150)

  fill(0,0,0)

  ellipse(300,180, 250, 150)
  rect(150, 180, 300, 80,30)

  //Left Spec
  noFill()
  stroke(300)
  ellipse(240, 290, 60, 60)
  ellipse(240, 290, 55, 55)


  //Left Eye
  stroke(300)
  fill(300)
  ellipse(240, 290, 30, 20)
  fill(0)
  ellipse(240, 290, 15, 20)
  ellipse(240, 285, 2, 2)


  //Right Eye
  stroke(300)
  fill(300)
  ellipse(340, 290, 30, 20)
  fill(0)
  ellipse(340, 290, 15, 20)
  ellipse(340, 285, 2, 2)

  line(175, 180, 425, 180)

  //Right Spec
  noFill()
  stroke(300)
  ellipse(340, 290, 60, 60)
  ellipse(340, 290, 55, 55)

  line(310,290, 270, 290)
  line(310,285, 270, 285)

  line(210,285, 170, 280)
  line(210,290, 170, 280)


  line(370,285, 420, 280)
  line(370,290, 420, 280)

  //Nose
  noStroke()
  fill(240, 171, 142)
  triangle(290, 300, 290, 340, 310, 360)
  fill(214, 171, 139)
  triangle(290, 300, 290, 340, 270, 360)

//Mouth
	fill (300);

	ellipse (290, 382, 70, 42);
	fill (200, 162, 132);

	rect (250, 360, 89, 21);

    ellipse(425,300, 20, 80)
    ellipse(165,300, 20, 80)


  fill(300)



  //Logo
  bezier(105, 20, 10, 10, 90, 90, 15, 80)

  //Collar
  bezier(220, 460, 300, 650, 150, 650, 370, 460)



}

 

Sean Leo – Project_01

sleo-selfportrait

/*Sean B. Leo
Section C
sleo@andrew.cmu.edu
Project_01*/
function setup() {
    createCanvas(600, 600);
  }
  function draw() {
    background(225);
    noStroke();
    //skin
    fill(222, 197, 165);
    rect(200, 150, 200, 300);
    quad(200, 150, 200, 450, 178, 400, 150, 200);
    quad(400, 150, 450, 200, 415, 440, 400, 400);
    //hair
    fill(83, 47, 22);
    quad(150, 150, 350, 100, 450, 150, 350, 175);
    rect(150, 210, 10, 80);
    rect(440, 210, 10, 80);
    triangle(200, 150, 150, 250, 130, 175);
    triangle(400, 150, 470, 170, 450, 250);
    //beard
    quad(150, 249, 200, 375, 250, 470, 160, 430);
    quad(450, 249, 440, 430, 350, 470, 400, 375);
    quad(200, 400, 270, 450, 270, 500, 200, 460);
    quad(400, 400, 400, 460, 320, 500, 320, 450);
    rect(270, 450, 50, 50); 
    //musatche
    quad(200, 420, 270, 390, 280, 395, 300, 405);  
    quad(320, 390, 330, 395, 400, 420, 300, 405); 
   
    
  }

Thinking about drawing through coordinates was challenging as well as getting used to the grid orientation. I believe it’ll just take some getting used too and practice.

*not sure why my height is getting cropped off…

Shariq M. Shah – Looking Outwards – 01

Holger Lippmann is a generative artist working at the intersection of art and technology whose work, through processing, seems to challenge perceptible reality. Initially training as a traditional visual artist, Lippmann later moved to Berlin in the middle of the electronic music boom. These interests in the visual arts and in electronic music merged into explorations in digital and computational art. Key works from his ‘noise warp’ collection use collectives of elongated shapes to define highly organic and warped field conditions. Lippmann draws inspiration from the flowing brushstrokes of Van Gogh, even drawing from the color palettes of his various paintings. A central concept of Lippmann’s works seems to be the aggregation of a relatively simple shape or element, i.e a line or rectangle, into varying densities and arrangements where they, as a collective, articulate complex and nuanced field conditions. As an architecture student, these visualizations provoke thought and introspection as spatial possibilities can be speculated. Explorations upon the responsiveness of such systems could have aesthetic as well as practical implications.

Holger Lippmann Website:

http://www.lumicon.de/wp

Erin Lim – Project 01 – Face


eylim – portrait

/*Erin Lim
*Section A
*eylim@andrew.cmu.edu
*Assignment 01-Self Portrait
*/

function setup() {
    createCanvas(900, 800);
    background(227, 209, 200);

    fill(255, 241, 209); //face
    ellipse(500, 495, 460, 450)

    fill(255, 255, 255); //left eye
    ellipse(380, 470, 40, 40);

    fill(255, 255, 255); //right eye
    ellipse(580, 470, 40, 40)

    fill(3, 3, 3) //right pupil
    ellipse(580, 468, 30, 30)

    fill(3, 3, 3) //left pupil
    ellipse(380, 468, 30, 30)

    fill(255, 255, 255) // mouth
    triangle(450, 600, 550, 650, 560, 600)

    stroke(255, 202, 0); // left hair
    fill(0, 0, 0)
    curve(560, 1800, 250, 550, 560, 270, 1100, 600)

    stroke(255, 202, 0); // right hair
    fill(0, 0, 0)
    curve(350, 650, 750, 550, 550, 270, 20, 500)

    fill(5, 5, 5) // left eyebrow
    line(300, 430, 420, 430)

    fill(5, 5, 5) // right eyebrow
    line(550, 430, 670, 430)

    fill(255, 241, 209) // left ear
    circle(250, 500, 45)

    fill(255, 241, 209) // right ear
    circle(750, 500, 45)

function draw() {
    }
}

Alice Cai_Project01_Face


sketch

function setup() {
 createCanvas(600, 600);
 background("white");

}

function draw() {
	fill("tan");
	ellipse(300,300,280,350);

	fill("black");
	arc(300, 230, 283, 280, PI, TWO_PI);

	fill("black");
	rect(160,200,30,300);

	fill("black");
	rect(410,200,30,300);
	
	fill("black");
	rect(225,250,40,10);

	fill("black");
	rect(330,250,40,10);

	fill("black");
	ellipse(250,300,30,20);

	fill("black");
	ellipse(350,300,30,20);

	fill("white");
	ellipse(255,295,10,10);

	fill("white");
	ellipse(355,295,10,10);
	

	//fill("pink");
	//rect(250,400,100,10);

	fill("black");
	ellipse(300,80,100,100);

	fill("pink");
	ellipse(300,405,100,40);

	fill("tan");
	strokeWeight(0);
	ellipse(300,395,140,35);

	fill("pink");
	ellipse(240,335,50,20);

	fill("pink");
	ellipse(360,335,50,20);
	//arc(300, 400, 283, 280, -PI, TWO_PI);

	fill("tan");
	strokeWeight(1);
	triangle(300, 380, 300, 270, 330, 380);


	fill("black");
	arc(300, 620, 283, 280, PI, TWO_PI);



}

Ellan Suder-Project01-Face

I had a bit of trouble sorting out which values corresponded with which points, especially with the quadrilaterals, but I eventually worked it out!

ellansuderface

function setup() {
    createCanvas(500, 500);
	background(93, 203, 255);

    stroke(250, 50, 56); 
    strokeWeight(20);
    line(60, 360, 67, 345); //thumb
    line(160, 475, 40, 340); //leftarm
    line(450, 360, 435, 345); //thumb
    line(440, 475, 460, 340); //rightarm

    stroke(0, 0, 255)//flag
    strokeWeight(5)   
    line(60,420,60,70)
    fill(255);
    rect(60, 70, 400, 100, 20);

    noStroke(); //face
    fill(250, 50, 56); 
    ellipse(250,350,200,170);

    let s = 'hello! nice to meet you.';
    fill(255, 0, 10);
    textSize(35)
    text(s, 80, 85, 400, 100)
  
    noStroke(); //face
    fill(250, 41, 56); 
    ellipse(300,500,300,260);

    stroke(255, 0, 10); //nose
    strokeWeight(5);
    fill(0, 240, 205); 
    triangle(40+270, 75+300, 58+270, 20+300, 86+270, 65+300);

    fill(0, 255, 0); //eyebrows
    quad(38+180, 31+240, 86+180, 20+240, 90+180, 40+240, 30+180, 76+240);
    fill(0, 255, 0); 
    quad(38+270, 21+240, 86+270, 20+240, 90+270, 40+240, 20+270, 30+240);

	stroke(0, 0, 255); //left eye
	strokeWeight(5);
	fill(255);
    ellipse(250, 340, 30, 50);  

    stroke(10, 10, 255); //right eye
    strokeWeight(5);
    fill(255);
    ellipse(300, 340, 50, 30);  

    arc(300, 400, 60, 20, 0, PI + QUARTER_PI, PIE); //mouth
    strokeWeight(5);
    fill(255);
    ellipse(300, 340, 50, 30);  
}

function draw() {
}