rnayyar Project 02 variable faces

sketch

// Rhea Nayyar
// rnayyar@andrew.cmu.edu
// Section C
// Variable Face (02-C)



// W -> Width
// H -> Height
// Vert -> Vertical/Height
// Acr -> Across/Width

var headVert = 200;
var headAcr = 165;
var noseW = 28;
var noseH = 55;
var eyesW = 40;
var eyesH = 25;
var toplipW = 25;
var bottomlipW = 40;
var toplipH = 15;
var bottomlipH = 20;
var pupil = 6;
var iris = 20;
var eyebrowH = 8;
var eyebrowW = 45;


function setup() {
    createCanvas(500, 500);


}
//original face
function draw() {
  background(0, 178, 191);
  noStroke(0);
  fill( 116, 89, 71); //face color
  ellipse( 225, 250, headAcr, headVert); //head
  fill(145, 110, 89);
  rect(210,230,noseW,noseH); //nose
  fill(225);
  ellipse(180,220,eyesW,eyesH); //eye
  ellipse(265,220,eyesW,eyesH); //eye
  fill(74,61,92);
  ellipse(182,220,iris,iris);
  ellipse(263,220,iris,iris);
  fill(0);
  ellipse(182,220,pupil,pupil);
  ellipse(263,220,pupil,pupil);
  rect(160,190,eyebrowW,eyebrowH); //eyebrow
  rect(245,190,eyebrowW,eyebrowH); //eyebrow
  fill(182,74,117);
  ellipse(225,316,bottomlipW,bottomlipH); //bottom lip
  fill(121, 74, 94);
  ellipse(215,310,toplipW,toplipH); //top lip
  ellipse(235,310,toplipW,toplipH); //top lip

}
//randomized faces
function mousePressed() {
  headAcr = random(120, 230);
  headVert = random(180,265);
  noseH = random(45,67);
  noseW = random(25,35);
  eyesW = random(25,52);
  pupil = random(6,20);
  eyebrowH = random(5,20);
  toplipW = random(20,40);
  toplipH = random(12,20);
  bottomlipH = random(15,23);
  bottomlipW = random(33,45);
  iris = random(20,26);
}

A lot of experimenting with features had to go into this. Despite having previous knowledge from the self-portrait assignment on how to make a simple face with p5, I had to tweak things a lot for the ‘randomize’ process. Nevertheless, I’m starting to get the hang of correlating coordinates on the text editor to where the object I’m making would appear when I run the code. The faces look a little foolish but I like them 🙂

GarrettRauck-LookingOutwards-2

img_1105
Participatory art installation at The Architecture of Francis Kere: Building for Community at the Philadelphia Museum of Art.

Participatory art is a form of analog art that exploits the aggregate power of the public to create a work of art. In a way, participatory art is form of generative art; though, rather than relying on a digital algorithm, it is predicated on a set of physical constraints and rules and the autonomy of the participants. Indeed, good participatory art involves a clear framework or set of physical parameters that participants operate within, together, to ultimately generate an unexpected, authentic piece of art. The physical medium acts as the rule set; the participants act as the autonomous motors.

img_1115
Wall piece at the Francis Kere exhibit talking about the primary philosophy behind Kere’s work: participation.

This past weekend, I had the opportunity to visit an exhibit at the Philadelphia Museum of Art titled The Architecture of Francis Kere: Building for Community. Francis Kere is a German-trained architect from a small town in Burkina Faso (West Africa) called Gando. During his youth, he was the only child to be given the opportunity to leave his village to become educated. Since his training in Germany, he has committed his career to reinvesting his architectural knowledge into his home town of Gando. By including the community in the design and construction process, he is empowering them with the knowledge, skills, and optimism to modify their built environment and create more livable spaces for themselves.

img_1107
Detail view looking through the cellulated structure of the piece.

Part of Kere’s exhibit included a participatory art piece used to demonstrate the power of participation and collaboration in the creation of art and architecture. The piece was predicated on a simple framework consisting of plastic straws and a plastic cellulated wall structure. Participants were able to grab a straw from a bucket and stick it into the cellulated structure. They were able to select the color of their choice, the location of their straw in the wall, as well as the way in which their straw met the structure. The beauty to this system is that the basic parameters (i.e. the physical properties of the straws and the physical properties of the wall) do not lead to singular results. The straws can be bent or twisted or formed into loops, straws can be combined to form larger straws, colors can be clustered or patterned, straws can pass entirely through the structure and appear on both sides. Each of these conditions was evident in the piece when I visited it, and more conditions were continuing to be developed by participants while I was there. In the end, this type of participatory art leads to unique, unexpected results that are dependent on both a set of base constraints as well as the participants’ interpretation and creativity.

For more information about the work of Francis Kere, visit http://www.kere-architecture.com/.

GarrettRauck-Project-2

sketch

//Garrett Rauck
//Section C
//grauck@andrew.cmu.edu
//Project-02

///////////////////////////////////
//INIT VARS
///////////////////////////////////
//Layout parameters
var canvasWidth = 600;
var canvasHeight = 600;
var cx = canvasWidth/2;
var cy = canvasHeight/2;
var padding = 15;
var textY = canvasHeight-5

//Shape attributes
var normalStrokeWeight = 2;

//Face parameters
var faceWidth, faceHeight; //face
var chinWidth, chinHeight; //chin
var mouthType, mouthWidth, mouthHeight, mouthY; //mouth
var eyesType, eyesSpacing, eyesWidth, eyesHeight, eyesY; //eyes
var r, g, b;

//Names
var name;
var names = ["Mark","Steve","Kevin","Meredith","Kyle","Sharon",
             "Danny","John","Rachel","Sam","Nate","Will","Ashwath",
             "Gerry","Bob","Michael","Chris","Isaac","Alex","Gary",
             "Chloe","Anne","Maria","Sophia","Kelsey","Monica",
             "Phoebe","Marcos","Amy","Candace","Garrett","Sean",
             "Judy","Nico","Shannon","Alison","Margaret","Fuad",
             "Peter","Dave","Mary","Lisa","Susan"];

///////////////////////////////////
//HELPER FNS
///////////////////////////////////
function randomizeVars() {
    //face
    faceWidth = random(125,275);
    faceHeight = random(125,275);
    //chin
    chinWidth = random(125,275);
    chinHeight = random(125,275);
    //eyes
    eyesType = int(random(0,3));
    eyesSpacing = 100;
    eyesWidth = random(5,25);
    eyesHeight = random(5,25);
    eyesY = random(cy-eyesHeight/2,cy-faceHeight+eyesHeight/2);
    //mouth
	mouthType = int(random(0,4));
	mouthWidth = random(50, chinWidth-padding*2);
	mouthHeight = random(50, chinHeight-padding*2);
	mouthY = random(cy+mouthHeight/2,cy+chinHeight-mouthHeight/2);
	
	//skin color
	r = random(10,245);
	g = random(10,245);
	b = random(10,245);

	//name
	name = random(names);
}

function drawMouth() {
	if (mouthType == 0) {drawMouth0();}
    else if (mouthType == 1) {drawMouth1();}
	else if (mouthType == 2) {drawMouth2();}
	else if (mouthType == 3) {drawMouth3();}
}

function drawMouth0() { //toothy grin
	noStroke();
	fill(0);
	rect(cx, mouthY, mouthWidth, mouthHeight);
	fill(255);
	rect(cx, mouthY-mouthHeight/3, mouthWidth, mouthHeight/3); //teeth
	fill(127);
	rect(cx, mouthY+mouthHeight/3, mouthWidth, mouthHeight/3); //tongue
	stroke(0);
	noFill();
	strokeWeight(normalStrokeWeight);
	rect(cx, mouthY, mouthWidth, mouthHeight); //outline
	line(cx, mouthY+mouthHeight/6, cx, mouthY+mouthHeight/3);
}

function drawMouth1() { //basic line mouth
	stroke(0);
	strokeWeight(normalStrokeWeight);
    line(cx-mouthWidth/2, mouthY, cx+mouthWidth/2, mouthY);
}

function drawMouth2() { //basic circle mouth
	stroke(0);
	fill(25);
	strokeWeight(normalStrokeWeight);
	ellipse(cx, mouthY, mouthWidth, mouthHeight);
}

function drawMouth3() { //basic frown
    stroke(0);
    noFill();
    strokeWeight(normalStrokeWeight);
    arc(cx, mouthY, mouthWidth, mouthHeight, PI+PI/8, -PI/8);
}

function drawEyes() {
	if (eyesType == 0) {drawEyes0();}
	else if (eyesType == 1) {drawEyes1();}
	else if (eyesType == 2) {drawEyes2();}
}

function drawEyes0() {
	noStroke();
	fill(0);
	strokeWeight(normalStrokeWeight);
	ellipse(cx-eyesSpacing/2, eyesY, eyesWidth, eyesHeight); //left
	ellipse(cx+eyesSpacing/2, eyesY, eyesWidth, eyesHeight); //right
}

function drawEyes1() {
	noStroke();
	fill(255);
	ellipse(cx-eyesSpacing/2, eyesY, eyesWidth, eyesHeight); //left
	ellipse(cx+eyesSpacing/2, eyesY, eyesWidth, eyesHeight); //right
	fill(0);
	ellipse(cx-eyesSpacing/2, eyesY, eyesWidth/6, eyesHeight/6);
	ellipse(cx+eyesSpacing/2, eyesY, eyesWidth/6, eyesHeight/6);
}

function drawEyes2() {
	stroke(0);
	strokeWeight(normalStrokeWeight);
	line(cx-eyesSpacing/2-eyesWidth/2, eyesY, cx-eyesSpacing/2+eyesWidth/2, eyesY);
	line(cx+eyesSpacing/2-eyesWidth/2, eyesY, cx+eyesSpacing/2+eyesWidth/2, eyesY);
}

///////////////////////////////////
//RUN
///////////////////////////////////
function setup() {
    createCanvas(canvasWidth, canvasHeight);
    background(255);
    ellipseMode(CENTER);
    rectMode(CENTER);
    noStroke();
    randomizeVars();
}

function draw() {
	background(255);
	//face
	fill(r,g,b);
	rect(cx, cy-faceHeight/2, faceWidth, faceHeight);
	//chin
	fill(r,g,b);
	rect(cx, cy+chinHeight/2, chinWidth, chinHeight);
	//eyes
	drawEyes();
	//mouth
	drawMouth();

	//name
	noStroke();
	fill(0);
	textAlign(CENTER);
	textFont("Courier New");
	text(name,cx,textY);
}

function mousePressed() {
	randomizeVars();
}

For this exercise, I thought it was critical to define certain parameters that would allow each of the faces to be compared very easily. The face was simplified to an upper “face” rectangle and a lower “chin” rectangle, each of which was randomized with each generation creating unique but comparable facial shapes. Rather than changing the dimensions or inflection of facial features like the mouth and eyes, I thought it would be more interesting to have multiple “types” of eyes and mouths to suggest different expressions. These types would then respond to the dimensions of the chin and face, creating even more variety. Finally, I decided to add a name to each face. I created a list of possible names, hoping that viewers can relate to at least a few of them and have a laugh at what faces pair with what names. The randomization of color helps to bring the characters to life a bit and truly make them believable as individual personas.

Graham Wakefield-02-Looking Outwards

allotodtimeofdoubles1tod_soma

Graham Wakefield is a computational generative artist. He is not only an artist, but also a computer music composer and a software developer. It was interesting that he creates the whole new element(artwork) through ‘automatic algorithm’. One of his best known project ‘Artificial Nature’ series greets people to interact with an artwork digitally. Wakefield worked as a composer and artist Haru Ji participated in 3D sculptures.
He was inspired from the experiences of his childhood such as playing with his fingers in the river, path of marching insects, and so on. He also focused on natural patterns like gene structure, independent cell growth, metabolism and genetic mutation. This natural patterns are not recorded like video. All the works are programmed, so they actually show different outcomes depending on the environment. They deeply researched these natural phenomena, and tried to apply by programming as much as possible. I really admire that he tried to implement natural factors using “unnatural” factors by programming natural phenomena in detail, and moreover inviting visitors to interact with artworks.

 

Artificial Nature: Time of Doubles (Graham Wakefield/ Haru Ji)

Diana Connolly – Looking Outwards 2

2955

Light Sculpture of Flames is an art installation in Pace Gallery’s teamLab location in Menlo Park, CA. When I visited this gallery, this was the first piece that I saw and it was truly breathtaking. The teamLab artists created an installation using light bulbs organized in a gridded cube pattern, set to flash using an algorithm to mimic the movements of fire. The algorithm makes lightbulb clusters fire at a certain time, each with assigned hue and brightness. This setup adds a new depth to capturing the essence of fire, through the use of art. In 2D art, one can express the warmth of a fire, but can’t quite express the liveliness and volume. In 3D sculpture, one can express the volume of the fire better, but can’t express its movement or its internal workings. For Light Sculpture of Flames, the artists chose this 3D yet see-through light show for the sake of getting a sense of the fire’s volume while also being able to see its inner core. This ‘3D pointillism’ adds more depth to the perception of the fire, as the viewer is able to perceive the lively movements of the fire while also seeing its brighter internal layers contrasted with its dark red outer layers.

Link to the piece:
https://www.team-lab.net/works/light_sculpture_of_flames/

Light Sculpture of Flames beta ver from teamLab on Vimeo.

Project-02-Variable-Faces

sketch

/*
* Rachel Griswold
* rgriswol@andrew.cmu.edu
* Section B
* Project 02
*
*/

var faceWidth = 300;
var faceHeight = 300;
var eyebrowWidth = 50;
var eyebrowHeight = 10;
var eyeSize = 50;
var irisSize = 20;
var pupilSize = 10;
var noseBaseHeight = 75;
var noseBaseWidth = 30;
var noseTipHeight = 20;
var noseTipWidth = 30;
var noseTipArc1 = 3.14;
var noseTipArc2 = 6.28;
var mouthWidth = 20;
var mouthHeight = 20;
var mouthArc1 = 3.14;
var mouthArc2 = 0;
var irisColorR = 2;
var irisColorG = 174;
var irisColorB = 227;

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

function draw() {
	var eyeL = width/2 - faceWidth * 0.25
	var eyeR = width/2 + faceWidth * 0.25
	var eyeL2 = height/2 - faceHeight * 0.17
	var eyeR2 = height/2 - faceHeight * 0.17
	background(26, 26, 26);

	fill(223, 157, 151)
	ellipse(width/2, height/2, faceWidth, faceHeight) // face

	fill(0)
	ellipse(eyeL, eyeL2, eyebrowWidth, eyebrowHeight) // eyebrow L
	ellipse(eyeR, eyeR2, eyebrowWidth, eyebrowHeight) // eyebrow R

	fill(255)
	ellipse(eyeL, height/2, eyeSize, eyeSize) // eye L
	ellipse(eyeR, height/2, eyeSize, eyeSize) // eye R

	fill(irisColorR, irisColorG, irisColorB)
	ellipse(eyeL, height/2, irisSize, irisSize) // iris L
	ellipse(eyeR, height/2, irisSize, irisSize) // iris R

	fill(0)
	ellipse(eyeL, height/2, pupilSize, pupilSize) // pupil L
	ellipse(eyeR, height/2, pupilSize, pupilSize) // pupil R

	fill(223, 157, 151)
	arc(width/2, height/1.9, noseBaseWidth, noseBaseHeight, 3.14, 0) // nose base
	arc(width/2, height/1.75, noseTipWidth, noseTipHeight, noseTipArc1, noseTipArc2) // nose tip

	fill(109, 27, 30)
	arc(width/2, height/1.45, mouthWidth, mouthHeight, mouthArc1, mouthArc2) // mouth
}

function mousePressed() {
	// when mouse is pressed, variables are randomly reassigned
	faceWidth = random(200, 400);
	faceHeight = random (200, 400);
	eyebrowWidth = random(45, 75);
	eyebrowHeight = random(5, 25);
	eyeSize = random(30, 70);
	irisSize = random(15, 25);
	pupilSize = random(5, 15);
	noseBaseWidth = random(20, 40);
	noseBaseHeight = random(50, 100);
	noseTipWidth = random(30, 60);
	noseTipHeight = random(10, 60);
	noseTipArc1 = random(0, 6.28);
	noseTipArc2 = random(0, 6.28);
	mouthWidth = random(10, 60);
	mouthHeight = random(10, 40);
	mouthArc1 = random(0, 6.28);
	mouthArc2 = random(0, 3.14);
	irisColorR = random(0, 255);
	irisColorG = random(0, 255);
	irisColorB = random(0, 255);

}

I wasn’t a fan of my original face from project 01, so I decided to create a new base-face from scratch. I wanted to make the face vary a lot, but as a result sometimes the randomly generated face looks pretty stupid. I wasn’t quite sure how to balance “lots of variability” with “not looking ridiculous” but I tried my best.

Jess Medenbach – Looking Outwards -2

Péle-Méle” was a visiting installation exhibition at the Wood Street Galleries here in Pittsburgh by the French Artist, Olivier Ratsi.

The project is a projection installation that plays with lines and depth to continue the viewer’s eye line into the space. At first the image appears as a normal box shape but then as you stand still the boxes peel away, moving farther into the space and revealing more shapes, making you feel like you’re moving through a tunnel, although you are standing still. The installation is paired with music with a deep resonance, making the viewer feel as if they are entering another dimension or as some have described a “wormhole”.

What I admire about this piece is the strength in the simplicity. It’s a simple algorithm design, just boxes that start wide and get smaller and multiply…but it’s a really effective design that evokes a lot of emotional resonance.

SiminLi LookingOutwards-02

 

lo-2looking-outward-2http://roberthodgin.com/portfolio/work/body-dysmorphia/

Body Dysmorphic Disorder is a project by Robert Hodgin done in 2010 that like the title suggests addresses a disorder in which the affected are concerned about a physical feature that they have. The project uses a Kinect sensor (motion sensing input device) to record people’s moving bodies and instantaneously turn that into a display of exaggerated body parts. Kinect apps are written in C++, C#, or Visual Basic NET. The artist uses algorithms to push surfaces to make the user change shape. One intentional decision made was to blur the depth map that resulted in a smoother, more consistent surface.

People can’t help taking their hands up to touch their newly discovered bloated faces. I never knew about this kind of disorder before and this project has brought awareness to it in the best way possible. It allows us to experience the symptoms in a realistic way. It inspires me because it could be used to raise awareness for other disorders like synesthesia (which I have always wanted to experience). It could also promote better understanding of symptoms for doctors treating the disorders.

Check out the video:

LookingOutwards-02

Google’s DeepDream program, initially created to identify patterns in images with the goal of classifying them, is a generative art program that transforms normal images into surrealist art. The algorithm learns patterns in images and repeats them in order to create psychedelic, dream-like art. Google uses a “convolutional neural network” in this program, which is an artificial neural network based on the animal visual cortex. Because the program was developed by a company rather than an individual artist, no one artist’s “artistic sensibilities” really manifest in their algorithm; however, Google has a website that allows others to upload their own images and run them through the algorithm (and allows for varying degrees of distortion) which lets the user to bring their own artistic sensibilities. I find this particularly inspiring, as it isn’t just one person creating art, but an entire network of people.
It was released in July 2015.

deep_dreamscope_19822170718

TamiTedesco-LookingOutwards-02

Louise Naunton Morgan is a generational artists who creates traditional art pieces by imitating the algorithms by which printers print images. As a member of an ongoing project called “The Human Printer,” Morgan has become an expert at painstakingly transferring images by hand in order to create quasi-impressionistic pieces that juxtapose digital art with traditional methods.

abstraktabstrakt-louise-naunton-morgan-01

The juxtaposition of digital creation with traditional methods of art presents an interesting dialogue on the transition society is making from “old media” to “new media,” and is an example of the fluidity with which one can incorporate both methods of creation into producing artwork.

erik-kessle_11

In addition, The Human Printer project has three sections focused on different aspects of printing, such as tonal contrast, mass reproduction, and scale and distance. One can even order prints of particular images from the project. This interactivity with the audience allows the project to resonate more personally, and thus have greater artistic meaning.