Ean Grady-Project 2-Variable Face

sketch

//Ean Grady
//Section A
//egrady@andrew.cmu.edu
//Project-02

var x = 0
var y = 0
var z = 0
var x2 = 0
var y2 = 0
var z2 = 0
var b = 0
var n = 0
var m = 0
var trix1 = 160
var trix2 = 440
var rx1 = 205
var ry1 = 220
var rx2 = 315
var ry2 = 220
var w = 0
var e = 0
var r = 0
var i = 0
var o = 0
var p = 0
var size = 200

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

function draw() {
    background (255, 255, 200);
    noStroke();

    //hair petals
    fill (x2, y2, z2)
    ellipse (215, 210, 70, 60)
    fill (x2, y2, z2)
    ellipse (272, 180, 70, 60)
    fill (x, y, z)
    ellipse (180, 265, 70, 60)
    fill (x2, y2, z2)
    ellipse (180, 330, 70, 60)
    fill (x, y, z)
    ellipse (215, 385, 70, 60)
    fill (x2, y2, z2)
    ellipse (280, 420, 70, 60)
    fill (x, y, z)
    ellipse (360, 405, 70, 60)
    fill (x2, y2, z2)
    ellipse (405, 355, 70, 60)
    fill (x, y, z)
    ellipse (415, 290, 70, 60)
    fill (x2, y2, z2)
    ellipse (395, 230, 70, 60)
    fill (x, y, z)
    ellipse (344, 185, 70, 60)

    //purple body
    fill (120, 20, 200)
    ellipse(300, 500, size, 200)

    //face
    fill (200, 205, 255)
    ellipse (300, 300, 250, 250)

    //eyes
    fill(w, e, r)
    arc(240, 260, 80, 40, 150, PI + QUARTER_PI, CHORD);
    arc(360, 260, 80, 40, 150, PI + QUARTER_PI, CHORD);
    fill(i, o, p)
    arc(240, 260, 80, 40, 20, PI + QUARTER_PI, CHORD);
    arc(360, 260, 80, 40, 20, PI + QUARTER_PI, CHORD);
    fill(255, 255, 255)
    ellipse(360, 260, 20, 20)
    ellipse(240, 260, 20, 20)
    fill(0, 0, 0)
    ellipse(360, 260, 10, 10)
    ellipse(240, 260, 10, 10)

    //mouth
    fill(255, 20, 123)
    rect(270, 300, 60, 100)
    fill(0, 0, 0)
    rect(275, 305, 50, 90)

    //eyebrows
    fill (0, 0, 0)
    rect (rx1, ry1, 80, 20)
    rect (rx2, ry2, 80, 20)

    //triangle hat
    fill(b, n, m)
    triangle(trix1, 210, trix2, 210, 300, 100);
}

function mousePressed() {
    x = random(0, 255);
    y = random(0, 255);
    z = random(0, 255);
    x2 = random(0, 255);
    y2 = random(0, 255);
    z2 = random(0, 255);
    b = random(0, 255);
    n = random(0, 255);
    m = random(0, 255);
    trix1 = random(100, 160)
    trix2 = random(440, 500)
    ry1 = random(220, 200)
    rx1 = random(200, 220)
    ry2 = random(220, 200)
    rx2 = random(310, 320)
    w = random(0, 255)
    e = random(0, 255)
    r = random(0, 255)
    i = random(0, 255)
    o = random(0, 255)
    p = random(0, 255)
    size = random(200, 250)
}   

For this project, I didn’t use a pre-drawn sketch of mine, I instead went straight into programming which proved to be the main problem. I don’t mind how my variable face turned out, but in the future, I want to start employing the use of drawings more to make it more organized.

Eunice Choe – Project-02

sketch1

/*Eunice Choe
Section E
ejchoe@andrew.cmu.edu
Project-02
*/

// face shape
var faceW = 200;
var faceH = 250;
// eyes
var eyeSize = 30;
var eyePupil = 10;
// egg color
var eggColorR = 186;
var eggColorG = 215;
var eggColorB = 241;
// mouth
var mouthW = 40;
var mouthH = 15;
// nest
var nestW = 250;
var nestH = 70;
// brows
var browW = 20;
var browH = 5



function setup() {
    createCanvas(480, 640);
}
// background
function draw() {
    background(230, 160, 160);

// nest back
    noStroke();
    fill(106, 80, 71);
    ellipse(width / 2, height / 2 + 80, nestW, nestH);

// face
    noStroke();
    fill(eggColorR, eggColorG, eggColorB);
    ellipse(width / 2, height / 2, faceW, faceH);

// eye whites
    var leftEyeX = width / 2 - faceW*.2;
    var rightEyeX = width / 2 + faceW*.2;
    fill(255, 255, 255);
    ellipse(leftEyeX, height / 2, eyeSize, eyeSize);
    ellipse(rightEyeX, height / 2, eyeSize, eyeSize);

// eye pupils
    stroke(65, 44, 24);
    strokeWeight(7);
    ellipse(leftEyeX, height / 2, eyePupil, eyePupil);
    ellipse(rightEyeX, height / 2, eyePupil, eyePupil);

// mouth
    stroke(85, 85, 85);
    strokeWeight(4);
    fill(200, 120, 70);
    arc(width / 2, height / 2 + 30, mouthW, mouthH, 0, PI, OPEN);

// brows
    var leftBrowX = width / 2 - faceW*.3;
    var rightBrowX = width / 2 + faceW*.2;
    var browY = height / 2 - faceH*.15;
    fill(162, 114, 135);
    noStroke();
    rect(leftBrowX, browY, browW, browH);
    rect(rightBrowX, browY, browW, browH);


// nest front
    stroke(163, 136, 127);
    fill(124, 103, 95);
    arc(width / 2, height / 2 + 80, nestW, nestH + 100, 0, PI, OPEN);

// caption
    noStroke();
    textFont('Georgia');
    textSize(20);
    textAlign(CENTER);
    text('eggs for days!', width / 2, height / 2 + 200);

}

function mousePressed(){
    // face
    faceW = random(175, 225);
    faceH = random(225, 275);
    // eye
    eyeSize = random(20, 40);
    eyePupil = random(1, 20);
    // egg color
    eggColorR = random(225, 255);
    eggColorG = random(225, 255);
    eggColorB = random(225, 255);
    // mouth
    mouthW = random(10, 100);
    mouthH = random(5, 30);
    // brows
    browW = random(15, 40);
    browH = random(1, 10);


}

For this project, I was inspired by my love of eggs. I began experimenting with egg sketches on illustrator and ultimately decided to put my eggs in a nest. I also decided to change the color, eyes, brows, and mouth so that a new egg would appear on every click. This project was more challenging than the last one, but I still had a lot of fun.

Adam He – Looking Outwards – 02

Phoenix International Media Center, Designed by BIAD

The field of architecture has been developing a new type of design strategy in the past few decades. Based on conventional modern space designs, some architects are passionate about so-called “parametric design,” which is a style of architectural design that is generated through the use of algorithms and computer programming. One of the most well-known pioneers of this field is the principal of Zaha Hadid Architects Patrik Schumacher. Schumacher spearheaded this concept called “parametricism.” This type of  design methodologies are highly computer-based, employing 3D modeling softwares like Rhino and Revit, as well as scripting platforms like Grasshopper and GH Python. Generative modeling enables complex forms and structures to be created through scripts easily, which is almost impossible to model by hand. However, the fabrication methods are not caught up with the parametric designs that architects theorize today. Fabrication of parametric architecture requires an extraordinary amount of money and time. In fact, the original design of the 2020 main stadium of the Olympics in Tokyo, designed by Zaha Hadid, was renounced because of the difficulties in terms of the budget.

A render of parametric architecture by Patrik Schumacher

Though still encountering a lot of difficulties in the reality, parametric architecture is a theory that will dominate the architecture industry sooner or later. As architecture majors, we heavily focus on modern world software society, and we take generative modeling courses that teach grasshopper and gh python. Getting more familiar with parametric architecture, I am looking forward to capturing more of the yet abstract concepts and theories about algorithms in the field of art and architecture.

Hannah Cai—Project 2—Variable Faces

/* Hannah Cai
hycai@andrew.cmu.edu
Section C
Project-02-Variable-Face
*/

function setup() {
    createCanvas(640,480);
    background(250);
    rectMode(CENTER);
    ellipseMode(CENTER);
    angleMode(DEGREES);

    // color variables
    bodyR = 251;
    bodyG = 176;
    bodyB = 64;
    finR = 190;
    finG = 30;
    finB = 45;
    scaleR = 255;
    scaleG = 215;
    scaleB = 86;

    size = 1;
    shear = 0;
    gillWeight = (5); 
    showWhiskers = (1);
    whiskerAngle = (0);
    whiskerLength = (33);
    finStyle = 0;
    scaleStyle = 0;
    scaleDot = 0;
    scaleDotSize = 0;
    specimenNumber = 8108;
}

function draw() {
    background(250);
    // label
    textFont('Courier New');
    textStyle(ITALIC);
    textAlign(CENTER);
    textSize(20);
    noStroke();
    fill(0);
    text('Arowana',320,357); //species name
    textSize(14);
    text('Osteoglossidae',320,375); //scientific name
    textSize(10);
    textFont('Courier');
    text('specimen #'+specimenNumber,320,395); //"specimen # x"

    translate(320,240); 
    scale(size);
    shearX(shear);
    translate(-320,-240);

    // tail fins
    fill(finR,finG,finB);
    noStroke();
        // tail
        translate(455,213);
        rotate(-45);
        rect(0,0,112,112,0,40,100,40);
        rotate(45);
        translate(-455,-213);
        // top fin
        ellipse(390,151,71,47);
        // bottom fins
        if (finStyle <= 0.5) { //fin style 1: two short bottom fins
        shearX(35);
        rect(180,270,117,48,0,200,30,200);
        shearX(-35);
        rect(267,274,54,41,0,50,5,50);
        } else { //fin style 2: one long bottom fin
        shearX(35);
        rect(150,270,180,48,0,200,30,200);
        shearX(-35);
        noFill();
        stroke(finR,finG,finB);
        strokeWeight(1);
        arc(266,270,150,70,150,260);
        }

    // whiskers
    if (showWhiskers >= 0.5) { 
    noStroke();
    fill(bodyR,bodyG,bodyB);
    translate(137,151);
    rotate(-whiskerAngle);
    ellipse(-1,-17,4,whiskerLength);
    rotate(whiskerAngle);
    translate(-137,-151);
    }

    // body
    noStroke();
    fill(bodyR,bodyG,bodyB);
    arc(245,150,219,218,0,180); //head
    rect(322,204.5,170,109,0,100,100,0); //tail

    // scales
    strokeWeight(1);
    if (scaleStyle >= 0.5) { //scale style 1: outlines
        noStroke();
        fill(scaleR,scaleG,scaleB);
    } else { //scale style 2: half-circles
        noFill();
        strokeWeight(1);
        stroke(scaleR,scaleG,scaleB);
    }
    arc(223,168,34,34,-90,90); //row 1
    arc(223,204,34,34,-90,90);
    arc(223,240,34,34,-90,90);
    arc(240,185,34,34,-90,90); //row 2
    arc(240,221,34,34,-90,90);
    arc(257,168,34,34,-90,90); //row 3
    arc(257,204,34,34,-90,90);
    arc(257,240,34,34,-90,90);
    arc(274,185,34,34,-90,90); //row 4
    arc(274,221,34,34,-90,90);
    arc(291,168,34,34,-90,90); //row 5
    arc(291,204,34,34,-90,90);
    arc(291,240,34,34,-90,90);
    arc(308,185,34,34,-90,90); //row 6
    arc(308,221,34,34,-90,90);
    arc(325,168,34,34,-90,90); //row 7
    arc(325,204,34,34,-90,90);
    arc(325,240,34,34,-90,90);
    arc(342,185,34,34,-90,90); //row 9
    arc(342,221,34,34,-90,90);
    arc(359,168,34,34,-90,90); //row 10
    arc(359,204,34,34,-90,90);
    arc(359,240,34,34,-90,90);
    arc(376,185,34,34,-90,90); //row 11
    arc(376,221,34,34,-90,90);
    arc(393,204,27,34,-90,90); //row 12

    //scale details
    if (scaleDot >= 0.5) {
    noStroke();
    fill(scaledotR,scaledotG,scaledotB)
    arc(223,168,scaleDotSize,scaleDotSize,-90,90); //row 1
    arc(223,204,scaleDotSize,scaleDotSize,-90,90);
    arc(223,240,scaleDotSize,scaleDotSize,-90,90);
    arc(240,185,scaleDotSize,scaleDotSize,-90,90); //row 2
    arc(240,221,scaleDotSize,scaleDotSize,-90,90);
    arc(257,168,scaleDotSize,scaleDotSize,-90,90); //row 3
    arc(257,204,scaleDotSize,scaleDotSize,-90,90);
    arc(257,240,scaleDotSize,scaleDotSize,-90,90);
    arc(274,185,scaleDotSize,scaleDotSize,-90,90); //row 4
    arc(274,221,scaleDotSize,scaleDotSize,-90,90);
    arc(291,168,scaleDotSize,scaleDotSize,-90,90); //row 5
    arc(291,204,scaleDotSize,scaleDotSize,-90,90);
    arc(291,240,scaleDotSize,scaleDotSize,-90,90);
    arc(308,185,scaleDotSize,scaleDotSize,-90,90); //row 6
    arc(308,221,scaleDotSize,scaleDotSize,-90,90);
    arc(325,168,scaleDotSize,scaleDotSize,-90,90); //row 7
    arc(325,204,scaleDotSize,scaleDotSize,-90,90);
    arc(325,240,scaleDotSize,scaleDotSize,-90,90);
    arc(342,185,scaleDotSize,scaleDotSize,-90,90); //row 9
    arc(342,221,scaleDotSize,scaleDotSize,-90,90);
    arc(359,168,scaleDotSize,scaleDotSize,-90,90); //row 10
    arc(359,204,scaleDotSize,scaleDotSize,-90,90);
    arc(359,240,scaleDotSize,scaleDotSize,-90,90);
    arc(376,185,scaleDotSize,scaleDotSize,-90,90); //row 11
    arc(376,221,scaleDotSize,scaleDotSize,-90,90);
    arc(393,204,scaleDotSize,scaleDotSize,-90,90); //row 12
    }

    // eyes
    noStroke();
    fill(255);
    ellipse(172,165,25,25); //whites
    fill(0);
    ellipse(172,165,21,21); //pupil

    // gills
    noFill();
    stroke(finR,finG,finB);
    strokeWeight(gillWeight);
    arc(179,192,69,69,-40,105);

    // mouth
    strokeWeight(1);
    arc(94,204,138,138,-50,-15);

    // gill fin
    strokeWeight(gillWeight);
    fill(finR,finG,finB);
    ellipse(240,228,67,20);
}


function mousePressed() {
    size = random(.5,1.2);
    shear = random(0,15); //horizontal stretch
    showWhiskers = random(0,1);
    finStyle = random(0,1);
    scaleStyle = random(0,1);
    scaleDot = random(0,1);
    scaleDotSize = random(0,30);
    // color variables
    bodyR = random(100,250);
    bodyG = random(100,250);
    bodyB = random(100,250);
    finR = bodyR - random(50,150);
    finG = bodyG - random(50,150);
    finB = bodyB - random(50,150);
    scaleR = bodyR + random(50,100);
    scaleG = bodyG + random(50,100);
    scaleB = bodyB + random(50,100);
    scaledotR = scaleR - random(30,50)
    scaledotG = scaleG - random(30,50)
    scaledotB = scaleB - random(30,50)

    gillWeight = random(1,5);
    whiskerAngle = random(0,90);
    whiskerLength = random(30,50);
    specimenNumber = random(0,9999);
    specimenNumber = round(specimenNumber); //rounds specimen# to whole number
}

real arowana look like this:

a closer look at the whiskers

initial sketches with ideas for variations

/////

some variations from the final code 

I wanted to take a more scientific approach to the idea of generated variations, so I decided to focus my project on variations of an animal species. I chose the arowana because it’s one of my favorite animals, and because I wanted to try and capture its distinctive shape. Overall, I had a lot of fun with this project!

Kevin Riordan Looking Outwards-02-Section C

This video is called Fractal Meditation, and was made by William Rood using algorithms in I think 2017, based on when it was published. The creator used 3d Mandelbrot sets to create the fractals, and the only thing I know about the algorithm is that it uses spherical coordinates. I suppose the movement and generation is related to the music that plays, as the colors and what appears seem to be somewhat influenced by the sound. I admire how long the video is, and how unique every single part actually is. Nothing ever actually repeats, even though everything changes so gradually. I think usually when something is this long, parts repeat especially when the sound is so constant, because this video is meant to be meditative. However, because of whatever algorithm is used, everything is so complex and unique that I do not think it would repeat even if the video was an hour long, which I admire alot.

Curran Zhang-LookingOutwards-2

The focus of this project,GRIS, was to create an interactive reality for people to enjoy. Designed by Nomada Studio, the game was designed to allow players to explore the imaginative world or watercolors. Within the game, crimson mountains, cyan ruins, and irregular trees are created to feature the scene, which is sometimes more important than the character. Motions within the game mimics the property of water coloring on paper.

A part of the game where the setting is more important than the character

Nomada Studio started with game designers Adrian Cuevas and Roger Mendoza met artist Conrad Roset. GRIS is the company’s first production and brought upon the idea to beautifully blend art and gaming together. By using the different platforms and property of each theme, the production creates a very engaging perspective for gamer. This game is a representation of the mixture of fields in jobs. Even though game design is mathematical and very rigid, it was able to bring in the creativeness and playful aspect of art. Like this class, the game itself is a bridge that combines digital coding and art.

Various motions within the game are representations of water-coloring properties.
Usage of different color blends to bring out the mood

 

Article: https://www.thisiscolossal.com/2018/09/gris-video-game-by-nomada-studio/

Philip Gates – Looking Outwards 02

Ben Rubin – Shakespeare Machine (2012)

Shakespeare Machine installed in the lobby of the Public Theater, NYC. Photo by Ben Rubin.

Ben Rubin’s Shakespeare Machine uses an algorithm to select phrases or combinations of words from Shakespeare’s plays, and displays them on a series of 37 LED screens installed in a chandelier in the lobby of New York’s Public Theater. Each screen represents one play and displays text taken from that particular play.

The algorithm selects for various contextual and grammatical similarities (e.g. hyphenated adjectives, the word “you” plus any noun, nouns that describe the human body) and displays a phrase from each play at random.

Algorithm sorting for “you” + noun. Photo by Ben Rubin.

Rubin’s passion for data and the excitement of analyzing texts at a micro level (he has done several other similar projects) come through clearly in this piece. For me, this piece is a visually exciting way of demonstrating Shakespeare’s constant inventiveness as a writer. Its placement in the Public Theater, which produces New York’s free Shakespeare in the Park, is a perfect pairing of artwork and site.

Lingfan Jiang – Looking Outward – 02

(Installation Named “Visual Sound of the Amazon” done by Andy Thomas)

This installation is done by an Australian artist named Andy Thomas. It is a responsive artwork that visualized an audio collected from the Amazon rainforest.

The most fascinating part of this project is the idea of visualizing sound. Although it is super cool to look at the animation sequence, in the end, this project just had a cool look. However, the idea behind it could be used in so many ways in the future.

For example, this project could relate to helping the deaf people picture all kinds of sound, and let them be able to understand sound in a different way. Also, on the contrast, can picture or animation be transformed back into sound? If sound could be transformed into animation, could smell also do that? There are so many opportunities. Thus, I believe this project is just the beginning of the path!

Jisoo Geum-Project-02-Variable-Face

jgeumP02face

// Jisoo Geum
// Section B
// jgeum@andrew.cmu.edu
// Project-02
var eyeWidth = 35;
var eyeHeight = 70;
var faceWidth = 220;
var faceHeight = 220;
var mouthWidth = 10;
var mouthHeight = 10;
var bubbleOnex = 185;
var bubbleOney = 140;
var bubbleThreex = 290;
var bubbleThreey = 110;
var soapouterR = 252;
var soapouterB = 193;
var soapouterG = 204;
var soapinnerR = 252;
var soapinnerB = 207;
var soapinnerG = 204;




function setup() {
    createCanvas(640, 480);
    background(249, 240, 255);

}
 
function draw() {
     ellipseMode(CENTER);
    
    //face
    noStroke();
    fill(207,231,235);
    rect(121.859,189.318, faceWidth,  faceHeight, 50); //body or face
    ellipse (242.65,333.46, 281.586, 120.819); //arm

    //eyes
    fill(132,156,185);
    stroke (255);
    strokeWeight(9);
    ellipse(224.87,324.63,eyeWidth, eyeHeight); //left eye
    ellipse(286.56,324.63,eyeWidth, eyeHeight); //right eye

    //mouth
    noStroke();
    fill(243,141,154);
    ellipse(255.94, 376.31,mouthWidth,mouthHeight);

    //soap
    fill(soapouterR,soapouterB,soapouterG); // soap RBG 
    rect(383.44,269.56,52.33,90.693,20); //the outer shape
    fill(soapinnerR,soapinnerG,soapinnerB); 
    ellipse(410,315.11,20,55); //the inner shape

    //bubbles
    stroke(132,156,185);
    fill(255);
    ellipse(bubbleOnex,bubbleOney,22,22); //bubbleOne
    ellipse(232,150,18,18); //bubbleTwo
    ellipse(bubbleThreex,bubbleThreey,30,30); //bubbleThree
    ellipse(315,165,15,15); //bubbleFour

    //text
    noStroke();
    fill(132,156,185);
    textSize(48);
    textStyle(NORMAL);
    text ('Soap', 450, 200);


}
 
function mousePressed() {

    eyeWidth = random(20, 65);
    eyeHeight = random (20, 80);
    mouthWidth = random (10,50);
    bubbleOnex = random (80,185);
    bubbleOney = random (100,150);
    bubbleThreex = random (100,400);
    bubbleThreey = random (50,200);
    soapouterR = random (200,255);
    soapouterB = random (180,255);
    soapouterG = random (190,255);
    soapinnerR = random (200,255);
    soapinnerB = random (180,255);
    soapinnerG = random (190,255);

}



I began drawing various emotions in my sketchbook and illustrator. When I began coding, I realized that I wasn’t able to transcribe those images with my current abilities. I ended up simplifying the design. Overall, the project was enjoyable although it was more challenging.

Mimi Jiao – Looking Outwards 2 – Section E

Still Life (RGB-AV A) from Casey REAS on Vimeo.

Casey Reas is an artist who observes art through a technological and contemporary lense through coding, software, installations, and prints. As one of the creators of Processing, Reas has expressed interest in software and programming for artistic application starting from his undergraduate days. All of his works illustrate his interest in the intersection between technology and art, and his Still Life (RBG-AV A) and Still Life (HSB A)/Still Life (HSB B), created with custom written software, have caught my attention in particular. I am intrigued by the way technology is implemented to portray something that seems so primitive. The visuals of the pieces convey an aesthetic resembling to that of computers made in the early 2000’s or even before, with pixelated and “glitchy” visuals. Reas has taken visuals that occur as a result of technological imperfection and appropriated that into generative artwork and makes viewers begin to appreciate the beauty of the digital realm. His use of colors also further strengthen the sense of primitive technology, and he portrays a realistic rendering of such aesthetic. One thing that I thought he could’ve developed further upon was bringing technology into the experience of his video pieces such as his Still Life (RBG-AV A). As the sensory experiences also contribute to the presentation of his artwork, it would be interesting to see him play around with the technology of generative audio in tandem with his generated visuals. This type of work is something that I am really interested in creating, and I would love to learn more about his process behind it.