//Justin Yook
//Section C
//jyook@andrew.cmu.edu
//Project-02
//aspects of variability
var faceWidth = 150;
var faceHeight = 150;
var faceColorR = 255;
var faceColorG = 255;
var faceColorB = 255;
var topHeadWidth = 150;
var topHeadHeight = 150;
var eyeWidth = 15;
var eyeHeight = 15;
var eyeColorR = 0;
var eyeColorG = 0;
var eyeColorB = 0;
var pupilWidth = 5;
var pupilHeight = 5;
var pupilColorR = 0;
var pupilColorG = 0;
var pupilColorB = 0;
var eyebrowThick = 3;
var noseWidth = 8;
var noseHeight = 8;
function setup() {
createCanvas(640, 480);
}
function draw() {
background(faceColorR * (1/6), faceColorG * (1/6), faceColorB * (1/6));
//draw general face
noStroke();
fill(faceColorR, faceColorG, faceColorB);
ellipse(width/2, height/2, faceWidth, faceHeight);
//draw top of head
noStroke();
fill(faceColorR, faceColorG, faceColorB);
ellipse(width/2, height/2.5, topHeadWidth, topHeadHeight);
//draw eyes and eye color
noStroke();
var eyeLx = width / 2 - faceWidth * 0.25;
var eyeRx = width / 2 + faceWidth * 0.25;
fill(eyeColorR, eyeColorG, eyeColorB);
ellipse(eyeLx, height / 2, eyeWidth, eyeHeight);
ellipse(eyeRx, height / 2, eyeWidth, eyeHeight);
//draw eyebrow and its thickness
noStroke();
var browLx = eyeLx - 13;
var browRx = eyeRx - 13;
fill(faceColorR * (1/2), faceColorG * (1/2), faceColorB * (1/2));
rect(browLx, height / 2.2, 25, eyebrowThick);
rect(browRx, height / 2.2, 25, eyebrowThick);
//draw pupils
noStroke();
fill(eyeColorR * 2, eyeColorG * 2, eyeColorB * 2);
ellipse(eyeLx, height / 2, pupilWidth, pupilHeight);
ellipse(eyeRx, height / 2, pupilWidth, pupilHeight);
//draw nose
noStroke();
fill(faceColorR * (1/2), faceColorG * (1/2), faceColorB * (1/2));
ellipse(width / 2, height / 1.85, noseWidth, noseHeight);
//draw mouth
noFill();
stroke(faceColorR * (1/2), faceColorG * (1/2), faceColorB * (1/2));
strokeWeight(2);
arc(width/2, height/1.85 + 13, 30, 5, 0, PI, OPEN);
}
function mousePressed() {
//randomize dimensions of face
faceWidth = random(70, 200);
faceHeight = random(80, 200);
//randomize color of face
faceColorR = random(0, 255);
faceColorG = random(0, 255);
faceColorB = random(0, 255);
//randomize dimensions of eyes
eyeWidth = random(10, 30);
eyeHeight = random(10, 30);
//randomize dimensions of third eye
thirdEyeSize = random(0, 30)
//randomize color of eyes
eyeColorR = random(0, 255);
eyeColorG = random(0, 255);
eyeColorB = random(0, 255);
//randomize eyebrow thickness
eyebrowThick = random(1, 8);
//randomize dimensions of nose
noseWidth = random(5, 30);
noseHeight = random(10, 30);
//randomize dimensions of pupils
pupilWidth = random(5, 10);
pupilHeight = random(5, 10);
//randomize dimensions of top head
topHeadWidth = random(90, 180);
topHeadHeight = random(90, 180);
}
When I was starting out with the project, I didn’t know what features to add to the faces other than the basic eyes, head, nose, and mouth. After some time playing around with primitive shapes, I placed a new ellipse that overlapped with the original face ellipse, which made it look like a weird species. So I decided that the second head’s size would be fun to manipulate. In the end, the theme of my project was about showing the many ways an alien can look like in our imagination.