Justin Yook – Project 02 – Variable Faces

jyook_VariableFaces

//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.

Justin Yook – Looking Outwards 02

“Reaction-Diffusion” by Nobutaka Kitahara is a generative art piece. The CG art presented on screen is made from mathematical algorithms to simulate chemicals’ reaction-diffusion patterns in response to sounds; in this project, he used the song titled “Astravel”. According to information on some websites, this reaction-diffusion simulation is created based on the Gray-Scott model. One can see Kitahara’s artistic sensibilities manifest in the algorithm from his use of 3D space instead of 2D, making the viewer’s perspective much more interesting because there are more angles to see the simulation from. I admire this project because it is an amazing way to bind art, science and math together. There are many times when people assume that art and math or science are in separate categories, but “Reaction-Diffusion” represents that phenomenons of the natural world actually are made of both art and math or science; almost like one cannot exist without the other.

 

Justin Yook – Project 01 – Face

jyook_SelfPortrait

//Justin Yook
//Section C
//jyook@andrew.cmu.edu
//Project-01

function setup() {
    createCanvas(500, 500);
    background(112, 156, 205);
}

function draw() {

	noStroke();
	//General face shape and color
	fill(254, 256, 225);
	ellipse(250, 250, 260, 280);

	//Hat
	fill(0);
	arc(250, 180, 240, 220, PI, TWO_PI, OPEN);
	fill(0);
	ellipse(250, 170, 232, 200);

	//used to make the curve of the hat's bill
	fill(254, 256, 225);
	ellipse(250, 245, 190, 70);

	//helps differentiate parts of the hat
	fill(52, 61, 70);
	ellipse(250, 180, 225, 40);

	//covers up the unnecessary grey area to leave only curve line
	fill(0);
	ellipse(250, 185, 220, 40);

	//Eyes
	fill(255);
	arc(190, 240, 70, 60, 0, PI);

	fill(255);
	arc(310, 240, 70, 60, 0, PI);

	fill(0);
	ellipse(190, 250, 10, 10);

	fill(0);
	ellipse(310, 250, 10, 10);

	//Eyebrows
	fill(0);
	rect(270, 235, 80, 5);

	fill(0);
	rect(150, 235, 80, 5);

	//Mouth
	fill(0);
	rect(205, 330, 90, 5);
 
}

While I was doing this project, I tried to come up with a style that can be both simple and meaningful. I randomly chose the South Park character style because their characters are simple primitives, but they each possess distinguishable features. For me, that’s my black hat, and my unamused eyes.

Justin Yook – Looking Outwards – 01

A trailer for No Man’s Sky Next, released on July 24th 2018. 

No Man’s Sky by Hello Games is a multiplayer action-adventure survival video game that lets players travel to planets, and outer space. The biggest feature in the game is that the planets, fauna, flora, are all procedurally generated. For example, features of a planet like the climate and biome are all unique. According to the director, Sean Murray, there are 18 quintillion planets available for everyone to team up and explore.

This project was inspired by science fictions by Isaac Asimov, Arthur C. Clarke, and Robert Heinlein. The team started with one developer, which expanded to four, and finally a dozen; it took them four to five years to fully develop. They used a custom game engine that allowed them to create the game mostly through procedural algorithms and minimize the number of 3D and 2D art assets. In July 2018, Hello Games released an update No Man’s Sky Next, which vastly improved the game overall.

I find No Man’s Sky inspirational because it proves that indie game developers, even with a small team, can achieve big goals. As an aspiring developer, it gives me the courage to never give up no matter the what difficult situation my team faces.

Official site: No Man’s Sky site