Enwandu-Project-02-Variable-Face

Variable Face

/*  Emmanuel Nwandu
    enwandu@andrew.cmu.edu
    Section D
    Project-02-Variable-Face
*/
var faceWidth = 420;
var faceHeight = 420;
var eyeSize = 82;
var eyePatchH = 176;
var eyePatchW = 111;
var mouthStroke = 7;
var earWidth = 173;
var earHeight = 195;
var blushWidth = 45;
var blushHeight = 27;
var blushRed = 253;
var blushGreen = 216;
var blushBlue = 201;

function setup() {
    createCanvas(480, 640);
    background(256);
    text("p5.js vers 0.5.12 test.", 10, 15);
}

function draw() {
    background(256);

    //ears
    fill(0);
    ellipse(97, 170, earWidth, earHeight);
    ellipse(388, 170, earWidth, earHeight);

    //inner ears
    fill(blushRed, blushGreen, blushBlue);
    ellipse(97, 170, earWidth - 78, earHeight - 91);
    ellipse(388, 170, earWidth - 78, earHeight - 91);

    //head
    noStroke();
    fill(256);
    ellipse(width/2, height/2, faceWidth, faceHeight);

    //eyepatches
    noStroke();
    fill(0);
    ellipse(130, 337, eyePatchW, eyePatchH);
    ellipse(353, 337, eyePatchW, eyePatchH);


    //eyes including pupil and highlights
    noStroke();
    fill(256)
    ellipse(136, 355, eyePatchW - 29, eyePatchW - 29);
    ellipse(359, 355, eyePatchW - 29, eyePatchW - 29);
    fill(0);
    ellipse(136, 355, 62, 62);
    ellipse(359, 355, 62, 62)

    fill(256)
    //Defines edge conditions
    //Allows the highlights to follow the mouse within the boundary
    var leftEdgeR = 120;
    var rightEdgeR = 147;
    var leftEdgeL = 343;
    var rightEdgeL = 370;

    var xcR = constrain(mouseX, leftEdgeR, rightEdgeR);
    var xcL = constrain(mouseX, leftEdgeL, rightEdgeL);

    ellipse(xcR, 337, 33, 33);
    ellipse(130, 356, 12, 12);
    ellipse(xcL, 337, 33, 33);
    ellipse(353, 356, 12, 12);

    //nose
    fill(0);
    ellipse(243, 413, 50, 20);
    ellipse(243, 419, 27, 20);

    //blush
    fill(blushRed, blushGreen, blushGreen);
    ellipse(132, 452, blushWidth, blushHeight);
    ellipse(356, 452, blushWidth, blushHeight);

    //mouth
    noFill();
    stroke(0);
    strokeWeight(mouthStroke);
    arc(243, 425, 75, 60, HALF_PI, PI);

}
//When the mouse is pressed variables are randomized
function mousePressed() {
    mouthStroke = random(1, 10);
    faceWidth = random(360, 420);
    faceHeight = random(360, 420);
    earWidth = random(100, 180);
    earHeight = random(120, 200);
    eyePatchW = random(65, 150);
    eyePatchH = random(150, 200);
    blushWidth = random(40, 85);
    blushHeight = random(20, 35);
    blushRed = random(150, 260);
    blushGreen = random(200, 220);
    blushBlue = random(175, 210);

}

Inspired by my love of pandas, I coded the image with the intent of playing with figure ground relationships, negative and positive space, and how it can inform the clarity of the image.

I started by coding the base image that is seen first, and through trial and error began coding the randomized variations.

ENwandu-Section D-Looking Outwards-02

 

3D Visualization of ‘Mydoom Worm’

‘Malwarez’ is a series of visualizations of worms, viruses, trojans and spyware code. The project is made possible through the development of a program by Alex Dragulescu, which allows him to track the API calls, memory addresses and other subroutines of the disassembled code. The program analyzes the disassembled code; mapping their frequency, grouping and density input into the algorithm, which then grows these virtual 3D organisms. My understanding of the algorithm is limited, but I think the patterns and rhythms recorded are what influence the organism, making each one unique. I truly admire the creativity behind such a project: Who thinks of  modelling a computer virus in 3D, and actually does it? Additionally, his projects are a true integration of art and technology, and in some ways, moves past that. The Malwarez project, in the most literal sense reveals the artistic potential of technology. The project is admirable because it kind of forces the audience to move past the ideology focusing on the ‘art of technology’ into the realm of technology as art, and vice versa.

His projects span multiple computational domains, so I suppose the algorithms involve mimic the complexity of the work he is doing as a designer, programmer, and visual artist. Malwarez gives these invisible coded threats a face, while also providing captivating visuals for things no one wants to deal with.

ENwandu-Project 01-Face

sketch

function setup() {
    createCanvas(600, 636);
    background(220);
    text("p5.js vers 0.5.12 test.", 10, 15);
}

function draw() {
  //background
  background(175, 200, 135);

  //hair
  noStroke();
  fill(0);
  ellipse(297, 225, 374, 374);

  //face
  noStroke();
  fill(117, 77, 37);
  rect(150, 177, 290, 266);
  quad(150, 442, 440, 442, 354, 595, 240, 595);

  //nose
  noStroke();
  fill(110, 70, 40);
  quad(280, 450, 320, 450, 335, 470, 264, 470);
  fill(121, 79, 37);
  triangle(280, 450, 300, 330, 320, 450);

  //ears
  noStroke();
  fill(117, 77, 37);
  arc(140, 349, 55, 90, HALF_PI, HALF_PI);
  arc(450, 349, 55, 90, HALF_PI, HALF_PI);
  //inner ears
  fill(110, 70, 40)



  //glasses
  noFill();
  stroke(77, 77, 77);
  strokeWeight(15);
  rect(129, 301, 152, 91);
  rect(309, 301, 152, 91);
  line(281, 320, 309, 320);

  //eyes
  noStroke();
  fill(256);
  ellipse(219, 349, 75, 44);
  ellipse(372, 349, 75, 44);

  fill(0);
  ellipse(230, 355, 32, 32);
  ellipse(384, 355, 32, 32);

  //eyebrows
  noFill();
  stroke(0);
  strokeWeight(12);
  arc(230, 220, 195, 120, HALF_PI, PI-0.8);
  arc(384, 220, 195, 120, HALF_PI, PI-0.8);

  //mouth
  noStroke();
  fill(27);
  quad(235, 510, 365, 510, 325, 560, 275, 560);
  fill(290, 30, 121);
  arc(300, 560, 48, 34, PI, PI);


  }

The assignment wasn’t too difficult. I first abstracted a picture of myself into shapes in Illustrator, and used this as the foundation for constructing my code.

Looking Forward_Voice Array_ENwandu

Voice Array – Rafael Lozano-Hemmer (2011)

Commissioned by the Museum of Contemporary Art, Sydney

 

‘Voice Array’ is an interactive intercom system translates an individual’s voice, into flashes of light that are pushed along the horizontal bands on an LED display. The unique blinking pattern is then stored as a loop in the first light array. For each new recording, all previous recordings are pushed down one position. As the installation is fed more sound, one can gradually hear the cumulative sound of up to 288 previous recordings. When one is pushed out of the array, it can then be heard on its own.

I’m really interested in sound design, and its role in architecture, as well as its potential as an artistic installation. The project is an engaging display that combines the auditory and visual to create a multisensory experience for all involved. Voice Array was brought to life using an intercom, 576 white LED lights, a holosonic speaker, and custom-made hardware and software. Not entirely sure of the precise nature of customization involved.

‘Voice Array’ is a sensuous experience that helps push forward the discussion of performative art, architecture, computational design, and interactive media.

The installation partnered with some well-known beat-boxers to perform with the installation like Voice Array – ‘The Art of Noyze’ featuring Rahzel.

A still image of the Voice Array, displaying the sound recorded through LED lights.