Hyejo Seo-Project-02-Variable-Face

sketch

/*
Hyejo Seo
Section A
hyejos@andrew.cmu.edu
Project-02-Variable-Face
*/


var faceW = 300;
var faceH = 250;
var eyeH = 150;
var eyeW = 110;
var ex1 = 190;
var ex2 = 290;
var r = 240; 
var g = 72;
var b = 75; 


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

function draw() {
    background(47, 50, 47);
    //face
    fill(r, g, b);
    noStroke();
    ellipse(240, 530, faceW, faceH);
    // eyes
    fill(255);
    noStroke();
    ellipse(300, 520, eyeW, eyeH);
    ellipse(180, 520, eyeW, eyeH);
    // pupils
    fill(0);
    ellipse (295, 470, eyeW/2 - 20, eyeH/2 - 40);
    ellipse (185, 470, eyeW/2 - 20, eyeH/2 - 40);
    //exclamation mark
    noFill();
    stroke(221, 249, 193);
    strokeWeight(10);
    quad(ex1, 100, ex2, 100, 245, 250, 235, 250);
    circle(240, 320, 50);
}

function mousePressed() {
    faceW = random(150, 400);
    faceH = random(150, 300);
    eyeW = random(90, 130);
    g = random(0, 80);
    b = random(0, 100);
    ex1 = random(100, 190);
    ex2 = random(290,380);
    
}

Are you forgetting something? 

Oh, yes! 

Hyejo Seo – Looking Outwards 02

Mario Klingemann is a German artist who uses neural networks, codes, and AI to create generative art. He put images of portrait paintings from the 17th and 19th centuries into GAN (Generative Adversarial Networks), which then produces replica or newly generated portraits based on its own interpretations. GAN is a deep neural net architecture that consists of two nets, going one against the other; the generator and the discriminator. The generator takes in random numbers in order to create images. Then, those generated images are sent to the discriminator with a stream of images from a given dataset (i.e. images of paintings that were put in). The discriminator’s job is then to produce probabilities, a number from 0 to 1, where 0 represents authenticity and 1 represents fake.

Memory of Passerby I by Mario Klingemann

In Klingemann’s artwork, GAN isn’t simply duplicating old paintings (input). GAN decides its own aesthetic using a Tinder-like selection of what it finds aesthetic or not, and after studying its own interpretation of the basic features of a face, it produces an infinite stream of portraits that are rather uncanny and creepy. Personally, I always believed that art was a field AI could never achieve to learn, since there are no set of rules on how to express and create art. Creativity is unique to individuals since we all have different interpretation of the world and different ways of self-expression. Mario Klingemann’s pioneering artworks proved me wrong, and this is why they caught my eye. I am excited, at the same time, terrified to see what the future holds for the AI art.

Hyejo Seo – Project 01


hyejos-portrait

For my self-portrait, I tried to make it look as much as a line drawing as possible. I also wanted to bring focus to my eyes as I consider my eye liner (my eye makeup as I have been putting it on consistently for several years now) to be part of my identity. 

function setup() {
  createCanvas(600,600);
  background(255,255,249);

}

function draw() {

  //hair
  noFill();
  stroke(255,80,73);
  strokeWeight(8);
  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(140, 120);
  curveVertex(100,300);
  curveVertex(100, 530);
  curveVertex(220, 580);
  curveVertex(220, 500);
  curveVertex(125, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();
  line(300,30,300,75);

  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(460, 120);
  curveVertex(500,300);
  curveVertex(500, 530);
  curveVertex(380, 580);
  curveVertex(380, 500);
  curveVertex(475, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();

  stroke(255,80,73);
  strokeWeight(5);
  beginShape();
  curveVertex(300, 30);
  curveVertex(300, 30);
  curveVertex(140, 120);
  curveVertex(100,300);
  curveVertex(100, 530);
  curveVertex(220, 580);
  curveVertex(220, 500);
  curveVertex(125, 300);
  curveVertex(300, 75);
  curveVertex(300, 75);
  endShape();

//face
  noFill();
  stroke(255,178,217);
  strokeWeight(8);
  ellipse(300, 300, 350, 450);
  

  noFill();
  stroke('#00120B');
  strokeWeight(5);
  beginShape();
  curveVertex(350, 260);
  curveVertex(350, 260);
  curveVertex(375, 235);
  curveVertex(410,235);
  curveVertex(445, 260);
  curveVertex(445, 260);
  endShape();

  
  noFill();
  stroke(0);
  strokeWeight(3);
  beginShape();
  curveVertex(350, 260);
  curveVertex(350, 260);
  curveVertex(375, 275);
  curveVertex(410,275);
  curveVertex(445, 260);
  curveVertex(445, 260);
  endShape();
  
  //eyeliner - right eye
 
  fill(0);
  noStroke();
  beginShape();
  curveVertex(347, 260);
  curveVertex(347, 260);
  curveVertex(355,240);
  curveVertex(375,225);
  curveVertex(400,222);
  curveVertex(420,225);
  curveVertex(420,225);
  curveVertex(445,260);
  curveVertex(410,235);
  curveVertex(375,235);
  curveVertex(350,260);
  curveVertex(350,260);
  endShape();
  triangle(416,225, 475,240, 446,262)

   //left eye
   
   noFill();
   stroke('#00120B');
   strokeWeight(5);
   beginShape();
   curveVertex(250, 260);
   curveVertex(250, 260);
   curveVertex(225, 235);
   curveVertex(190,235);
   curveVertex(155, 260);
   curveVertex(155, 260);
   endShape();
 
   //under eye
  
   noFill();
   stroke(0);
   strokeWeight(3);
   beginShape();
   curveVertex(250, 260);
   curveVertex(250, 260);
   curveVertex(225, 275);
   curveVertex(190,275);
   curveVertex(155, 260);
   curveVertex(155, 260);
   endShape();
   
   //eyeliner - right eye
  
   fill('#00120B');
   noStroke();
   beginShape();
   curveVertex(253, 260);
   curveVertex(253, 260);
   curveVertex(245,240);
   curveVertex(225,225);
   curveVertex(200,222);
   curveVertex(180,225);
   curveVertex(180,225);
   curveVertex(155,260);
   curveVertex(190,235);
   curveVertex(225,235);
   curveVertex(250,260);
   curveVertex(250,260);
   endShape();
   triangle(184,225, 125,240, 154,262)

  //  pupils
  circle(215,245,35,35)
  circle(408,245,35,35)

  //eyebrows
  fill(0);
  beginShape();
  quad(257,185,170,180,170,190,255,200);
  endShape(CLOSE);
  triangle(170,180,130,200,180,190);
  endShape();

  fill(0);
  beginShape();
  quad(343,185,430,180,430,190,345,200);
  endShape(CLOSE);
  triangle(430,180,470,200,420,190);
  endShape();

  //nose
  noFill();
  stroke(223,253,255);
  line(290,240,285,340);
  stroke(223,253,255);
  line(310,240,315,340);
  arc(311,368, 90, 70, PI, PI + QUARTER_PI);
  noFill();
  stroke(223,253,255);
  line(290,240,285,340);
  stroke(223,253,255);
  line(310,240,315,340);
  endShape();
  arc(287, 368, 90, 70, -PI*1/4, 0);
  stroke()
  arc(300,430, 70, 30, 0, PI)
}

Hyejo Seo – Looking Outward 01

A picture of the “Portals” shipping container to which people would walk in to have a conversation with another person from different country.

I had an opportunity to learn about an interactive art project called “Portals”, created by a creative studio, Shared Studios, through my friend over the summer. How Portals work is that a person walks into a shipping container in which they talk to complete strangers from different backgrounds such as from Iraqi refugee camps, Afghan universities, Mexican public parks and German libraries through live feed. People are given with some ice breaker questions such as “What would make today a good day for you?” before walking in, but the rest of the conversation is up to them.  This project was launched in December 2014 by a former Washington Post reporter, Amar Bakshi, after traveling to 12 countries to report. His most memorable moments from his time visiting different countries were talking to complete strangers in each country. On his way back home, he brainstormed ways of connecting people from all over the world in more personal ways, and Portals was created. With a team of 16 people, the shipping container have been traveling to different cities in the US.

This project has struck out to me as it provides meaningful experiences between people separated by distance and differences and will further encourage them to be more open-minded and expose themselves to different cultures – resonating with my personal values. As a person who has been studying abroad – New Zealand, Canada, Singapore, now, America – since a young age, I have been pushed to step out of my comfort zones, which led me to learn and appreciate different cultures. Since I am aware that everybody’s experiences are unique, I hope to create creative and more fun ways to encourage people to learn about other cultures such as the Portals. 

A video on Shared_Studios Youtube page in which Amar Bakshi explains the story and purpose of his project, Portals.