yushano-project-02-Variable-Face

yushano-project02

var noseSize = 20;
var noseWidth = 150;
var noseHeight = 100;
var faceWidth = 250;
var faceHeight = 250;
var earX = 80;
var earY = 66;
var eyeWidth = 25;
var eyeHeight = 40;
var eyeX = 150;
var eyeY = 160;
var eyeSize = 8;
var earnoseColor = 221;

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

function draw() {
    background(180,180,180);
    //draw the ears
    stroke(225,110,110);
    strokeWeight(3);
    fill(246,earnoseColor,earnoseColor);
    triangle(width/4, height/3, width/8*3, height/9*2, earX, earY);
    triangle(width/4*3, height/3, width/8*5, height/9*2, width-earX, earY);
    //draw the face
    fill(246,221,221);
    ellipse(width/2, height/2, faceWidth, faceHeight);
    //draw the eyes
    noStroke();
    fill(128,128,128);
    ellipse(width/8*3, height/5*2, eyeWidth, eyeHeight);
    ellipse(width/8*5, height/5*2, eyeWidth, eyeHeight);
    fill(250);
    ellipse(eyeX, eyeY, eyeSize, eyeSize);
    ellipse(width-eyeX, eyeY, eyeSize, eyeSize);
    //draw the nose outline
    fill(235,184,184);
    ellipse(width/2, height/5*3, noseWidth,  noseHeight);
    //draw the nose inside
    var noseLX = width/2 - noseWidth*0.25;
    var noseRX = width/2 + noseWidth*0.25;
    fill(246,earnoseColor,earnoseColor);
    ellipse(noseLX, height/5*3, noseSize, noseSize);
    ellipse(noseRX, height/5*3, noseSize, noseSize);
}

function mousePressed() {
    // when the user clicks, these variables are reassigned
    // to random values within specified ranges.
    noseWidth = random(100, 200);
    noseHeight = random(80, 150);
    noseSize = random(10, 40);
    faceHeight = random(200, 300);
    faceWidth = random(250, 350);
    earX = random(50, 90);
    earY = random(55, 75);
    eyeWidth = random(30,45);
    eyeHeight = random(30,60);
    eyeX = random(140,160);
    eyeY = random(150,170);
    earnoseColor = random(110,221);
}

When I designed this variable face, I want it to be a cartoon and cute face. That’s why I chose to do pig.

rkarp1 – Looking Outwards-02 – Generative Art – Section A

LIA – Waves (2016)

When I read the description for “Waves,” I thought, ok, I’m going to watch a video of some sine waves. When I pressed play, I was blown away. The video completely transformed my emotional state, and then some. I was immediately lulled into a calm, the sort that is stereotypically ascribed to spending time by a body of water. I could even hear the sounds of an ocean. I found myself raising the volume on my computer to try to hear the sound better–only to realize that the video had no sound, and the sound was in my head, brought up from my memory by the video itself.

Still from “Waves,” a generative installation by LIA

On the project’s site (linked at the top of the post), LIA doesn’t go into too many details about the algorithms by which she made “Waves,” but the project description explains that the algorithms allow for changes in rhythm and scale while keeping the direction constant. It is all randomly determined, making for endlessly new patterns. She calls it a “motion painting.” It reminds me of the exercises we did in class today, with the circle moving back and forth at different speeds–but it’d be as if the circle were allowed to leave the canvas and endlessly new, randomly-generated circles appeared directly behind it, forever.

In the About section on her website, LIA states that her minimalist work combines traditional drawing and painting with new digital and algorithmic aesthetics. The bio continues: “She focuses on the translation of certain experienced principles into abstract forms, movements and colours in order to allow the viewer to explore the same on a subconscious level.” I can attest to her success at that from my experience of “Waves.”

As highlighted on the project site, “Waves,” was displayed as part of a concert in 2017. I think “Waves” begs to be combined with music, as my response, which was also aural, did.

Waves @ concert “Blades” by @c (www.at-c.org), with Angelica V. Salvi, Ricardo Jacinto, João Pais Filipe, gnration, Braga. Portugal, 2017/03/03. Photos by gnration / André Henriques

rkarp1 – Project-02 – Variable Face – Section A

Rachel Karp Variable Faces

//face
var faceColorR = (0);
var faceColorG = (200);
var faceColorB = (40);
var faceWidth = 200;
var faceLength = 300;
var faceOutline = (3);

//mouth
var mouthColorR = (0);
var mouthColorG = (0);
var mouthColorB = (0);
var mouthSize = 100;
var mouthOutline = (2);

//eyes
var eyeColor = (0);
var eyeStroke = (255);
var eyeSclera = (6); // strokeWeight for the eye

//canvas
var canvasColorR = (0);
var canvasColorG = (0);
var canvasColorB = (0);

function setup() {
    createCanvas(640, 480);
    angleMode(DEGREES); // Change the mode to DEGREES
}

function draw() {

    background(canvasColorR, canvasColorG, canvasColorB);

    //face
    stroke(255);
    strokeWeight(faceOutline);
    fill(faceColorR, faceColorG, faceColorB);
    ellipse(width/2, height/2, faceWidth, faceLength);

    //mouth
    strokeWeight(mouthOutline);
    fill(mouthColorR, mouthColorG, mouthColorB);
    arc(width/2, height/2+faceLength/6, mouthSize, mouthSize, 0, 160, CHORD);

    //eyes color and outline
    stroke(eyeStroke);
    strokeWeight(eyeSclera);
    fill(eyeColor);
    
    //left eye
    ellipse(width/2 - faceWidth/4, height/2-faceLength/6, 20, 20);

    //right eye
    ellipse(width/2 + faceWidth/4, height/2-faceLength/6, 20, 20);

}

function mousePressed() {

    //face color
    //When clicked, face color changes randomly.
    faceColorR = random(0,255);
    faceColorG = random(0,255);
    faceColorB = random(0,255);

    //face size
    //When clicked, face width changes randomly, and face height changes in relation.
    faceWidth = random(100, 340);
    faceLength = random(faceWidth, faceWidth*3/2);

    //mouth color
    //When clicked, mouth color changes in relation to face color.
    mouthColorR = faceColorG;
    mouthColorG = faceColorB;
    mouthColorB = faceColorR;

    //mouth size
    //When clicked, mouth size changes in relation to face width.
    mouthSize = random(10, faceWidth/3);

    //eye
    //Stroke color remains constant.
    eyeStroke = (255);
    //When clicked, the size of the sclera (strokeWeight) changes.
    eyeSclera = random(1,18);

    //face outline
    //When clicked, face outline changes in relation to sclera size.
    faceOutline = eyeSclera/2

    //mouth outline
    //When clicked, mouth outline changes in relation to sclera size.
    mouthOutline = eyeSclera/3

    //canvas
    //When clicked, canvas color changes to match mouth color.
    canvasColorR = mouthColorR;
    canvasColorG = mouthColorG;
    canvasColorB = mouthColorB;

}

This project made me have to figure out a lot of things (some with the help of Maayan Albert during office hours) including how to make colors change and how to make sure different changing shapes (eyes, mouth) could stay inside a bigger changing shape (face). Once I figured out how to make colors change, I wanted to play with that a lot to play with how different colors can affect the viewer’s emotions. I also became interested in how outlines can change the emotional quality of an image. E.g., when the white around the eyes is really big, the figure seems afraid; when the white around the whole face is heavier, the figure seems more active and zany.

sntong-Project-02-Variable-Face

sketch
For this project, I wanted to create a “cheesy” looking slice of cheddar cheese. I was having fun and going along with the metaphor as I was coding for this assignment. As my second coding project I felt I had better understanding of the code basics and syntax and I hope I can move on to more complicated ideas and codes later on.

//Scarlet Tong
//sntong@andrew.cmu.edu
//Section A
//Project 02 - Variable Face

//Cheese Slice
var rectX = 320
var rectY = 240
var rectW = 180
var rectH = 130
var rectC = 10

//Eyes
var iStrokeWeight = 5
var eyeLX = 270
var eyeLY = 210

//Mouth
var mouthX = 280
var mouthW = 2

//Heart
var heartX = 224

//Colors
var black = 0
var faceG = 220
var faceB = 151
var heartC = 130
var backgR = 215
var backgG = 244

function setup() {
    createCanvas(640,480);
    background(215,backgG,255);

}

function draw() {
  background(backgR,backgG,255);

  //Cheese slice
  fill(255,faceG,faceB);
  noStroke();
  rectMode(CENTER);
  rect(rectX,rectY,rectW,rectH,rectC);
  //left eye
  stroke(black);
  strokeWeight(iStrokeWeight);
  strokeCap(SQUARE);
  line(eyeLX,eyeLY,eyeLX+25,eyeLY-10);
  //right eye
  line(eyeLX+50,eyeLY-5,eyeLX+75,eyeLY);
  //mouth
  ellipse(mouthX,mouthX-40,mouthW,mouthW*4);
  //heart
  fill(249,heartC,heartC);
  noStroke();
  ellipse(heartX,heartX-18,20,20);
  ellipse(heartX+15,heartX-24,20,20);
  triangle(heartX-4,heartX-9,heartX+25,heartX-28,heartX+26,heartX+1);

}

function mousePressed(){
  //Change in color for the background
  backgR = random(254,215);
  backgG = random(254,244);
  //Change in weight and height of the cheese slice
  rectX = random(300,340);
  rectY = random(220,160);
  rectW = random(120,200);
  rectH = random(120,170);
  rectC = random(0,25);

  // change in size od eyes
  iStrokeWeight = random(3,8);
  eyeLX = random(265,275);
  eyeLY = random(190,220);

  //Change in location of mouth
  mouthX = random(275,280);
  mouthW = random(1,4);

  //Change of location of heart on face
  heartX = random(210,230);

  //Different shades of color for the composition
  black = random(0,254);
  faceG = random(213,187);
  faceB = random(146,77);
  heartC = random(151,51);


}

sntong-Looking Outwards- 02


This image is taken from a series of drawings and medias made for a showcase. Daniel Cardoso Llach focused on the history of computational methods and technologies between the 1949 and 1976 and his other works in the showcase aims to track the evolution of new design representation, stimulation or other data processing software. His work sheds light into how the advancement of technology has changed how designers, engineers, and many across different fields to work, think and communicate their work. The image shown is generated by a custom software system made by Professor Llach to reconstructs Steven A. Coons’ mathematical technique for parametric surfaces.

The showcase will be open from September 22 to November 12 at the Miller Gallery in CMU.

image reference: http://grahamfoundation.org/grantees/5577-designing the-computational-image-imagining-computational-design

thlai-LookingOutwards-02

The Wombats – Techno Fan

 

Wombats – Techno Fan is generative music video created in 2010 by computational artist Memo Akten. Akten developed his own software using C++/openFrameworks to process video footage of the band. Akten goes into some detail of the process he went through to generate the footage – each raw video shot was edited quite heavily and separated into layers, which were then individually fed through Akten’s software. The software, I imagine, finds the most interesting points of the footage and movement and outputs a new sequence. There are different styles and “looks” applied to different video footage, resulting in a final compilation of a variety of colors and compositions. I wonder how this project would be different if he hadn’t used code and instead drew out each frame. I imagine the results would be extremely different because the randomness of each frame is what makes the video interesting.
The most admirable aspect of this project is that Akten uses existing software to he creates custom software in order to achieve his artistic vision. Not only is he successful in doing so, but the final piece is a visual stunner. He brings the final music video together in After Effects and Final Cut Pro.

mjnewman LookingOutwards-02, Section A

Roman Verostko is an American artist, who uses code and machinery to create meticulous flowing forms on paper. Verostko has produced works like Cyberflower VII (2000)

OLYMPUS DIGITAL CAMERA

using a pen attached on a point plotter powered by algorithms coded on the computer. What drew me (pun intended) to Verostko’s work is the effort he took to convert digital products into the physical ultimately creating an organic form constructed of many delicate, yet precise lines all through machinery. He first learned how to create form through algorithms with FORTRAN in 1970. He now uses elementary BASIC with DMPL to drive a Houston Instruments plotter (with inkwell pen attached) hooked up to a PC in order to translate the digital into physical. Verostko initially turned to art of the early 20th century for inspiration. He is specifically drawn to the “pure form” that artists such as Suprematist Kazimir Malevich and De Stijl artist Piet Mondrian were able to capture in their paintings. It personally makes sense to me that someone interested in algorithms to create artwork would be attracted to the simple and mathematical approach painters like Malevich and Mondrian had with their paintings. This video below demonstrates the precision and care Verostko places on his work, similar to his inspirations.

 

 

 

Looking Outwards 02

http://roberthodgin.com/portfolio/work/additionsubtraction/

“Addition/Subtraction”, Robert Hodgin, C++, 2010

There is a flow field simulation, “Addition/ Subtraction”, by Robert Hodgin in 2010, that attracts me a lot when I was browsing many generative artwork. Compared to other programing art that I have looked at, Robert Hodgin’s works are the most artistics and aesthetics. Actually, the title and the image drew my attention towards it at first. When I also saw the image of the artwork, I kind of feel the addition and subtraction in it. Then, I looked into the explanation that describes the artwork. The idea that this flow field simulation is generated from C++ vectors and lists surprised me because at the first sight, I can’t figure out how to do such a digital art. Also, the amount of work made me admire me a lot. “It involves 20,000 particles which react to external forces and can be reborn locally if they should happen to stray too far”. So, if the programmer gives it an attractive force (gravity), those particles will be pulled together. If the programmer gives it a repulsive force, those particles will, on the other hand, be pushed away in the rotating motion, either clockwise or counterclockwise. The idea of using the beauty of force to create the feeling of addition and subtraction really gives meaning to this work, making it not only a program but an artwork.

jknip-SectionA-LookingOutwards-02

Tangent

“Tangent” by Marcin Ignac (2012)

Marcin Ignac is a polish artist/programmer/designer exploring hybrid work including data visualization, programmable art, and more. Tangent is a form of generative animation created from studying surface curvature, where tracing lines are programmed to appear across the surface of a generated shape. I really enjoy this project as the tracing lines are able to give a sense of dimension and life to these otherwise seemingly flat, line drawings. As the form rotates in his video documentation, we begin to understand the flow of the curvatures at different perspectives — these intricate details are really engaging to watch. Tangent was created using Javascript, Plask, OpenGL and glsl. Ignac heavily utilized Plask, a multimedia programming environment utilizing processing and open frameworks, through Javascript. His artistic sensibilities were integrated in the algorithm through choice of color, composition, line weight, and motion; which work cohesively to create delicate, rotating 3D forms.

http://variable.io/tangent/
http://marcinignac.com/projects/tangent/
http://marcinignac.com/blog/data-art-with-plask-and-webgl/

hannahk2- Project-01

sketch

//Hannah Kim
//Section A
//hannahk2@andrew.cmu.edu
//Project-01

function setup() {
    createCanvas(600, 600);
    background(0, 38, 74);
}

function draw() {
	//triangle top
	fill(0, 142, 214);
	stroke(0, 92, 153);
	strokeWeight(7);
	triangle(205, 176, 268, 237, 416, 322);

	//head curve
	fill(0, 142, 214);
	stroke(0, 92, 153);
	strokeWeight(7);
	triangle(224, 186, 259, 255, 293, 217);

	//head triangle
	fill(0, 142, 214);
	stroke(0, 92, 153);
	strokeWeight(7);
	triangle(212, 243, 161, 306, 239, 308);

	//hair top curve
	bezier(203, 180, 294, 177, 390, 231, 438, 300);

	//head
	fill(0, 142, 214);
	stroke(0, 92, 153);
	strokeWeight(7);
	ellipse(293, 308, 276, 176);

	//top quad cover
	fill(0, 142, 214);
	noStroke();
	quad(233, 196, 250, 297, 410, 378, 350, 222);

	//hair mid section quad
	fill(0, 142, 214);
	stroke(0, 92, 153);
	strokeWeight(7);
	quad(158, 293, 128, 426, 466, 463, 413, 322);


	//bottom hair curve
	fill(0, 142, 214);
	bezier(130, 403, 77, 457, 168, 467, 363, 447);

	//face
	fill(214, 219, 223);
	noStroke();
	ellipse(291, 375, 242, 185);

	//peak
	fill(214, 219, 223);
	noStroke();
	triangle(291, 271, 214, 343, 366, 331);

	//right eye
	fill(238, 249, 236);
	stroke(0, 38, 74);
	strokeWeight(5);
	ellipse(426, 377, 166, 150);

	//left eye
	fill(238, 249, 236);
	stroke(0, 38, 74);
	strokeWeight(5);
	ellipse(200, 366, 166, 150);

	//right pupil
	fill(0, 0, 0);
	stroke(0, 38, 74);
	strokeWeight(5);
	ellipse(434, 379, 91, 92);

	//left pupil
	fill(0, 0, 0);
	stroke(0, 38, 74);
	strokeWeight(5);
	ellipse(200, 379, 91, 92);

	//top lip
	fill(147, 221, 220)
	ellipse(330, 415, 64, 18);

	//bottom lip
	fill(45, 198, 214)
	ellipse(330, 435, 64, 16);






}

This project was very hard for me as it was one of my first times coding. I am kind of embarrassed with my results, and had a very difficult time forming some shapes such as curves and whatnot, but once I learn how to use the different shape functions better, I think i will be able to make more successful drawings.