dchikows-Section C-Project-02-Variable Face

sketch

// David Chikowski
// Section C
// dchikows@andrew.cmu.edu
// Project-02



var eyeSize = 12;
var backFinTopX = 541;
var backFinTopY = 162;
var backFinBottomX = 540;
var backFinBottomY = 322;
var mouthOpenTopY = 234;
var mouthOpenBottomY = 245;



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

function draw() {
    background(130,163,196);

    noStroke();
    fill(191,94,71);
    ellipse(279,238,359,131);
    //Main body

    noStroke();
    fill(191,94,71);
    quad(80,231,139,202,136,277,81,248);
    //mouth

    noStroke();
    fill(130,163,196);
    triangle(79,mouthOpenTopY,80,mouthOpenBottomY,103,242);
    //mouth opening

    noStroke();
    fill(56,54,8);
    ellipse(137,232,eyeSize,eyeSize);

    noStroke();
    fill(191,94,71);
    triangle(240,145,205,182,336,188);
    //top fin

    noStroke();
    fill(191,94,71);
    triangle(backFinTopX, backFinTopY, 403, 242, backFinBottomX, backFinBottomY);
    //Back fin


}


function mousePressed() {
    // when the user clicks, these variables are reassigned
    // to random values within specified ranges. For example,
    // 'eyeSize' gets a random value between 12 and 22.

    eyeSize = random(12,22);
    backFinTopX = random(525, 541);
    backFinTopY = random(145, 162);
    backFinBottomX = random(515, 540);
    backFinBottomY = random(295, 322);
    mouthOpenTopY = random(234,246);
    mouthOpenBottomY = random(235,245);



}











I enjoyed this project as it was our first animation type project. I found it challenging because I don’t quite understand what the program is exactly doing as well as I would like. Although I am excited to learn more to create better animations in the future.

*I am not sure why the canvas is getting cut off.

eeryan-Project-02-VariableFace

sketch

//Erin Ryan
//eeryan@andrew.cmu.edu
//Lecture 1, Section C
//Project 02
var eyeSize = 20;
//face variables
var faceWidth = 100;
var faceHeight = 150;
var wink = 1;
//mouth variables
var mouthXone = 120;
var mouthXtwo = 140;
var mouthYone = 190;
var mouthYtwo = 190;
var mouthWidth = 10;
var mouthHeight = 10;
var mouthNumber = 1;
var rB = 40;
//body variables
var shoulderHeight = 265;
 
function setup() {
    createCanvas(300,300);
}
 
function draw() {
    background(255,255,210);
    //phone
    noStroke();
    fill(193,93,101);
    quad(45,140,70,150,70,212,45,200);
    var eyeY = height/2;//eye height
    //arm
    noFill();
    stroke(152,196,249);
    strokeWeight(10);
    beginShape();
    curveVertex(50,170);
    curveVertex(50,170);
    curveVertex(50,180);
    curveVertex(50,280);
    curveVertex(100,310);
    curveVertex(110,310);
    endShape();
    //shoulders
    noStroke();
    fill(50,80,109);
    rect(75,shoulderHeight,170,100,25,25,25,25);
    //face
    stroke(152,196,249);
    fill(197,255,237);
    strokeWeight(5);
    rect(100, 75, faceWidth,  faceHeight,25,25,40,40);
    var eyeLX = width / 2 - faceWidth * 0.25-10;
    var eyeRX = width / 2 + faceWidth * 0.25-10;
    stroke(50,80,109);
    noFill();
    //left eye
    strokeWeight(3);
    ellipse(eyeLX, eyeY, eyeSize, eyeSize);
    //mouth
    if(mouthNumber==1){
      noStroke();
      fill(193,93,101);
      arc(mouthXtwo, mouthYtwo, mouthWidth, mouthHeight,0,PI);
    }
    if(mouthNumber==2){
      stroke(193,93,101);
      line(mouthXone,mouthYone,mouthXtwo,mouthYone);
    }
    if(mouthNumber==3){
      noStroke();
      fill(193,93,101);
      ellipse(mouthXone,mouthYone,mouthWidth,mouthHeight);
    }
    //right eye
    if(wink==1){
      stroke(50,80,109);
      line(eyeRX-5, height/2,eyeRX+5, height/2);
    }
    else{
    noFill();
    stroke(50,80,109);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize); 
    }
    
}
 
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(75, 150);
    faceHeight = random(120, 180);
    eyeSize = random(10,20);
    mouthXone = random(120,130);
    mouthXtwo = random(140,150);
    mouthYone = random(180,190);
    mouthYtwo = random(155,165);
    mouthXthree = random(110,120);
    mouthYthree = random(155,165)
    mouthWidth = random(10,35);
    mouthHeight = random(5,25);
    mouthNumber = Math.floor((random()*3)+1);
    wink = Math.floor((random()*3)+1);
    eyeY = height/2 +(Math.floor((random()*7)+1));
    shoulderHeight = random(265,230);
    
}

I started off by tweaking the original template, finding slight differences like making the height of the eyes unequal, changing the radius of the curves of the face rectangle and adding strokes to different elements. I chose a color palette that I thought worked well with the simplistic faces I created, primarily desaturated primary colors.

After toying with conditionals and tweaking elements to give my faces different expressions, I decided that adding the context of a cell phone would tie my piece together. The different faces dictate how the phone is being used – are they taking a selfie? did they just read a text that irritated them?

mjanco – LookingOutwards02- Section B

Michelle Janco

LookingOutwards-02

Section B

I looked at the piece WAVES by Lia, created in 2016. WAVES is a generative installation that shows flowing virtual waves that continuously flow and never repeat the same way. I admire the beauty of this piece, as it appears like a moving painting. It does not change drastically, but with subtlety. The tiniest of details change and never repeat, which brings this scenic, digital “painting” to life. Lia describes that the direction of the waves is unchangeable, meaning the code written called for one directional movement. However, the patterns and layering of the waves themselves are always randomized, due to the randomized changes in details, rhythm, and scale. I also really liked that the project manifested into a backdrop for artistic performance, both enhancing itself and the performance, to make one beautiful piece. Lia shows that WAVES played at a concert, “Blades” behind the musicians. (link: http://www.liaworks.com/theprojects/waves/ ).

@C – Lâminas
(Pedro Tudela e Miguel Carvalhais) na Blackbox
2017.03.03 Gnration, Braga, Portugal
© André Henriques
www.facebook.com/ahphoto.portugal

 

mmiller5_Looking Outwards-2

Conway’s Game of Life, created by John Conway in 1970, is a generative “game” where cells live, die, or are created depending on the number of living cells around them.  Conway didn’t want the algorithm to lead to exponential amounts of growth but he also wanted the ruleset to be simple, so he based the rules around cell adjacency.  “Players” choose the starting conditions– which cells are alive– and from there the algorithm autonomously steps through generations leading to a wide degree of possible patterns including all cells dying, static lifeforms, self-replicators, and more.  What inspires me the most about this project is that from a simple ruleset, there is a great amount of complexity that can be created; that 4 basic rules leads to a system that creates wonderful patterns.  Communities have formed around discovering new properties in The Game of Life, and other versions of it have been created with different rulesets and cell types.

atraylor – Looking Outwards 02 – Section B

I spent a long time looking through different creative coding pieces and settled on Hydra a generative shadow maker, by Nicolas Barradeau. This piece takes silhouettes of animals, people, and objects and splices them together based on cuts the user makes. This results in blob-like hydra creatures and very satisfying sounds that accompany the creature creation.

I admire that this project is simple and yet is still fascinating. Taking pieces of objects that are recognizable, simplifying them and allowing the user to make decisions, makes this piece accessible, and yet it’s frustrating and exciting when you don’t get the result you expected. This piece allows the viewer to use their imagination similar to looking for shapes in the clouds or watching shadow puppets on the wall.

Lrospigl-LookingOutwards-02

The project I looked at was Flight Patterns by Aaron Koblin. As I was scrolling through the list of projects, this one stood out to me. There was so much happening I couldn’t look away. Unfortunately, there wasn’t much information on the site to let me know how this project came to be. From what I found on the site, they put in information from the FAA into a program that allowed them to visualize the information. This to me is really interesting, mostly because it resembles the most to what we are taught in design about being able to translate quantitive information visually to communicate a certain aspect of it.

flight pattern 1
flight pattern 2

It is also incredible how beautiful the outcome of these numbers and patterns are. By giving a visual aspect of the information, it also gives a better understanding of exactly how much america uses planes in concentrated areas.

 

daphnel-Looking Outwards-03

3D Printed Rings and Earrings

Jewelry can be created through several different forms of arts and devices; however, these pieces of jewelry seen in the photo above were made through 3D printing! I find this incredibly fascinating because I’ve seen many designers and inventors create things such as the Voxel Chair, but I’ve never seen 3D printing used in such a way for fashion. These pieces of jewelry were made by Theresa Burger from Morpheus. There is no specific date or title for these pieces of rings and earrings since Morpheus custom manufactures jewelry based on their client’s needs and wants. These small seashell design based earrings show only a small glimpse what Morpheus’s designers can create. I admire the fact that these designers are learning how to incorporate new machines and tools such as the 3D printers to generate new and different types of fashion into the industry.

abradbur-Looking Outwards 02-Section C

Just one of the limitless images that can be created by Tentasho.

This is an image that was created by the program Tentasho, an interactive exhibit displayed at galleries that will draw different images depending on the sliders guests use and how they move their finger on the touchscreen. Tentasho was created by LIA in 2016, and while it can be experienced as an interactive exhibit it is also generative, as it will begin to draw on its own if left to itself for too long. It is described as “impatient” taking control of the art out of the artists hands should they become to hesitant in their strokes. I find this exhibit inspiring because every image crafted by Tentasho is entirely unique, like several thousand art pieces in one. The images it produces are alien, yet the processes Tentasho uses to draw appear meandering and calming. The generative qualities of Tentasho also make the piece feel alive and whimsical. The algorithm used to make Tentasho must have had some aspect of randomization to it, and I think the organic look of the pieces it generates reflects LIA’s artistic sense in that they appreciate art that occurs by chance.

Here is the Tentasho page on LIA’s website.

sophiaq – Project2-VariableFace

sketch

//Sophia Qin
//15-104 Section B
//sophiaq@andrew.cmu.edu
//Project-02
var eyeSize = 20;
var faceWidth = 200;
var faceHeight = 250;
var eyeBrowHeight = 50;
var color = 50;
var hair = 30;

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

function draw() {
    //structure of the face
    background(255,color,0);
    //face is mid of canvas
    fill(0,0,color);
    strokeWeight(5);
    fill(color,200,20);
    ellipse(width/2,height/2,faceWidth,faceHeight);
    //eye position
    var eyeLX = width/2-faceWidth*0.25;
    var eyeRX = width/2+faceWidth*0.25;
    //drawing eye
    fill(50);
    ellipse(eyeLX, height / 2, eyeSize, eyeSize);
    ellipse(eyeRX, height / 2, eyeSize, eyeSize);
    //minieye
    fill(255);
    ellipse(eyeLX,height/2,eyeSize*0.5,eyeSize*0.5);
    ellipse(eyeRX,height/2,eyeSize*0.5,eyeSize*0.5);
    //eyebrow
    noFill();
    arc(eyeLX,height / 2,50,eyeBrowHeight, PI, 7/4*PI);
    arc(eyeRX,height / 2,50,eyeBrowHeight,PI+QUARTER_PI,0);
    //white mouth
    fill(255);
    ellipse(width/2, (height/2)+40,faceWidth/3,faceHeight/4);
    //mouth inside
    fill(color,0,10);
    ellipse(width/2, (height/2)+40+(faceHeight/8),faceWidth/4,faceHeight/6);
    //cheeks
    fill(250,192,255)
    ellipse(eyeLX,height/2+30,faceWidth/5,faceHeight/9);
    ellipse(eyeRX,height/2+30,faceWidth/5,faceHeight/9);
    //hair
    fill(20,39,hair);
    quad(width/2,height/2-(faceHeight/2)+30,(width/2)+faceWidth/2,height/2-(faceHeight/8),
        eyeRX,faceHeight/2,eyeLX,faceHeight/2);
    quad(width/2,height/2-(faceHeight/1.3),(width/2)+faceWidth/2,height/2-(faceHeight/1.3),
        eyeRX,faceHeight/2,eyeLX,faceHeight/2);
    quad(width/2+3,height/2-(faceHeight/1.3),(width/3)+faceWidth/3,height/2-(faceHeight/1.3),
        eyeRX,faceHeight/2+3,eyeLX+30,faceHeight/2);
}
    

function mousePressed() {
    //when the user clicks, the variables are reassigned
    //to random values within specified ranges. For example,
    //'face width' gets a random value between 75 and 150
    faceWidth = random(230, 300);
    faceHeight = random(220, 300);
    eyeSize = random(10, 40);
    eyeBrowHeight = random(30,80);
    color = random(100,255);
    hair = random(0,190);
}

I wanted the face shaped to be relatively similar and I wanted to look cartoony. I didn’t sketch out beforehand, and I figured out my plan of changing colors, sizes, hair, etc along the way

mstropka-Project02-Variable-Face

sketch

//Max Stropkay
//Section E
//mstropka@andrew.cmu.edu
//Project 02


//defining variables for points that define the shape of the face
var point1x = 405
var point1y = 75
var point2x = 405
var point2y = 565
var point3x = 75
var point3y = 565
var point4x = 75
var point4y = 75

//variables for colors
var r = 255
var g = 255
var b = 255

//colors for eyes
var r1 = 225
var g1 = 225
var b1 = 225

var eyesize = 20
var mouthsize = 2



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

}

function draw() {
  background(250);

//outside of face is drawn with a closed curveVertex shape
  strokeWeight(5);
  fill(r, g, b);
  beginShape();
  curveVertex(point1x, point1y);
  curveVertex(point1x, point1y);
  curveVertex(point2x, point2y);
  curveVertex(point3x, point3y);
  curveVertex(point4x, point4y);
  endShape(CLOSE);

//location of right and left eyes is driven by the points that control the outside of the face
//so that they always are drawn inside the shape of the head
  strokeWeight(2);
  fill(r1, g1, b1);
  ellipse(point1x - 40, point1y + 40, eyesize, eyesize);

  strokeWeight(2);
  fill(r1, g1, b1);
  ellipse(point4x + 40, point4y + 40, eyesize, eyesize);

//the mouth shape is made by dividing and multiplying the variables of the head shape
//to make a similar shape, but smaller
  beginShape();
  curveVertex(point1x/2, point1y*2);
  curveVertex(point1x/2, point1y*2);
  curveVertex(point2x/2, point2y/2);
  curveVertex(point3x*2, point3y/2);
  curveVertex(point4x*2, point4y*2);
  endShape(CLOSE);
  
//bags under eyes
  noFill();
  arc(point1x - 40, point1y + 40, 50, 50, 0, HALF_PI);
  arc(point4x + 40, point4y + 40, 50, 50, 0, HALF_PI);

}

function mousePressed() {

// when mouse is pressed, the points that define the face shape move
// within a range such that the outline will always take up most of the canvas
  point1x = random(205,405);
  point1y = random(75, 150);
  point2x = random(205,405);
  point2y = random(365,565);
  point3x = random(75, 150);
  point3y = random(365,565);
  point4x = random(75,150);
  point4y = random(75,150);

//when mouse is clicked, a random rgb value is assigned to colors
  r = random(0,255);
  g = random(0,255);
  b = random(0,255);

  r1 = random(0,255);
  g1 = random(0,255);
  b1 = random(0,255);
}

I tried to make a program that would randomly generate almost every aspect of the face, but also have all of the faces look similar enough that they could be related. My method for this was to create a shape using curveVertex points that would change every time the mouse is clicked and have all of the other features in the face defined by these points. I also added bags under the eyes to give the faces a little more character. One thing I couldn’t figure out was keeping the features from touching each other or going off of the face