Project-02-Variable-Face

For this project, my idea was to start out with a relatively normal-looking, black-and-white image of a face and when the user clicked on it, the face would immediately erupt with color. Thus, as one can see, all features of the face change color with each click. Originally, I was also going to make the background change color as well, but unfortunately I was unable to find a way to do so. In order to play with the emotion of the face, I focused on making subtle changes to the eyebrows, eyes, and mouth. I chose these features because I believe that they can tell the most about a person’s emotions. The combination of these changing features — color, shape, and position — allow facial expressions to range from looking surprised, sinister, happy, and more.

Project 2: Variable Faces

/*Emma Shi
Section B
eyshi@andrew.cmu.edu
Variable Faces Project 2
*/

var eyepupil = 20
var eye = 40
var facewidth = 250
var faceheight = 300
var eyex = 356
var eyey = 238
var cheekw = 50
var cheekh = 40
var cheekx = 242
var cheeky = 296
var earlx = 174
var eary = 280
var earrx = 425
var earring = 14
var arcA = 229
var arcAA = arcA + 104
var arcB = 200
var arcC = 90
var arcStart = 1
var arcStop = 0
var arcLipA = 300
var arcLipB = 340
var arcChord = 0
var mid = 300
var z = 0
var x3arc = 84.88
var y3arc = 201
var oh = 100

var rBlack = 0
var gBlack = 0
var bBlack = 0
var White = 285
var rWhite = 285
var gWhite = 285
var bWhite = 285
var rHair = 15
var gHair = 15
var bHair = 15
var rEyebrow = 16
var gEyebrow = 16
var bEyebrow = 16
var rCheek = 158
var gCheek = 158
var bCheek = 158
var rLip = 78
var gLip = 78
var bLip = 78
var rNose = 144
var gNose = 144
var bNose = 144
var rEar = 140
var gEar = 140
var bEar = 140
var rFace = 181
var gFace = 181
var bFace = 181

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

function draw() {

	fill(rFace, gFace, bFace);
	noStroke();
    ellipse(faceheight, facewidth + 10, facewidth, faceheight);//face
    rect(facewidth + 20, faceheight + 50, faceheight / 5, facewidth - 110);//neck

fill(255);
    ellipse(eyex, eyey, eye, eye);//right eye 
    ellipse(eyex - 100, eyey, eye, eye);//left eye

    noFill();
    stroke(rEyebrow, gEyebrow, bEyebrow);
    strokeWeight(3);
    arc(arcA, arcB, arcC, arcStart, arcStop, HALF_PI);//left eyebrow
    arc(arcAA, arcB, arcC, arcStart, arcStop, HALF_PI);//right eyebrow

    noFill();
    stroke(rHair, gHair, bHair);
    strokeWeight(6);
    arc(mid, mid - 20, mid - 40, mid + 58, x3arc, y3arc, HALF_PI);//hair outline
    arc(mid, mid, mid - 40, mid + 58, x3arc, y3arc, HALF_PI);//hair outline
    arc(mid, mid - 10, mid - 40, mid + 58, x3arc, y3arc, HALF_PI);//hair outline
    arc(mid, mid - 5, mid - 40, mid + 58, x3arc, y3arc, HALF_PI);//hair outline    
    arc(mid, mid - 15, mid - 40, mid + 58, x3arc, y3arc, HALF_PI);//hair outline

    fill(rHair, gHair, bHair);
    ellipse(mid, 70, eye*2, eye*2);//hair bun

    noFill();
    strokeWeight(3);
    arc(eyex, eyey, 44, 45, mid + 80, 50, HALF_PI);//right eye liner
    arc(eyex - 100, eyey, 44, 45, mid + 80, 50, HALF_PI);//left eye liner

    noStroke();
    fill(rBlack, gBlack, bBlack);
    ellipse(eyex + 10, eyey + 1, eyepupil, eyepupil);//left eye pupil
    ellipse(eyex - 90, eyey + 1, eyepupil, eyepupil);//right eye pupil

    fill(White);
    ellipse(eyex - 90, eyey + 1, eye/9, eye/9);//right eye pupil light
    ellipse(eyex + 10, eyey + 1, eye/9, eye/9);//left eye pupil light

noStroke();
    fill(rNose, gNose, bNose);
    ellipse(mid, mid, oh - 60, oh / 5);//nose

    fill(rCheek, gCheek, bCheek);
    ellipse(cheekx, cheeky, cheekw, cheekh);//left cheek
    ellipse(cheekx + 120, cheeky, cheekw, cheekh);//right cheek

    fill(rFace, gFace, bFace);
    ellipse(earlx, eary, oh - 76, 60);//left ear 
    ellipse(earrx, eary, oh - 76, 60);//right ear

    fill(rEar, gEar, bEar);
    ellipse(earlx, eary, earring, oh / 5);//left inner ear
    ellipse(earrx, eary, earring, oh / 5);//right inner ear

    fill(rWhite, gWhite, bWhite);
    ellipse(earlx, eary + 20, earring, earring);//left earring
    ellipse(earrx, eary + 20, earring, earring);//right earring

    fill(White)
    stroke(rLip, gLip, bLip);
    strokeWeight(4); //lip outline
    arc(arcLipA, arcLipB, 70, 70, arcChord, PI, CHORD);//teeth

}

    function mousePressed(){
        //when user clicks, eye color changes
        rBlack = random(0, 285);
        gBlack = random(0, 285);
        bBlack = random(0, 285);
        //when user clicks, earring color changes
        rWhite = random(0, 285);
        gWhite = random(0, 285);
        bWhite = random(0, 285);
        //when user  clicks, hair and eyeliner change color
        rHair = random(0, 285);
        gHair = random(0, 285);
        bHair = random(0, 285);
        //when user clicks, eyebrow color changes
        rEyebrow = random(0, 285);
        gEyebrow = random(0, 285);
        bEyebrow = random(0, 285);
        //when user clicks, cheek color changes 
        rCheek = random(0, 285);
        gCheek = random(0, 285);
        bCheek = random(0, 285);
        //when user clicks, lip color changes
        rLip = random(0, 285);
        gLip = random(0, 285);
        bLip = random(0, 285);
        //when user clicks, nose color changes
        rNose = random(0, 285);
        gNose = random(0, 285);
        bNose = random(0, 285);
        //when user clicks, inner ear color changes
        rEar = random(0, 285);
        gEar = random(0, 285);
        bEar = random(0, 285);
        //when user clicks, face/neck color changes
        rFace = random(0, 285);
        gFace = random(0, 285);
        bFace = random(0, 285);
        //when user clicks, eye pupil size changes
        eyepupil = random (5, 30);
         //when user clicks, eyebrow position changes
        arcB = random(170, 215);
        //when user clicks, mouth position changes
        arcChord = random(0,100);
    
    }

Looking Outwards 2: Linear Perspective

reas_linear_perspective_0reas_linear_perspective_1

Linear Perspective 2015 Code, digital images, computer, screen 1080 x 1920 pixels
Linear Perspective
2015
Code, digital images, computer, screen
1080 x 1920 pixels

Casey Reas’ “Linear Perspective” connects code, art, and media into a generative piece that invites viewers to become more aware about their values and perceptions of the world around them. Reas incorporates primary editorial images in the New York Times from 2015 into a vortex-like projection, with each image beginning its projection from a single point and expanding out to fuller detail as the image moves to the right. These images represent some of the most salient and influential images in our world — these are the images that dictate how we converse with others, what we choose to believe as important information, and ultimately serving as an indication of what society values.

This piece stands out because of its ability to combine code with basic artistic principles — abstraction, line, direction, and of course, linear perspective. This combination of computation, artistic elements, and imagery from current events make it easier for viewers to find ways to interpret the piece in the context of their own lives.

Project-01-Face

self portrait

/*Emma Shi
Section B
eyshi@andrew.cmu.edu
Faces Project 1
*/

function setup() {
    createCanvas(600, 600);
    background(239, 216, 219);
}

function draw() {

	fill(0);
	beginShape();
	curveVertex(200,100);
	curveVertex(300, 90);
	curveVertex(400, 100);
	endShape();

	fill(226, 195, 180);
	noStroke();
    ellipse(300, 260, 250, 300);//face

    fill(226, 195, 180);
    noStroke();
    rect(270, 350, 60, 140);//neck

fill(255, 255, 255);
    ellipse(356, 238, 40, 40);//right eye 
    fill(255, 255, 255);
    ellipse(256, 238, 40, 40);//left eye

    noFill();
    stroke(42, 21, 0);
    strokeWeight(3);
    arc(229, 200, 90, 1, 0, HALF_PI);//left eyebrow

    noFill();
    stroke(42, 21, 0);
    strokeWeight(3);
    arc(333, 200, 90, 1, 0, HALF_PI);//right eyebrow

    noFill();
    stroke(25, 18, 8);
    strokeWeight(6);
    arc(300, 280, 260, 358, 84.88, 201, HALF_PI);//hair outline

    noFill();
    strokeWeight(6);
    arc(300, 300, 260, 358, 84.88, 201, HALF_PI);//hair outline

    noFill();
    strokeWeight(6);
    arc(300, 290, 260, 358, 84.88, 201, HALF_PI);//hair outline

    noFill();
    strokeWeight(6);
    arc(300, 295, 260, 358, 84.88, 201, HALF_PI);//hair outline    

    noFill();
    strokeWeight(6);
    arc(300, 285, 260, 358, 84.88, 201, HALF_PI);//hair outline

    noFill();
    strokeWeight(3);
    arc(356, 238, 44, 45, 380, 50, HALF_PI);//right eye liner

    noFill();
    strokeWeight(3);
    arc(256, 238, 44, 45, 380, 50, HALF_PI);//left eye liner

    noStroke();

    fill(0);
    ellipse(266, 239, 20, 20);//right eye pupil

    fill(0);
    ellipse(366, 239, 20, 20);//left eye pupil

    fill(285, 285, 285);
    ellipse(266, 239, 5, 5);//right eye pupil light

    fill(285, 285, 285);
    ellipse(366, 239, 5, 5);//left eye pupil light

noStroke();
    fill(230, 160, 138);
    ellipse(300, 300, 40, 20);//nose

    fill(245, 173, 199);
    ellipse(242, 296, 50, 40);//left cheek

    fill(245, 173, 199);
    ellipse(362, 296, 50, 40);//right cheek

    fill(226, 195, 180);
    ellipse(174, 280, 24, 60);//left ear

    fill(230, 180, 128);
    ellipse(174, 280, 14, 40);//left inner ear

    fill(285);
    ellipse(174, 300, 14, 14);//left earring

    fill(226, 195, 180);
    ellipse(425, 280, 24, 60);//right ear

    fill(230, 180, 128);
    ellipse(425, 280, 14, 40);//right inner ear

    fill(285);
    ellipse(425, 300, 14, 14);//right earring

    fill(25, 18, 8);
    ellipse(300, 70, 80, 80);//hair bun

    fill(285)
    stroke(241, 95, 140);
    strokeWeight(4);
    arc(300, 340, 70, 70, 0, PI, CHORD);//teeth

	}

To create this image, I used simple graphic elements such as ellipses, rectangles, and arcs. The earrings were just some extra (yet very simple) bedazzling.

This project helped me learn some of the most basic elements of sketching using p5.js, and I hope to use this as a starting point to be able to create more complex sketches throughout this course.

Looking Outwards 1: Samsung 837 Gallery

While I was trying to find options for (momentarily) escaping intense New York City heat this summer, I managed to fumble my way into Samsung’s flagship store. Surrounded by a mix of posh stores and the High Line, Samsung 837 is a spectacle that stands out on its own. It isn’t even technically a real store – it’s a digital playground that features a huge screen that spans three stories high, a living room designed to showcase domestic innovations, a cafe, a virtual reality tunnel, a studio, and a gallery.

samsung 837 gallery

The current exhibit at the Gallery is called Social Galaxy, an interactive art installation where guests enter their Instagram accounts into a keypad and enter a tunnel surrounded by imagery on Samsung tablets from their accounts. Every screen features a different hashtag, read aloud by voices, and as the user continues moving throughout the tunnel, the screens feature other content such as images and collages. As guests near the end of the tunnel, their Instagram feeds and photo booth snaps are displayed on a huge three-story screen collectively with the photos of past visitors. This exhibit allows visitors to actively reflect and interact with their past, present, and online presence.