Caroline Song – Looking Outward 03

In response to the creation of GLASS II, which is a large-scale manufacturing technology that can 3D print transparent glass structures at architectural dimensions, an installation as part of Milan Design Week was made in 2017 by the Mediated Matter group.

These three columns of glass shown in the picture below have a constantly changing surface, being able to disperse and concentrate light from the inside and outside of the structure.

GLASS II Milan Design Week installation by the Mediated Matter group

I admire this project because of its use of glass, which is a beautiful but difficult medium to work with because of its fragility. 3D printing is such a commonality at this point, and bringing in a new medium for it to be able to print: glass, is interesting and very admirable.

I do not know much about the algorithms that produced this work, however I believe that the algorithm must have taken into account the constraints of the medium that it is working with. Because of the constantly changing shapes of the structure, the algorithm must have also been aware of that ever-changing surface area, and worked accordingly.

The artists’ creative tendencies manifest itself throughout the exhibit as the delicate fractals that create different shapes throughout the space, and the shifting forms of glass must have had to be precisely arranged and purposefully done in order to achieve some mood by the audience who is watching this exhibit.

YouieCho-LookingOutwards-03

Keyboard Frequency Sculpture by Michael Knuepfel, 2011

This is “Keyboard Frequency Sculpture” designed by a NYU design student Mie Knuenfel. This work caught my attention because it is simple, but a very straightforward computational digital fabrication showing a simple set of data. Although there are many other sophisticated works with abstract or complex data, as well, this work was inspiring for me because I could easily relate to and it seemed approachable to look into. This is a 3D visualization of the frequency of which keys on the keyboard are used. The frequencies are spatialized onto a QWERTY keyboard, represented in blocks of different heights. I think the artist was sensible in the way he created a rather straightforward representation with the Apple keyboard that most people are familiar with. I believe that creating computational digital fabrication with complex algorithms and high technology is important and appreciable, but it is also important to keep in mind how the work would appeal to its audience. This work spoke to me with its directness and clarity.

Process

Danny Cho_Looking Outward 2 – Generative Art

I looked into the Fractal Forums for inspiration for Generative Art. Mathematical patterns always seemed so beautiful to me especially in bigger scales. The way they enable me to imagine myself in the patterns was mesmerizing.

Steel

How such complicated shapes are created from lines of command texts amazes me. If I try imagine a human working on this kind of project, by painting or other kind of laborious means, I wouldn’t admire the work, not the artist’s grit, but the work. I would probably not be able to empathize with the artist, and think, “Wow, that is amazing, but why does that matter or what’s the value of that art that is so static?’ But knowing that this is generated by computer and can be manipulated to different scales and shapes makes it so much more versatile than just a painting to me.

About the way it was created, as it is mentioned in the name of the forum, I believe it used the fractal number pattern to generate the patterns, how from a number, infinite related numbers branch out as long as the pattern continues. What is interesting here is that this art contains more than one repeating pattern. The quicker spiral and slower spiral, and another pattern on the edges of the spirals.

The artist’s username is “Caleidoscope” and the post was created on 2017.

Ankitha Vasudev – Looking Outwards – 03

The Voxman Music Building at the University of Iowa was designed by LMN Architects in 2016. The architects used parametric modeling to explore the intersections of multiple theatrical disciplines. The concert hall features a suspended “theatroacoustic” system, unifying acoustics and lighting. I find this building inspirational because generative modeling was used to design and build the structure. The ceiling is assembled out of 946 unique, folded-aluminium modules that were digitally fabricated from modules digitally designed and fabricated from the architects’ parametric model. 

Internal photo of Voxman Music Hall

Using a series of generative-design scripts, the designers first protoyped and then created a unique architectural feature and used those same scripts to describe to the builder the geometry and construction sequence needed to fabricate and install the ceiling.

The builder then took the digital information computed by LMN’s generative algorithms directly to the fabrication floor, assuring absolute fidelity to the design the architects created, and manufacturing the system with computer-controlled accuracy.

Hence, without generative modeling, the design and construction of this building would have been impossible.

External facade of Voxman Music Hall
A video by LMN Architects explaining the design of the Voxman Music Building

Austin Garcia – Project 02 – Variable Face – 03


sketch

/*		Austin Garcia
		Section C
		aegarcia@andrew.cmu.edu
		Project - 02
*/
// Simple beginning template for variable face.
var eyeSize = 20;
var faceWidth = 60;
var faceHeight = 150;
var pupilSize = 5;
var randomColor = color(random(255),random(255),random(255));
//var eyebrowR = 225
//var eyebrowL = 115


function setup() {
    createCanvas(300, 300);
}

function draw() {
    background(180);
    fill(245, 245, 220)
    ellipse(width / 2, height / 2, faceWidth,  faceHeight);
    var eyeLX = width / 2 - faceWidth * 0.25;
    var eyeRX = width / 2 + faceWidth * 0.25;
    var pupilLX = width / 2 - faceWidth * .25;
    var pupilRX = width / 2 + faceWidth * .25;
    ellipse(eyeLX, height / 2, eyeSize, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize);
//  eyebrows
  //  line (eyeLX + 10, height - 100, eyeLX - 5, eyebrowL)
    //line (eyeRX + 10, height - 100, eyeLX - 5, eyebrowR)
//  pupils
    var randomColor = color(random(255),random(255),random(255));
    fill(randomColor)
    if  (mouseY > 150)
    fill(0)
    ellipse(pupilLX, height / 2, pupilSize, pupilSize);
    ellipse(pupilRX, height / 2, pupilSize, pupilSize);



  }
function mousePressed() {
    // when the user clicks, these variables are reassigned
    // to random values within specified ranges. For example,
    // 'faceWidth' gets a random value between 75 and 150.
    faceWidth = random(50, 100);
    faceHeight = random(100, 200);
    eyeSize = random(10, 30);
    pupilSize = random(2, 8);
  //  eyebrowL = random(100 - 120)
  //  eyebrowR = random(210 - 230)



}

Ilona Altman- project 2- variable faces

sketch


var thetime = 1
var othetime = 1
var clr= 1


function setup() {
    createCanvas(200, 20);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}



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

function draw() {
    background(215,126,107);

    //variables

    var x = 1/5*width;
    var y = 1/8*height;

    //moon static 
    fill(130+clr,170+clr,170+clr);
    circle(2.5*x,y,100);

    //moon dynamic
    fill(215,126,107);
    circle(2*x+othetime,y,100);

    //face base
    fill(235,150,140);
    circle(2.5*x, 5*y, 300);
    
    //moon eyes static 1 green
    fill(100+clr,140+clr,100+clr);
    circle(1.75*x, 4.5*y, 50);

    //moon eyes dynamic 1
    fill(235,150,140);
    circle(1.5*x+thetime,4.5*y, 50);

    // moon eyes static 2 green
    fill(100+clr,140+clr,100+clr);
    circle(3.25*x, 4.5*y, 50);

    // moon eyes dynamic 2 
    fill(235,150,140);
    circle(3*x+thetime, 4.5*y, 50);

}

function mousePressed() {
    thetime=random(-20,60);
    clr= random(-50,150);
    othetime=random(-150,150)
}

I had trouble getting the image to load earlier for some reason! Here is my project

Looking Outwards 02

One artist I’m inspired by is Joan Truckenbrod. Their work is really simplistic and is mostly line drawings that usually has no color. I really enjoy it because it seems like something that would be created in illustrator and may be duplicated in photoshop but it’s just algorithmic lines and im very intrigued by their work. I also like that it doesn’t seem complicated at all but the bridge or foundation of the art could be really complex. The output is beautiful but I wouldn’t really know how to replicate something like that and I find it inspiring.

Zee Salman-Project-02-Various Faces


sketch

//Zee Salman
//SECTION E
//fawziyas@andrew.cmu.edu
//Project-02-Variable-Face

// Simple beginning template for variable face.

//color for backgroung and earrings
var color1 = 100;
var color2 = 10;
var color3 = 30;
var eyeSize = 20;

//starter face
var faceWidth = 280;
var faceHeight = 340;
var eyecolor1 = 150;
var eyecolor2= 200;
var eyecolor3= 20;
var faceColor1 = 168
var faceColor2 = 84
var faceColor3 = 29
var nose = 30

//skin color variation
var skin1 = [141, 85, 36];
var skin2 = [198, 134, 66];
var skin3 = [224, 172, 105];
var skin4 = [241, 194, 125];
var skin5 = [255, 219, 172];
var skin6 = [255, 237, 209];
let skinPicks = [skin1, skin2, skin3, skin4,skin5, skin6]

//nose color 

var noseColor1 = [92, 44, 22];
var noseColor2 = [173, 122, 83];
var noseColor3 = [196, 152, 84];
let noseColorPicks = [noseColor1, noseColor2, noseColor3]
var skinColor = skin3
var noseColor = noseColor1

//neck shadow color
var neckShadow1 = [87, 47, 21];
var neckShadow2 = [92, 44, 22];
var neckShadowPicks = [neckShadow1, neckShadow2]
var neckShadowColor = neckShadow1

//smile variation
var smile1 = faceWidth/2.1 
var smile2 = faceWidth/2.8 
var smile3 = faceWidth/3.2 
var smilePick = smile3
let smiles = [smile1, smile2, smile3]
var smileColor1 = [140,25,69];
var smileColor2 = [201,125,154];
let smileColorPicks = [smileColor1, smileColor2]
var smileColor = smileColor1
var eyebrowsize = 7


function setup() {
    createCanvas(600, 600);
    
}
 
function draw() {
    

    background(color1, color2, color3)
   
//Hair
    
    fill('black')
    ellipse(width / 2.6, height / 2, faceWidth, faceHeight / 1);
    ellipse(width / 1.6, height / 2, faceWidth, faceHeight / 1);


//Neck
    fill(skinColor)
    noStroke()
    rect(width / 2.6, height / 2, faceWidth / 2, faceHeight / 1.6);

//Neck Shadow
    
    fill(neckShadowColor)
    ellipse(width / 2, height * .65, faceWidth / 1.7, faceHeight / 1.6);
//head
    fill(skinColor)
    strokeWeight(2)
    ellipse(width / 2, height / 2, faceWidth,  faceHeight);
 
//Ball on top of the Head   
    fill('black')
    arc(width/2, height/4.5, faceWidth / 2,faceHeight/4,180, PI, OPEN);
    
//eyes
    var eyeLX = width / 2 - faceWidth * 0.25;
    var eyeRX = width / 2 + faceWidth * 0.25;
    fill('white')

    var earLX = width / 2 - faceWidth * 0.5;
    var earRX = width / 2 + faceWidth * 0.5;

//Iris
    ellipse(eyeLX, height / 2, eyeSize * 2, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize * 2, eyeSize);

    fill(eyecolor1,eyecolor2,eyecolor3)
    ellipse(eyeLX, height / 2, eyeSize, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize);

//Pupil
    fill('black')
    ellipse(eyeLX, height / 2, eyeSize * .35, eyeSize * .35);
    ellipse(eyeRX, height / 2, eyeSize * .35, eyeSize * .35);


//EYEBROWS

    stroke('black');
    strokeWeight(eyebrowsize);
    noFill();
    beginShape();
    curveVertex(190, 350);
    curveVertex(200,265);
    curveVertex(260, 266);
    curveVertex(210, 296);
    endShape();
    
    stroke('black');
    strokeWeight(eyebrowsize);
    noFill();
    beginShape();
    curveVertex(330, 350);
    curveVertex(340,265);
    curveVertex(400, 266);
    curveVertex(350, 296);
    endShape();


 //Ears
    stroke(color2, color3, color1)
    noFill()
    ellipse(earLX, height / 1.7, eyeSize * .5, eyeSize * 1.3);
    ellipse(earRX, height / 1.7, eyeSize * .5, eyeSize * 1.3);
    
    noStroke()   
    fill(skinColor)
    ellipse(earLX, height / 1.9, eyeSize * .75, eyeSize * .9);
    ellipse(earRX, height / 1.9, eyeSize * .75, eyeSize * .9);


//nose
    noStroke()
    fill(noseColor)
    ellipse(295,340,nose,19)
    
//mouth

    fill(smileColor)
    arc(width/2, height/1.6, smilePick,faceHeight/5,0, PI, CHORD);
    
}
 
function mousePressed() {

	faceWidth = random(260, 300);
	faceHeight = random(320, 400);
	eyeSize = random(20, 50);
	eyecolor1 = random(100,200);
    eyecolor2 = random(90,150);
    eyecolor3 = random(10,50);
    nose= random(10,60)
    skinColor = random(skinPicks);
    neckShadowColor = random(neckShadowPicks);

    noseColor = random(noseColorPicks);
    smilePick = random(smiles);
    smileColor = random(smileColorPicks);
    
//background/earring color
    color1 = random(1,200);
    color2 = random(1,150);
    color3 = random(1, 200);
    eyebrowsize = random(3,8);
   
    
}

In doing this project, I wanted to make the faces look sort of like mt self portrait but with more details. It took a while to get what I wanted but Im really happy with what came out. I also got really comfortable with using lists and Im really excited to advance it even more.

Rachel Shin – Project 02 – Face Variables

I based this project off of my favorite Disney character – Baymax. I thought it’d be both interesting and fun to take on a quirky spin as I code to modify my favorite character.

Rachel Shin – Baymax

// Rachel Shin
// Section B
// Project 2 - Face Variable


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

   
}



var backgroundR = 200;
var backgroundG = 150;
var backgroundB = 100;
var bodyW = 300;
var bodyH = 450;
var faceW = 500;
var faceH = 400;
var eyeS = 25;
var blushR = 209;
var blushG = 117;
var blushB = 135;



function draw() {
	//background
    background(backgroundR, backgroundG, backgroundB);
    text ("Hello, I am Baymax, your personal healthcare companion.", 130, 80, 400, 20);

    //body
    fill("white");
    ellipse(200, 550, bodyW, bodyH);

    //face
    noStroke();
    fill("white");
    ellipse(200, 310, faceW, faceH);

    noStroke();
    fill(blushR, blushG, blushB);
    ellipse(140, 340, 50, 10);

    noStroke();
    fill(blushR, blushG, blushB);
    ellipse (260, 340, 50, 10);



    //eyes
    fill("black");
    rect(150, 310, 100, 5);

    fill("black");
    ellipse (140, 310, eyeS, eyeS);

    fill("black");
    ellipse (260, 310, eyeS, eyeS);
	
	//blush
	noStroke();
	fill(209, 117, 135);

}

function mousePressed () {
	backgroundR = random (0, 200);
	backgroundG = random (0, 200);
	bodyW = random (250, 300);
	bodyH = random (400, 550);
	backgroundB = random (0, 200);
	faceW = random (200, 400);
	faceH = random (200, 300);
	eyeS = random (25, 50);
	blushR = random (0,209);
	blushB = random (0, 117);
	blushB = random (0,135);
}