Project-02-Varying faces

sketch

//Sihan Dong
//sihand@andrew.cmu.edu
//Section B
//this program generates different faces of yound women


//setting up the variables and the default image (no mouse pressed)
var headpar = 150;
var mouthpar = 20;
var neckl = 50;
var bodwidth = 130;
var bodheight = 600;
var bulbstroke = 0;
var browarch = 40;
var eyestroke = 7;
var eyeht = 250;
var vertexX = 350;
var vertexY = 100;
var noi = 5;

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

function draw() {
  background(245,231,146);//creating the notebook effect
  var noteline1 = color(212,201,140);
  stroke(noteline1);
  line(0,40,480,40);
  line(0,80,480,80);
  line(0,120,480,120);
  line(0,160,480,160);
  line(0,200,480,200);
  line(0,240,480,240);
  line(0,280,480,280);
  line(0,320,480,320);
  line(0,360,480,360);
  line(0,400,480,400);
  line(0,440,480,440);
  line(0,480,480,480);
  line(0,520,480,520);
  line(0,560,480,560);
  line(0,600,480,600);
  var noteline2 = color(195,159,105);
  stroke(noteline2);
  line(80,0,80,640);
  line(85,0,85,640);

  var ballpt = color(52,57,136);//created the doodle face
  noFill();
  stroke(ballpt);
  strokeWeight(5);
  ellipse(290,250,headpar,1.25*headpar);//headshape
  ellipse(290-headpar/2+70,280,mouthpar,mouthpar);//mouthshape

  line(290,250+1.25*headpar/2,290, 250+1.25*headpar/2+neckl);//neckline_1
  line(290+noi,250+1.25*headpar/2,290+noi, 250+1.25*headpar/2+neckl);//neckline_2

  ellipse(290,250+1.25*headpar/2+neckl+bodheight/2,bodwidth,bodheight);//body
  ellipse(290,250+noi+1.25*headpar/2+neckl+bodheight/2,bodwidth-noi,bodheight-noi);

  arc(250,230,browarch,browarch,PI+QUARTER_PI, TWO_PI-QUARTER_PI);//left brow
  arc(320,230,browarch,browarch,PI+QUARTER_PI, TWO_PI-QUARTER_PI);//right brow

  strokeWeight(eyestroke);//eyes
  line (235,eyeht,255,eyeht);
  line (315,eyeht,335,eyeht);

  //a bulb will appear when the person gasps, so will the eyes open up
  // have fun clicking! :D
    if (mouthpar>35) {
      bulbstroke = 3;
      eyestroke = 25;
      strokeWeight(2);
      textSize(20);
      text("Eureka!",vertexX-150,vertexY-20);
      noFill();
      stroke(ballpt);//the bulb will not appear if the mouth is not open wide enough
      strokeWeight(bulbstroke);
      beginShape();
      vertex(vertexX,vertexY);
      vertex(vertexX+15,vertexY);
      vertex(vertexX+15,vertexY+20);
      vertex(vertexX, vertexY+20);
      endShape(CLOSE);
      line(vertexX,vertexY+10,vertexX+15,vertexY+10);
      ellipse(vertexX+15/2, vertexY-25,50,50);//the outer ellipse
      ellipse(vertexX+15/2, vertexY-15,15,30);//the inner ellipse
    }
    if (mouthpar<35) {
      bulbstroke = 0
      eyestroke = 7;
    }
}

//generating doodles
function mousePressed() {
  headpar = random(130,180);
  mouthpar = random(10,40);
  neckl = random (40,60);
  bodwidth = random (100,200);
  browarch = random (35,45);
  noi = random (-15,15);
  eyeht = random(245,255);
  //the light bulb shows up around the figure's head
  vertexY = random (80,120);
  vertexX = random (150,400);

}

This project was inspired by the ballpoint doodles I used to draw on my notes. I recreated the notebook background and the stroke color according to an online picture. A user can play with the doodle by clicking until the light bulb appears, signifying the “eureka” moment.

Looking Outwards – 02

Glenn Marshall’s Emergent Art

Self Portrait

This mesmerizing work is created by a honors-winning digital artist, though maybe not so well-known, Glenn Marshall. Marshall started off in the 90s as a 3D animation artist, where he relied heavily on commercial software like Cinema 4D to create his ideal visualization. However, unsatisfied with the limitations that come with off-the-shelf software, Marshall started using Processing to create unique code artworks, until he found an even better tool: combining Python SDK and Cinema 4D. He has been utilizing such a powerful tool to create unique algorithms and splendid visual effects.

His work immediately grabbed my attention because of its almost philosophical appearance. They resemble the perfect designs done by nature, like the golden ratio that’s present in the veins of a leaf or on the wings of a butterfly, despite the fact that these works are completely artificial.

Star Girl

The work that is shown above, Star Girl, as well as another work shown below, Particle Man, was created by tracing the trajectory of particles colliding onto a 3D sculpted surface. It is as much mathematical and scientific, as it is artistic.

This is what I would call ‘emergent art’, in that I have no preconceptions of the final result, but rather rely on the unexpected results of a complicated simulation system using natural forces to create the final piece.

-Glenn Marshall

Particle Man

Additional Links

LookingOutwards – 01

Love Has No Labels

In homage to the Selma March in 1965, the “Love Has No Labels” campaign by AdCouncil was based on a public service advertisement filmed at a live event in Santa Monica on Valentine’s Day 2015. During the filming, a large X-ray display created by Mindride LLC, a studio based in LA and NYC, was set up to show skeletons kissing, hugging, or dancing behind the screen, after which people stepped out and reveal their faces. The visual effect was not generated by an X-ray machine, however, instead was created by lifelike models powered by Xsens sensors and Maya. Xsens wireless sensors, which were hidden under clothes during the event, were used to capture and perfect the naturalistic motion for the event. As the center technology in the production, Xsens sensors possess promising features such as live-delivery, easy setup, superior compatibility with commonly used software, and affordability.

We are driving through this live motion capture, but we can really control any type of avatar; I feel like the digitization of the human is a very exciting space to be in.

– Yehuda Duenyas, Mindride LLC

In the meantime, AdCouncil is currently expanding the social impact of the “Love Has No Labels” campaign. The campaign this year, “#WeAreAmerica”, continues to circulate around social media newsfeeds, battling implicit biases by pushing videos and images of inclusion and acceptance.

Learn more about the creating process

Learn more about Mindride LLC 

Learn more about #WeAreAmerica

Learn more about other campaigns promoted by AdCouncil here

Project-01-Face

            Reflection

Since the basic elements in this portrait are restricted to simple geometric shapes, I decided to create a minimalistic portrait. The blue and yellow used in the portrait are selected from photos of minerals online.

Also, I stumbled across the code for generating random points automatically, so I decided to create a shimmering effect with it.

sihan_self portrait

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

function draw() {
	background(0);
  quad(100,100,150,150,100,150,150,100);

  var bg1 = color(221,159,35);
  fill(bg1);
  noStroke();
  rect(0,50,500,80);
  rect(0,180,500,30);

  var ri = color(27,102,205);
  var bg2 = color(200,81,35);
  fill(ri);
  noStroke();
  rect(0,450,500,45);
  rect(0,500,500,100);

  var skinlt = color(252,252,244);
  fill(skinlt);
  stroke(252,252,244);
  triangle(100,0,50,100,250,450);
  triangle(100,0,250,450,400,0);
  triangle(400,0,250,450,450,100);

  //cheek triangles
  triangle(70,110,110,350,250,450);
  triangle(430,110,250,450,390,350);

  fill(50);
  noStroke();
  ellipse(250,125,410,410);

  fill(skinlt);
  noStroke();
  ellipse(250,200,350,350);

  var lip = color(174,41,30);
  fill(lip);
  noStroke();
  ellipse(250,350,30,30);
  ellipse(250,320,40,40);

  var skindk = color(252,240,224);
  fill(skindk);
  stroke(skindk);
  quad(250,450,170,393,170,530,250,530);
  quad(250,450,330,393,330,530,250,530);
  ellipse(250,530,160,160);

  var ri = color(27,102,205);
  fill(ri);
  stroke(255);
  strokeWeight(5);
  ellipse(85,300,50,50);
  ellipse(415,300,50,50);

  stroke(50);
  strokeWeight(3);
  noFill();
  curve(5,26,200,30,400,250,50,100);
  curve(5,26,200,20,400,175,50,100);

  fill(0);
  noStroke();
  triangle(0,515,0,450,170,450);
  triangle(500,515,500,450,330,450);

  noFill();
  stroke(50);
  strokeWeight(10);
  arc(170,220,60,60,0,PI);
  arc(330,220,60,60,0,PI);

  stroke(80);
  strokeWeight(5);
  line(130,170,200,170);
  line(370,170,300,170);

  fill(250);
  stroke(251,191,46);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(85,random(330,430),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);
  ellipse(415,random(330,450),10,10);

}