Alexandra Kaplan-Project 02

aekaplan.js

/* Alexandra Kaplan
   Section C
   aekaplan@andrew.cmu.edu
   Project-02*/

var headW = 250;
var headH = 300;

var eyeSizeW = 40;
var eyeSizeH = 60;
var eyeY = headH/1.3;

var pupilSize = eyeSizeW - 10;
var pupilY = eyeY;
var pupilR =0;
var pupilG =0;
var pupilB =0;

var noseW = 20;
var noseH = 25;

var mouthH = 1;
var mouthW = 1;

var hatH = headH/2.5;
var hatW = 320;
var hatR = 100
var hatG = 50
var hatB = 60


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

function draw() {
	background(200, 200, 230);
	strokeWeight(0);

	//draw head
	fill(220, 190, 160);
	ellipse(width/2, height/2, headW, headH);
	
	//draw eyes
	fill(255);
	var eyeXL = width/2 - headW/4;
    var eyeXR = width/2 + headW/4;
	ellipse(eyeXL, eyeY, eyeSizeW, eyeSizeH);
	ellipse(eyeXR, eyeY, eyeSizeW, eyeSizeH);

    //draw pupils
    fill(pupilR, pupilG, pupilB);
    ellipse(eyeXL, pupilY, pupilSize, pupilSize);
    ellipse(eyeXR, pupilY, pupilSize, pupilSize);

    //draw nose
    fill(200, 170, 140);
    ellipse(eyeXL/2 + eyeXR/2 , height/2 + headH/6 , noseW, noseH);

    //draw mouth
    fill(200,100,100);
    arc(eyeXL/2 + eyeXR/2, height/2 + headH/3, 30 * mouthW, 20 * mouthH, 0, PI + QUARTER_PI, OPEN);
    
    //draw hat
    fill(hatR, hatG, hatB);
    rectMode(CENTER);
    rect(hatW, hatH, headW + 20, headH/2, 100, 100, 10, 10);
}

function mousePressed() {

   //head size
   headW = random(200, 500);
   headH = random(200, 350);

   //pupil color
   pupilR = random(100, 255);
   pupilG = random(100, 255);
   pupilB = random(100, 255);

   //pupil location
   pupilY = random(220, 250);
   
   //nose size
   noseW = random(10, 50);
   noseH = random(10, 50);

   //mouth size
   mouthW = random(0.5, 3);
   mouthH = (0.5, 3);
  
  //hat color
  hatR = random(0, 255);
  hatG = random(0, 255);
  hatB = random(0, 255);

}

I found this project to be pretty difficult to wrap my head around at first, though as I continued on with the project it started to make more sense. As I got into the random manipulation, I started to enjoy myself more than when I was figuring out the arithmetic. I definitely want to use more variables in future projects so I can continue to get more comfortable with them.

Alexandra Kaplan-Looking Outwards-02

Image from Memo Atken’s “All watched over by machines of loving grace: Deepdream edition”

This is a work by the Generative Art artist Memo Atken called “All watched over by machines of loving grace: Deepdream edition”. It takes a birds-eye image of the GCHQ (Government Communications Headquarters, a British intelligence agency) which is then changed through a deep learning artificial intelligence program called Deepdream. This project caught my eye because it used technology to make a statement on the subject. The algorithm causes the distinct building to look like an infinite number of eyes staring back at you, which is an interesting and insightful comparison considering the purpose of the GCHQ.

I am very unfamiliar with AI and any algorithms/processes one can use to create art within them, so I did some further reading on the subject, and I came across a broken down version of the artistic process in an article Atken wrote:

“At a high level here’s what’s happening in #deepdream:

  1. An artificial neural network (i.e. the AI’s ‘brain’) has already been trained on over a million images (to recognise objects in the images)
  2. We show the trained network a brand new image
  3. While the network is processing this new image, we take a snapshot from a particular group of neurons inside the network
  4. We feed that new snapshot image back in, i.e. show it to the network (We can optionally apply small transformations, like zooming in etc.)
  5. Repeat”

Alexandra Kaplan-Looking Outwards-01

 

This video shows highlights from the AURA project.

The Moment Factory is an international company that specializes in interactive and media-based spaces and art. Their AURA project is a multimedia show located in the Notre-Dame Basilica in Montreal, which uses technology to completely alter the space through extensive projection-mapping.

I am unsure of all of the programs they used to create the content, but some of the in-process photos on their website show the program Cinema 4D. I can tell by looking through their in-process photos on their website that it was a very intensive and laborious process. I find this project inspiring in how the artists used the existing architecture and meaning of the space to create something transcendent, despite the many technological problems the space provided. They also combined visuals and sound in a very compelling way. Even though I am unsure how much coding was used throughout this project, I would be interested in learning more how code can be used in conjunction with programs such as Cinema 4D and other media creation programs.

 

Alexandra Kaplan-Project-01-Face

aekaplan-selfportrait

function setup() {
    createCanvas(600, 600);
    background(186,173,218);
}

function draw() {
 
    //hair
    strokeWeight(0);
    fill(60,40,30);
	//left side
	ellipse(130,400,90,100);
	ellipse(130,340,100,150);
	ellipse(140,280,100,150);
	ellipse(155,240,90,220);
	//back
	ellipse(170,400,100,100);
	ellipse(220,400,100,100);
	ellipse(260,400,100,100);
	ellipse(300,400,100,100);
	ellipse(340,400,100,100);
	ellipse(380,400,100,100);
	ellipse(420,400,100,100);
	ellipse(470,400,100,100);
	//right side
	ellipse(480,400,90,100);
	ellipse(470,340,100,150);
	ellipse(460,280,100,150);
	ellipse(450,220,80,150);

	//body
    fill(100,100,60);
    strokeWeight(0);
    ellipse(300,600,425,240);

    //neck
    fill(245,210,190);
    ellipse(300,513,160,80);
    rect(240,440,125,90);
    fill(235,200,180);
    ellipse(300,440,130,52);

    //head
    fill(255,220,200);
    rect(163,130,275,200);
    ellipse(300,300,280,330);

    //eyebrows
    strokeWeight(7);
    ellipse(240,260,80,40);
    strokeWeight(0);
    ellipse(240,265,90,40);
    strokeWeight(7);
    ellipse(360,260,80,40);
    strokeWeight(0);
    ellipse(360,265,90,40);

    //eyes
	//back
	fill(205,170,150);
	ellipse(240,275,70,40);
	ellipse(360,275,70,40);
	//front
	fill(255)
	ellipse(240,277,60,35);
	ellipse(360,277,60,35);
	//color
	fill(70,50,40);
	ellipse(240,275,30,30);
	ellipse(360,275,30,30);
	//pupil
	fill(0);
	ellipse(240,275,20,20);
	ellipse(360,275,20,20);
	
    //ears
    fill(255,220,200);
    ellipse(155,275,30,60);
    ellipse(445,275,30,60);

    //lips
    fill(200,138,120);
    ellipse(300,400,90,20);
    ellipse(280,395,60,20);
    ellipse(320,395,60,20);
    strokeWeight(2);
    line(255,395,345,395);
    line(245,390,255,395);
    line(355,390,345,395);

    //nose
    fill(255,220,200);
    arc(300,330,40,30,0,PI, PI + QUARTER_PI);

    //bangs
    strokeWeight(0);
    fill(60,40,30);
    ellipse(200,160,140,90);
    ellipse(160,200,70,125);
    ellipse(450,200,60,120);
    rotate(radians(10));
    ellipse(360,90,270,125);

}

I really enjoyed the freedom this project gave me to explore the basics of programming. As this is my first experience with coding, I really enjoyed seeing how I could make something appear just by writing a short line of code.

My process started with a quick napkin sketch of the general shapes I wanted and where they would be. I then mainly worked on guess and check with the exact placement of the shapes. In future projects, I want to be more careful in my planning and tracking of where different things are located to make the process a bit more streamlined.