Looking Outwards-02 Generative Art Travis Fitch-Veronica Wang

 

I am inspired by Travis Fitch’s art pieces that are generated from minimal surface geometries. I was introduced to his work by one of his former thesis advisors on minimal surface design and the process. He used Rhino modeling as well as a custom Grasshopper script to create a minimal surface module, with inputs being curves or meshes. I have also tried playing with similar scripts and using components such as ‘mesh relaxation’, ‘exoskeleton’, and ‘iso surface’. His wearable pieces were taking 3D printed rigid modules and connecting them to create a flexible piece of ‘fabric’. There are also many different materials in his products, including porcelain, metal, and nylon.

Project-02-Variable-Face-Veronica

sketch


/*
Veronica Wang
Section B
yiruiw@andrew.cmu.edu
Project-02
*/

var eyeSize = 20;
var faceWidth = 100;
var faceHeight = 150;
var ColorR = 255;
var ColorG = 255;
var ColorB = 255;
var smileY = 200;
var gray = 50;

function setup() {
    createCanvas(480, 640);

}

function draw() {
    background(255, 179, 48);

    //face
    noStroke();
    fill(120, 80, ColorB);
    ellipse(width / 2 - faceWidth / 2 + 25, height / 2 - faceHeight / 2 + 25, faceWidth * 0.5,  faceWidth * 0.5);
    ellipse(width / 2 + faceWidth / 2 - 25, height / 2 - faceHeight / 2 + 25, faceWidth * 0.5,  faceWidth * 0.5);
    fill('white');
    ellipse(width / 2 - faceWidth / 2 + 25, height / 2 - faceHeight / 2 + 25, faceWidth * 0.3,  faceWidth * 0.3);
    ellipse(width / 2 + faceWidth / 2 - 25, height / 2 - faceHeight / 2 + 25, faceWidth * 0.3,  faceWidth * 0.3);
    fill(120, 80, ColorB);
    ellipse(width / 2, height / 2, faceWidth,  faceHeight);

    //body
    fill(120, 80, ColorB);
    ellipse(width / 2, height - 90, faceWidth * 2, height - faceHeight);
    fill('white');
    ellipse(width / 2, height - 90, faceWidth * 1.5, height - faceHeight * 2);

    //eyes
    var eyeLX = width / 2 - faceWidth * 0.25;
    var eyeRX = width / 2 + faceWidth * 0.25;
    fill(gray);
    ellipse(eyeLX, height / 2, eyeSize, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize);

    //nose
    fill('black');
    ellipse(width / 2, height / 2 + 10, faceWidth / 5,  faceHeight / 8);

    //mouth
    var dist = height / 2 + smileY;
    noFill();
    stroke(255, 205, 0);
    strokeWeight(5);
    curve(eyeLX, height/2, eyeLX + 20, dist, eyeRX - 20, dist, eyeRX, height/2);
    
}

function mousePressed() {
    faceWidth = random(120, 180);
    faceHeight = random(120, 180);
    eyeSize = random(10, 20);
    ColorR = random(150, 220);
    ColorG = random(150, 220);
    ColorB = random(0, 100);
    smileY = random(faceHeight / 5, faceHeight / 3);
    gray = random(100, 255);
}

Initially I wanted to recreate Miyazaki’s Totoro, but it just started to look more and more like a bear so…it’s a bear now. I enjoyed working on this project and especially trying to figure out which/how geometries should be related. Some of the variables include body color/size, eye color/size, head size, ear size, etc.

Looking Outwards-01 Intr(e)Scapes light art exhibition-Veronica Wang

Intr(ə)Scapes @ Georgetown GLOW 2015 from SHO Architecture on Vimeo.

The Interscapes project is a landscape installation piece that senses people’s movement with an infrared sensor and signals the RGB LED system to react to visitors’ movements with a responsive lighting animation. The acrylic stalks mimic the movement and light-weightedness of swaying prairie grasses and embody “the kinetic energies and latent forces present within the environment”. I found it interesting how this piece was inspired by nature and is bridging technology with nature by mimicking/ recreating experiences. The responsive lighting also provides a playful, tangible and sensorial effect.

The team that designed this piece does a lot of interactive new media installations and parametric architectural design. On this project, they used custom software and hardware to achieve the infrared imaging system and responsive effect. They have previously designed similar installations at both the ACADIA exhibition and Harvard University.

Project-01-Face Veronica

Veronica Project 01 Face

//Veronica Wang
//Section B
//yiruiw@andrew.cmu.edu
//Project 01 Face


function setup() {
    createCanvas(600, 600);
    background(255,177,190);
   
}

function draw() {

	//hair
	noStroke();
	fill(161,129,83);
	ellipse(300, 250, 250, 250);
	rect(175, 200, 250, 250, 50);
	noStroke();
	fill(134,107,68);
	ellipse(300, 250, 240, 240);
	noStroke();
	fill(161,129,83);
	ellipse(310, 260, 250, 250);

	//face
	noStroke();
	fill(255,236,190);
	ellipse(300, 300, 200, 220);
	rect(275,375,50,70);
	ellipse(210,300,50,50);

	//hair
	noStroke();
	fill(161,129,83);
	ellipse(280, 210, 160, 100);
	ellipse(365, 210, 80, 80);
	rect(200,200,20,200,10);

	//earing
	noStroke();
	fill('white');
	ellipse(190,310,10,10);

	//eyebrows
	noStroke();
	fill(161,129,83);
	ellipse(270, 270, 70, 15);
	ellipse(365, 270, 50, 15);
	noStroke();
	fill(255,236,190);
	ellipse(270, 275, 80, 15);
	ellipse(365, 275, 60, 15);

	//eyes
	noStroke();
	fill(161,129,83);
	ellipse(270, 305, 50, 50);
	ellipse(365, 305, 50, 50);
	noStroke();
	fill(255,236,190);
	ellipse(270, 315, 60, 60);
	ellipse(365, 315, 60, 60);
	line()

	//shirt
	noStroke();
	fill(170);
	ellipse(300, 625, 400, 400);
	noStroke();
	fill(180);
	ellipse(300, 635, 400, 400);
	noStroke();
	fill(255,177,190);
	ellipse(300, 625, 300, 300);
	noStroke();
	fill(180);
	rect(180, 475, 240, 250);
	noStroke();
	fill(170);
	rect(180, 533, 10, 70);

	//mouth
	noStroke();
	fill(255,139,139);
	arc(300, 365, 45, 45, 0, PI + QUARTER_PI, OPEN);

	//nose
	noStroke();
	fill(229,217,163);
	arc(320, 330, 20, 20, -45,QUARTER_PI+QUARTER_PI, OPEN);

	//neck
	noStroke();
	fill(255,236,190);
	ellipse(300,447,100,50);

}





















I started by sketching out the face I wanted to draw in simple shapes, and then tried to put them into javascript. I don’t have much coding background and was struggling to create curves, so I used overlapping ellipses to draw curved eyebrows/eyes. I’m sure there are smarter ways to do this but I still had a lot of fun doing this exercise!