Julia Nishizaki – Project 02 – Variable Face

For this project, I decided to create different monsters/creatures, and focussed on conveying both their physical characteristics as well as their emotions or personalities. When approaching this project, I struggled with deciding on a concept, and kept it fairly simple, changing more of the facial aspects of the creatures, rather than adding arms or tails.

sketch

//Julia Nishizaki
//Section B
//jnishiza@andrew.cmu.edu
//Section B, Project 02 Variable Face

// starting variables
var eyeSize = 20;
var faceWidth = 150;
var faceHeight = 200;
var CornerT = 30;
var CornerB = 15;
var toothExistence1 = 0;
var toothExistence2 = 0;
var faceY = 340;
var bodyWidth = 250;
var mouthWidth = 100;
var mouthHeight = 50;
var eyebrowY = 320;
var r = 243;
var g = 179;
var b = 174;
var pupilDX = 6;
var pupilDY = 5;
var w = 5
 
function setup() {
    createCanvas(480, 640);
}
 
function draw() {
    background('white');
    noStroke();
    
    //background color
    fill(r, g, b, 55);
    rect(width / 2, height / 2, width, height);

    //body
    fill('white');
    rectMode(CORNERS);
    var faceX = width / 2;
    rect(faceX - bodyWidth / 2, faceY + faceHeight / 2, faceX + bodyWidth / 2, height, CornerT, CornerT, 0, 0);
    //stomach   
    fill(r, g, b, 100);
    rect(faceX - bodyWidth * 0.25, faceY + faceHeight * 0.75, faceX + bodyWidth * 0.25, height, 50, 50, 0, 0);
    
    //face
    fill('white');
    rectMode(CENTER);
    rect(faceX, faceY, faceWidth, faceHeight + 1, CornerT, CornerT, CornerB, CornerB);
    
    //mouth
    noStroke();
    fill(r, g, b);
    var mouthY = faceY + faceHeight * 0.25
    rect(faceX, mouthY, mouthWidth, mouthHeight, 50, 50, 50, 50);

    //tooth and teeth
    fill('white');
    triangle(faceX * toothExistence1, (mouthY - mouthHeight / 2 - 1) * toothExistence1, (faceX + mouthWidth * 0.5) * toothExistence1, (mouthY - mouthHeight / 2 - 1) * toothExistence1, (faceX + mouthWidth * 0.25) * toothExistence1, mouthY * toothExistence1);
    triangle(faceX * toothExistence2, (mouthY - mouthHeight / 2 - 1) * toothExistence2, (faceX - mouthWidth * 0.5) * toothExistence2, (mouthY - mouthHeight / 2 - 1) * toothExistence2, (faceX - mouthWidth * 0.25) * toothExistence2, mouthY * toothExistence2);

    //eyes
    var eyeLX = faceX - faceWidth * 0.25;
    var eyeRX = faceX + faceWidth * 0.25;
    stroke('black');
    noFill();
    strokeWeight(5);
    ellipse(eyeLX, faceY, eyeSize, eyeSize);
    ellipse(eyeRX, faceY, eyeSize, eyeSize);
    //eye pupils
    noStroke();
    fill('black');
    var pupilLX = eyeLX + eyeSize * 0.125;
    var pupilRX = eyeRX + eyeSize * 0.125;
    var pupilY = faceY + eyeSize * 0.125;
    ellipse(pupilLX - pupilDX, pupilY - pupilDY, eyeSize * 0.625, eyeSize * 0.625);
    ellipse(pupilRX - pupilDX, pupilY - pupilDY, eyeSize * 0.625, eyeSize * 0.625);
   
    //eyebrows
    stroke('black');
    strokeWeight(w);
    line(eyeLX - eyeSize / 2, faceY - eyeSize, eyeLX + eyeSize / 2, eyebrowY);
    line(eyeRX + eyeSize / 2, faceY - eyeSize, eyeRX - eyeSize / 2, eyebrowY);
}

function mousePressed() {
    //color of background and mouth
    r = random(255);
    g = random(255);
    b = random(255);

    //face and body proportions
    faceY = random(200, 350);
    faceWidth = random(100, 250);
    faceHeight = random(150, 300);
    bodyWidth = random(50, 300);
    //roundness of face and body
    CornerT = random(10, 50);
    CornerB = random(10, 50);

    //size of eyes, angle of eyebrows, and location of pupils
    eyeSize = random(15, 40);
    let existence1 = ['0', '1'];
    eyebrowY = random(faceY - eyeSize * 0.5, faceY - eyeSize * 1.5);
    pupilDX = random(eyeSize * 0.25);
    pupilDY = random(eyeSize * 0.25);

    //stroke weight for eyebrows
    w = random(1, 15);

    //proportions of mouth and how many teeth
    mouthWidth = random(15, 100);
    mouthHeight = random(15, 50);
    toothExistence1 = random(existence1);
    let existence2 = ['0', '1'];
    toothExistence2 = random(existence2);
}

Julia Nishizaki – Looking Outwards – 02

A piece from Marius Watz’s KBG series, this particular image depicts the music of Radka Toneff

Marius Watz (http://mariuswatz.com/) is a Norwegian artist based in New York and Oslo, who works through generative software processes. He has a wide variety of works, some of which deal in data visualization, and others which result in physical, 3D printed pieces. Watz is known for his vibrant colors and geometric forms.

The works that I chose to write about are a part of Marius Watz’s KBG series. This series was created for the Kongsberg Jazz Festival in 2010, an international jazz festival held annually in Kongsberg, Norway. I found this series particularly interesting, as Watz selected five classic and contemporary jazz tracks, by Radka Toneff, Atomic, Sonny Rollins, Håkon Kornstad and Røyksopp, and created five visual interpretations of the music. According to his website, he used Fast Fourier Transform (FFT) analysis of the sound as his data input.

I particularly admire this project because of Marius Watz’s use of color and dynamic motion to capture the fun, vibrant, and wide ranging tones and feelings of jazz. Even though these images were mainly used on posters and documentation that wasn’t moving, the geometric and dynamic nature of the forms still draw you in and engage you in a similar way to how music would, giving the audience a sense of what to expect at this festival.

Watz’s work as visuals for the Kongsberg Jazz Festival, invitation for commission and all print design by Anders Bergesen / Superultraplus

Julia Nishizaki – Looking Outwards 01

Second Skin hydro-reactive fabric by MIT

The project I chose to write about is bioLogic’s Second Skin, a line of sportswear the reacts to sweat and body heat, causing small flaps of fabric to peel back, so that sweat can evaporate. BioLogic, a team of 8 researchers in the Tangible Media Group at MIT Media Lab, embedded the bacteria, Bacillus Subtilis Natto, which naturally expands and contracts in relation to moisture, into Second Skin’ fabric. I was introduced to Second Skin in an e-textiles course I took last year, and while this isn’t a coding or electronics based work, I was really inspired by the meaningful, effortless interactions between the dancers and their “living garments.” I really admire this project not just because of how the transformations of the fabric help to regulate the athletes’ body temperatures and improve their performances, but also because it visualizes the work and effort of the athletes in a very tangible and elegant manner, elevating the experience.

Other projects at this lab that utilize the bacteria in a similar manner include tea bags with indicators that unfurl when the tea is ready, and lamps that expand and change from the heat of the light bulbs inside.

Second Skin, created by the research team, bioLogic, in the Tangible Media Group at MIT Media Lab

Julia Nishizaki – Project-01-Face

When starting this project, I knew that I wanted to capture both my facial features as well as my personality, and to express a playful and friendly tone. However, as I started to sketch out some initial ideas, I realized that I really had to simplify my concept and make it more geometric, as I didn’t know how to create weird or irregular organic shapes. While I had some trouble trying to figure out p5.js and sublime, this project really helped me to learn some of the basics, and to explore what I could do.

julia_selfportrait

//Julia Nishizaki
//jnishiza@andrew.cmu.edu
//Section B, Project 01 Self-Portrait

function setup() {
    createCanvas(600,600);
    background(251,177,97);
    rectMode(CENTER);
    noStroke();

    //shirt
    c = color('rgb(34,40,92)');
    fill(c);
    rect(375,415,110,50,20,25,0,0);
    c = color('rgb(25,32,66)');
    fill(c);
    arc(340,600,200,415,PI,PI + HALF_PI);
    c = color('rgb(34,40,92)');
    fill(c);
    arc(340,600,370,415,PI + HALF_PI,0);
    arc(350,600,50,255,PI,PI + HALF_PI);

    //hair behind face
    fill('black');
    circle(280,195,190);

    //dark grey, side shave
    c=color('rgb(49,46,47)');
    fill(c);
    rect(350,170,250,180,55,80,0,0);

    //skin
    c = color('rgb(248,212,178)');
    fill(c);
    circle(455,275,90);
    circle(460,305,50);
    square(370,380,80);
    triangle(330,420,410,420,340,480);
    arc(350,275,250,255,0,PI,PIE);
    rect(340,210,230,150,0,80,0,0);

    //sideburns
    c=color('rgb(49,46,47)');
    fill(c);
    rect(465,220,20,120,0,0,10,5);

    //hair
    fill('black');   
    arc(340,115,110,110,PI,0,PIE);
    arc(285,150,175,175,HALF_PI + QUARTER_PI,PI + HALF_PI + QUARTER_PI,PIE);
    arc(340,81,130,130,0,PI,PIE);
    arc(280,110,130,130,0,PI,PIE);

    //highlight
    noFill();
    stroke('rgb(215,138,132)');
    strokeWeight(10);
    arc(285,150,175,175,HALF_PI + QUARTER_PI,PI + HALF_PI + QUARTER_PI,OPEN);
    arc(340,81,130,130,0 + QUARTER_PI,HALF_PI + QUARTER_PI,OPEN);

    //cheek
    noStroke();
    c = color('rgb(247,204,173)');
    fill(c);
    circle(405,300,85);

    //glasses
    noFill();
    stroke('rgb(178,79,74)');
    strokeWeight(10);
    strokeCap(ROUND);
    rect(385,255,90,60,15,15,15,15);
    rect(260,255,90,60,15,15,15,15);

    //nose
    stroke('rgb(232,183,141)');
    strokeWeight(10);
    c = color('rgb(248,212,178)');
    fill(c);
    bezier(305,210,355,260,250,285,320,310);

    //glasses bridge
    stroke('rgb(178,79,74)');
    strokeWeight(8);
    line(305,245,340,245);

    //eyes and eyebrows
    stroke('black');
    strokeWeight(15);
    line(350,210,420,210);
    line(220,210,290,200);
    noStroke();
    fill('black');
    circle(385,240,15);
    circle(275,240,15);

    //mouth
    c = color('rgb(215,138,132)');
    fill(c);
    arc(320,330,60,60,0,PI,PIE);

    //earring
    c = color('rgb(69,89,175)');
    fill(c);
    circle(472,315,5);
}