Julie Choi-Project-02-Variable-Face

juliechoi_project_02

// declare character variables
var faceWidth = 130;
var faceHeight = 150;
var eyeSize = 25;
var pupilSize = 10;
var mouthSize = 25;
var tongueSize = 20;
var bodySize = 160;
var legSize = 20;
var blushSize = 20;

// declare other object variable
var discoSize = 85;

// declare color variables
var r = 0;
var g = 0;
var b = 0; 
var skinColor1 = 249; 
var skinColor2 = 205;
var skinColor3 = 161;
var colorA = 0;
var colorB = 0;
var colorC = 0;


function setup() {
    createCanvas(640,480);
 }
function draw() {
	// draw background
    background(r, g, b);

    // draw face + body + legs
    noStroke();
    fill(skinColor1, skinColor2, skinColor3);
    ellipse(width / 2, height / 2, faceWidth, faceHeight);
    fill(249, 205, 161);
    noStroke();
    fill(skinColor1, skinColor2, skinColor3);
    ellipse(width / 2, height / 2 + 100, bodySize, bodySize);
    fill(249, 205, 161);
    noStroke();
    fill(skinColor1, skinColor2, skinColor3);
    ellipse(width / 1.8, height / 1.15, legSize / 1.9, legSize + 30);
    noStroke();
    ellipse(width / 2.2, height / 1.15, legSize / 1.9, legSize + 30);

    // declare eye variables
    var eyeLeft = width / 2 - faceWidth * 0.25;
    var eyeRight = width / 2 + faceWidth * 0.25;
    var pupilLeft = width / 2 - faceWidth * 0.25;
    var pupilRight = width / 2 + faceWidth * 0.25;

    // draw eyes + pupil
    fill(255);
    ellipse(eyeRight, height / 2.25, eyeSize, eyeSize);
    ellipse(eyeLeft, height / 2.25, eyeSize, eyeSize);

    fill(0);
    ellipse(pupilRight, height / 2.2, pupilSize, pupilSize);
    ellipse(pupilLeft, height / 2.2, pupilSize,pupilSize);

    // draw nose with curveVertex
    strokeWeight(1);
    stroke(255);
    noFill(0);
    beginShape();
    curveVertex(width / 1.95, height / 2.3);
    curveVertex(width / 1.95, height / 2.3);
    curveVertex(width / 1.94, height/ 2.1);
    curveVertex(width / 1.9, height/ 2);
    curveVertex(width / 2, height / 2);
    curveVertex(width / 2, height / 2);
    endShape();

    // draw hair strand with curveVertex
    strokeWeight(3);
    stroke('brown');
    noFill(0); //320, 240
    beginShape();
    curveVertex(323, 170);
    curveVertex(323, 170);
    curveVertex(320, 166);
    curveVertex(325, 159);
    curveVertex(323, 153);
    curveVertex(326, 148);
    curveVertex(322, 142);
    curveVertex(324, 135);
    curveVertex(324, 135);
    endShape();

    // draw mouth
    colorA = 243;
    colorB = 159;
    colorC = 76;

    noStroke();
    fill(colorA, colorB, colorB);
    ellipse(width / 2, height / 2 + 20, mouthSize + 5, mouthSize / 2 + 5);

    fill(colorA, colorC, colorC);
    //strokeWeight(5);
	//fillStroke(243, 159, 159);
    ellipse(width / 2, height / 2 + 20, mouthSize + 2, mouthSize / 1.9);

	// draw tongue
    noStroke();
    fill(colorA, colorC, colorC);
    ellipse(width / 2, height / 2 + 25, tongueSize / 1.8, tongueSize + 3);

    // draw blush
    fill('pink');
    strokeWeight(1);
    stroke(255, 255, 255, 50);
    ellipse(width / 2.4, height / 2 + 10, blushSize * 2, blushSize);

    strokeWeight(1);
    stroke(255, 255, 255, 50);
    ellipse(width / 1.7, height / 2 + 10, blushSize * 2, blushSize);

    //draw disco ball shape
    noStroke();
    fill(150);
    rect(315, 0, 15, 25);
    quad(315, 25, 330, 25, 335, 35, 310, 35);
    ellipse(width / 1.99, height / 6.5, discoSize, discoSize);

    fill(0);
    ellipse(307, 52, 15, 15);
    ellipse(327, 72, 15, 15);

    fill(0);
    ellipse(345, 60, 15, 15);
    ellipse(319, 100, 15, 15);

    fill(0);
    ellipse(298, 78, 15, 15);
    ellipse(343, 88, 15, 15);

    fill(243, 36, 202); //pink
    ellipse(305, 50, 15, 15);
    ellipse(325, 70, 15, 15);

    fill(24, 138, 255); //blue
    ellipse(347, 60, 15, 15);
    ellipse(321, 100, 15, 15);

    fill(255, 255, 24); //yellow
    ellipse(300, 80, 15, 15);
    ellipse(345, 90, 15, 15);
}

function mousePressed() {
    faceWidth = random(150, 250);
    faceHeight = random(150, 200);
    eyeSize = random(10, 40);
    pupilSize = random(5, 10);
	mouthSize = random(20, 28);
	tongueSize = random(15, 18);
	bodySize = random(160,200);
	blushSize = random(15,20)
    colorA = random(0, 255);
    colorB = random(0, 255);
    colorC = random(0, 255);
    skinColor1 = random(0, 255);
    skinColor2 = random(0, 255);
    skinColor3 = random(0, 255);
    r = random(0, 255);
    g = random(0, 255);
    b = random(0, 255);
}


For this project, I personally had so much fun using all the new materials from this week. I ended up creating a character in a rave with randomized expression and color. I was able to figure out that when I randomize the color under the draw function, the background changes extremely quickly since the draw function is in a loop. Although applying that part looks more like a rave, I didn’t apply it to my code for this post because it might hurt some people’s eyes. Instead, if you are curious, download this: real_rave  to see how it looks. I hope you enjoy!

Julie Choi-Looking Outwards-02

 

Like the human eyes, the graphics of this artwork shows a visual harmony involving many shapes. I admire this project because building this system must have required a very technical calculation of each and every one of the pieces. Although, as a whole, it seems like a circular illusion, each shape is in certain and very specific positions to create a functioning system.

Memo Akten is an artist who mainly uses computation as his media to create projects that explore the collision between nature, science, and technology. This project, “Reducible Complexity” was designed in 2013 by Akin. He created this project to represent a visual form of reducible complexity derived from the natural world. Reducible complexity is a system that is composed of single interactive parts that are needed for a whole function. In other words, without one single element, the system will not be able to function or display. A natural and visual example of this is the human’s eyes. The mechanisms of eyes are systems that have fundamentally evolved with small incremental changes since humans naturally need both pairs for a full function.

Julie Choi Project-01-Face

juliechoi_portrait

function setup() {
    createCanvas(600,700); //function calls (parameter)
  background(209, 170, 130); //(r,g,b)
}

function draw() {
  noStroke();

  //eyelashes
  //line(600,180,600,200);

  //eyes

  fill(179,131,82);
  ellipse(200,250,100,100);

  fill(179,131,82);
  ellipse(400,250,100,100);

  fill(255,255,255);
  ellipse(200,258,85,85);

  fill(255,255,255);
  ellipse(400,258,85,85);

  fill(29,18,6);
  ellipse(200,250,70,70);

  fill(29,18,6);
  ellipse(400,250,70,70);

  //nose
  fill(195,128,101);
  //arc(300, 330, 80, 80, 0, PI + QUARTER_PI, CHORD);

  arc(300, 330, 80, 80, 0,PI, PI + QUARTER_PI);

  //mouth
  fill(204,98,98);
  ellipse(275,455,100,100);

  fill(204,98,98);
  ellipse(325,455,100,100);

  fill(55,38,21);
  ellipse(300,470,150,100);

  fill(209,170,130);
  rect(200,460,200,200);

  fill(204,98,98);
  ellipse(300,465,140,50);

  fill(55,38,21);
  ellipse(300,460,150,30);

  fill(55,38,21);
  ellipse(300,450,135,30);

  //hair
  fill(55,38,21); //dark brown
  ellipse(100,0,600,250);//right hair

  ellipse(600,50,500,350);//left hair
  fill(55,38,21); //dark brown

  ellipse(-30,200,250,600);//right hair
  fill(55,38,21); //dark brown

  ellipse(650,200,250,900);//right hair
  fill(55,38,21); //dark brown

  //triangles
  fill(255,255,255);
  triangle(0,700,50,600,100,700);

  fill(255,255,255);
  triangle(100,700,150,600,200,700);

  fill(255,255,255);
  triangle(200,700,250,600,300,700);

  fill(255,255,255);
  triangle(300,700,350,600,400,700);

  fill(255,255,255);
  triangle(400,700,450,600,500,700);

  fill(255,255,255);
  triangle(500,700,550,600,600,700);

  //details
  ellipse(245,380,10,10);

  //rect(150,0,464,450); //(int x, int y, int width, int length)

  }


 

If anyone knows how I look like, they would say that I don’t look anything like this. As if I wore a paper bag, this is a portrait is a representation of how I thought my appearance looked when I was a teenager still growing up. I had fun with the assignment because I had a lot of freedom to explore with different elements.

Julie Choi Looking Outwards-01

The user’s hand can virtually interact with the interior of an animated cat.
This virtual reality allows different types of view such as bones and muscles for an accurate display of the animated cat.

Leap Motion is a technology company that embeds virtual reality into many different fields to remove the barrier between people and technology. This Colossal blog post introduces the new “Cat Explorer” that allows humans to virtually interact with the interior of an animated cat. The movement of the user’s hand is co-operated with virtual settings to show real life internal movements of the organs, muscles, and different body systems when touched.

This VR technology can be an innovative educational tool in the medical field for studying bodies of humans and animals. Even better, if this type of technology coordinates with different types of nuclear scans that exist today, hopefully, in the future, patients, doctors, and nurses will find a quicker answer to biological solutions. I admire these type of technology because it can easily open up new perspectives to people who are at war with sicknesses that have shallow research due to limited research tools. However, one critique for this project would be accessibility. This type of medical research would require economic capabilities causing many people around the world not being able to access such technology.