rgroves – project02 – Variable Face

sketch

//Rebecca Groves
//Section B
//rgroves@andrew.cmu.edu
//Week 02 Variable Face

//color of fur
var reds = [60, 110, 184, 220]; 
var r = 60;
var b = 60;
var g = 60;
//color of chin
var chinvariables = [1, 2, 3, 4, 5];
var v = 1;
//color of eyes
var eyereds = [210, 194, 253, 147, 152];
var eyer = 210;
var eyeb = 203;
var eyeg = 91;
//size of eyes
var eyeseperation = 230;
var eyewidth = 60;
var eyeheight = 45;
var pupilwidth = 10;
var eyecurve = 30
//size of nose
var nosemultiplier = 1;
var jowelwidth = 90;
var jowelheight = 75;
//right mustache
var rtop = 365;
var rbottom = 400;
var rlength = 70;
//left mustache
var ltop = 340;
var lbottom = 370;
var llength = 50;


function setup() {
    createCanvas(600, 600);
    background(222,226,222);
}

function draw() {
	//headshape
	noStroke();
	fill(r, b, g);
	if (r == 60){
		b = 60;	
		g = 60;
	} else // blue grey
	if (r == 110){
		b = 124;
		g = 138;
	} else // orange
	if (r == 184){
		b = 115;
		g = 55;
	} else 
	if (r == 220){
		b = 220;
		g = 220;
	}
	beginShape();
	vertex(150, 600);
	vertex(150, 90);
	vertex(220, 180);
	vertex(600 - 220, 180);
	vertex(600 - 150, 90);
	vertex(600 - 150, 600);
	endShape();

	//eyes
	ellipseMode(CENTER);
	fill(eyer, eyeb, eyeg);
	if (eyer == 210){ // yellow green
		eyeb = 203;	
		eyeg = 91;
	} else // turquoise
	if (eyer == 194){ 
		eyeb = 248;
		eyeg = 182;
	} else // yellow
	if (eyer == 253){ 
		eyeb = 212;
		eyeg = 37;
	} else // brown
	if (eyer == 147){
		eyeb = 66;
		eyeg = 38;
	} else // blue
	if (eyer == 152){
		eyeb = 186;
		eyeg = 205;
	}
	rectMode(CENTER);
	rect(eyeseperation, 290, eyewidth, eyeheight, 0, eyecurve, 0, eyecurve);
	rect(600- eyeseperation, 290, eyewidth, eyeheight, eyecurve, 0, eyecurve, 0);
	//pupils
	fill(60);
	ellipse(eyeseperation, 290, pupilwidth, eyeheight);
	ellipse(600 - eyeseperation, 290, pupilwidth, eyeheight);
	//eye highlight
	fill(220);
	ellipse(eyeseperation + 10, 290 - (eyeheight * .15), 20, 15);
	ellipse(600 - eyeseperation + 10, 290 - (eyeheight * .15), 20, 15)

    //ears
    noStroke();
    fill(r - 50, b - 70, g - 50);
    triangle(150, 90 + 20, 220 - 20, 180, 150, 180);
    triangle(600 - 150, 90 + 20, 600 - (220 - 20), 180, 600 - 150, 180);

    //chin
    if (v == 4) { //make chin occasionally white
    	fill(230);
    	ellipse(300, 370 + (jowelheight * .4), 55, 55); 
    } else {
    	fill(r - 50, b - 70, g - 50);
    	ellipse(300, 370 + (jowelheight * .4), 55, 55);
    }
    

    //jowels
    if (v == 4) { //make jowels occasionally solid
    	fill(r, b, g);
    	ellipse(300 - 35, 370, jowelwidth, jowelheight);
    	ellipse(300 + 35, 370, jowelwidth, jowelheight);
    } else {
    	fill(230);
    	ellipse(300 - 35, 370, jowelwidth, jowelheight);
    	ellipse(300 + 35, 370, jowelwidth, jowelheight);
    }
    //left mustache
	noStroke();
	fill(r, b, g);
	ellipseMode(CORNERS);
	ellipse(300, ltop, 300 - llength, lbottom);
	//right mustache
	ellipse(300, rtop, 300 + rlength, rbottom);

    //nose
	fill(211, 177, 160);
	rect(300, 325, 50 * nosemultiplier, 15 * nosemultiplier, 5);
	triangle(300 - (20 * nosemultiplier), 320, 300 + (20 * nosemultiplier), 320, 300, 300 + (50 * nosemultiplier));
	strokeWeight(3);
	stroke(156, 102, 81);
	line(300, 300 + (50 * nosemultiplier), 300, 335)
}

function mousePressed(){
	reds = [60, 110, 184, 220];
	r = random(reds);
    eyereds = [210, 194, 253, 147, 152];
    eyer = random(eyereds);
    chinvariables = [1, 2, 3, 4, 5];
    v = random(chinvariables);
    eyeseperation = random(210, 260);
    eyewidth = random(45, 70);
    eyeheight = random(20, 50);
    pupilwidth = random(5, 20);
    eyecurve = random(20, 50);
    nosemultiplier = random(.75, 1.25);
    jowelwidth = random(70, 140);
    jowelheight = random(65, 110);
    rtop = random(370, 370 - (jowelheight * .5));
    ltop = random(370, 370 - (jowelheight * .5));
    rbottom = rtop + random(20, 70);
    while (rbottom > (370 + (jowelheight * .5))){
    	rbottom = rtop + random(20, 70);
    }
    lbottom = ltop + random(20, 70);
    while (lbottom > (370 + (jowelheight * .5))){
    	lbottom = ltop + random(20, 70);
    }
    rlength = (30, jowelwidth - 40);
    llength = (30, jowelwidth - 40);
}

For this project I was inspired by my childhood cats. They were both tuxedo cats, and most people could only tell them apart by the markings around their mouths – one had a little black mustache and one had a white chin. Here are pictures of them:

1/5 of the time it generates a cat with a solid color face and a white chin and 4/5 of the time it generates a cat with a uniquely shaped mustache. The fur color, eye color and shape, and nose size also change.

rgroves – LookingOutwards-02

Dreamlines is an interactive artwork created in 2005 by Leonardo Solaas. Unfortunately, it is no longer functional due to changing technologies. However, a user was once able to enter a series of words that describe a dream they would like to dream, and this program would search for these words in google images and use the results to generate what the artist called an “ambiguous painting, in perpetual change, where elements fuse into one another, in a process analogous to memory and free association.”

One thing I admire about this project is how the use of found images adds to the uncanny quality of the moving paintings that makes them so dreamlike. We don’t know when the photos were taken or anything about the subjects or the photographer. We don’t know if they’re dead or alive – and if they’re dead, how they died. Like in dreams, our imagination can turn something innocent (a woman standing on a porch) into a nightmare.

The artist describes the algorithm for the videos on his website. The video is comprised of 1500 autonomous particles in perpetual movement – movement whose velocity is determined by the color value of the pixel it is “stepping” on. The hue, saturation and brightness of the pixel somehow translate to angle and speed values for the particle.

The code combines the unpredictable data presented by the keywords that users enter, an algorithm that randomly selects images from Google, and a logical, predictable function on the color values of the pixels to create perpetual motion and chaos. This method is meant to reflect the processes that take place in our heads – in some ways unpredictable and emotional but actually just a series of electrical impulses, each one determined by physical conditions.

Video: https://vimeo.com/136955826

Website: http://solaas.com.ar/dreamlines/

rgroves – project01 – face

becky – face

function setup() {
    createCanvas(600, 750);
    background(235);
}

function draw() {
	angleMode(DEGREES);
	strokeWeight(0);


	//light hair
	fill(250, 230, 150);
	beginShape();
	vertex(125, 225);
	vertex(120,380);
	vertex(55, 475);
	vertex(55, 590);
	vertex(40, 620);
	vertex(150, 600);
	vertex(175, 625);
	vertex(220, 600);
	vertex(290, 290);
	vertex(125, 225);
	endShape();
	triangle(360, 630, 410, 350, 510, 550);
	triangle(510, 550, 490, 615, 380, 600);

	//darkhair
    fill(168, 128, 120);
    ellipse(350, 254, 450);

    //light hair
	fill(250, 230, 150);

    triangle(150, 500, 175, 300, 280, 500);

	//face shape
	fill(250 ,235 ,195);
	ellipse(378, 242, 345);
	//chin
	beginShape();
	curveVertex(235, 160);
	curveVertex(235, 160);
	curveVertex(193, 355);
	curveVertex(215, 510);
	curveVertex(270, 568);
	curveVertex(347, 550);
	curveVertex(475, 420);
	curveVertex(538, 306);
	curveVertex(538, 306);
	endShape();	

	//ear
	ellipse(450, 425, 150, 70);

	//eye1
	push();
	translate(300,303);
	rotate(25);
	fill(240,240,230);
	ellipse(0, 0, 70, 30);
	fill(105, 130, 170);
	ellipse(0,-5,40);
	fill(250, 220, 195);
	arc(0, 0, 70, 70, 180, 360, CHORD);
	pop();

    //hair 
    push();
    fill(168, 128, 120);
    translate(340, 175);
    rotate(75);
    ellipse(0, 0, 200, 420);
    pop();
    

    //shadow
	fill(260, 212, 170)

	beginShape();
	curveVertex(550, 257);
	curveVertex(550, 257);
	curveVertex(422, 287);
	curveVertex(350, 465);
	curveVertex(363, 530);
	curveVertex(363, 530);
	endShape();

	curveTightness(1.5);
	beginShape();
	curveVertex(367, 464);
	curveVertex(367, 464);
	curveVertex(338, 467);
	curveVertex(330, 465);
	curveVertex(320, 460);
	curveVertex(316, 478);
	curveVertex(315, 480);
	curveVertex(308, 478);
	curveVertex(304, 473);
	curveVertex(274, 478);
	curveVertex(306, 487);
	curveVertex(334, 505);
	curveVertex(350, 520);
	curveVertex(350, 520);
	endShape();

    curveTightness(0);
	beginShape();
	curveVertex(350, 520);
	curveVertex(350, 520);
	curveVertex(335, 505);
	curveVertex(318, 515);
	curveVertex(297, 506);
	curveVertex(290, 510);
	curveVertex(288, 519);
	curveVertex(290, 534);
	curveVertex(287, 553);
	curveVertex(274, 569);
	curveVertex(274, 569);
	endShape();
   
    beginShape();
	curveVertex(215, 510);
	curveVertex(274, 569);
	curveVertex(347, 550);
	curveVertex(475, 420);
	curveVertex(538, 306);
	curveVertex(550, 257);
	curveVertex(550, 257);
	endShape();

	//eye1

	push();
	translate(440, 360);
	rotate(25);
	fill(240,240,230);
	ellipse(0, 0, 70, 30);
	fill(95, 120, 150);
	ellipse(0,-5,40);
	fill(230, 200, 185);
	arc(0, 0, 70, 70, 180, 360, CHORD);
	pop();
}

Rebecca Groves
Section B

Reflection:
For my portrait, I wanted to maintain elements of my drawing style, which is generally not very geometric. As a compromise, I represented the nose and mouth in as organic a style as I could in this medium, and the rest of the face – the hair, eyes, and ear – are geometric.

rgroves – Looking Outwards 01

 

The Light Clock is a project that has been on display at the Carnegie Museum of Art by new media collective the Innovation Studio. Outside the museum, there is a clock with a hand that makes a rotation every 5 minutes, and when it reaches the top it takes a 360 degree photograph of its surroundings. In the lobby of the museum, the photographs are used in an interactive display that allows viewers to spin their bodies to left to change the point-of-view and to the right to change the time. The project required both new software as well as new hardware as nothing similar had been done before. They don’t elaborate on this in the blost post I found, but apparently the sensor that detected when and what direction a viewer was spinning was particularly challenging. The artists where all particularly inspired by a quote from critical theorist Roland Barthes – “…cameras, in short, were clocks for seeing…” The project is as much about the clock as much as it’s about the camera. It is meant to explore how we perceive space and time to be deeply, intrinsically related when in many ways they are not. Seeing them so blatantly ripped apart is jarring to the viewer. The display is curved around you, increasing the sense that you’ve been transported to a universe where you cannot navigate space and time simultaneously.

On their blog, the artists describe this project as the ultimate new media project. They claim that the success of this artwork as forced the museum to “consider where art objects can come from” and ponder whether perhaps the Light Clock isn’t art but something else entirely. I’m not sure whether it’s quite as groundbreaking as they say it is, but in the context of the Richard Serra and Henry Moore sculptures that neighbor it, it is certainly a unique project.

https://studio.carnegiemuseums.org/clock-9aa6da28a4e5