ljkim Face Portrait

sketch

function setup() {
  createCanvas(600,600);
  background("#FFFFFF");
	fill("#39B778"); /*green*/
	noStroke();
	ellipse(300,300,470,470); /*circle*/
}

function draw() {
	
  fill("#EECE7A");
	noStroke();
	ellipse(300,260,270,270); /*face*/
	
	fill("#EECE7A"); 
	noStroke();
	ellipse(300,300,260,350); /*lower half of face*/
	
	fill("#E5B558");
	rect(300,300,10, 50); /*bridge of nose*/
	
	fill("#1E1E1E");
	rect(210,235,50,5); /*right eyebrow*/
	rect(345,235,50,5); /*left eyebrow*/
	
	fill("#FFFFF");
	ellipse(230,280,10,10); /*right eye*/
	ellipse(370,280,10,10); /*left eye*/
	
	fill("#1E1E1E");
	rect(150,200,50,240); /*right hair*/
	fill("#1E1E1E");
	rect(420,200,50,240); /*left hair*/
	
	fill("#1E1E1E");
	arc(310,220,320,200, HALF_PI*6, PI); /*bangs*/
  
}

So coding is new to me. Obviously. From a design stand point – I knew what I wanted but it was frustrating for me to not translate it to code. I hope for the end of the semester I can re-do this assignment and accomplish what I want. Here is what I ideally wanted it to look like: (2 iterations)

Lois Kim – Looking Outwards 01

Disney’s “Magic Bench”

https://www.youtube.com/watch?v=JnLk2_Xbr90

                                                   Disney’s Magic Bench interaction.

You sit on a bench with a mirror across from you – and an animated character walks over to sit next to you. Disney overcomes the barrier of a clunky headset often associated with augmented reality.

This was a breakthrough for augmented reality. No longer is a user tied to a piece of equipment to experience the “magic” of technology. The bench uses depth shadows to operate the experience. I admired how Disney was able to introduce a new way to experience augmented reality. It allows users to be equipment free and interact with whimsical characters.

I appreciate how Disney took into consideration the whole experience. Sound, sensation, and the visuals are all cohesive and included. For example, when it rains – the user feels rain droplets and the sound associated. This was a big component to why it was a success. It mirrors a real life experience. The one negative is that the user is forced to stare at a screen – which takes them away from the world. When augmented reality often times allows users to incorporate their world with the technology.

Augmented reality has been obviously up and coming. A big source and competition is Microsoft and their hololens.

 

ctv-project01-face

ctv-project-01-Face


function setup() {
    createCanvas(500, 500);
    background(255,211,155); //Burlywood 2
}


function draw() {
   
    //eyesCornea and iris
    fill(198,132,60);
    stroke(255);
    strokeWeight(30);
    fill(130,130,60);
    ellipse(334,166,100,100);
    ellipse(166,334,100,100);
    //eyesPupils
    fill(0);
    noStroke();
    ellipse(334,166,10,10);
    ellipse(166,334,10,10);
    
    //eyelids
     noFill();
    stroke(255,211,155);
    strokeWeight(75);
    //bezier(50, 400, 125, 125, 250, 320, 250, 250);
    //bezier(250, 250, 320, 250, 125, 125, 400, 50);
    
    //mouth
    noStroke();
    fill(255,0,0)
    triangle(400,500,450,500,450,450)
    fill(100,0,0);
    triangle(390,525,440,525,440,475)
    //hair
    fill(218,152,80); //use this RGB as highlights & darker for fill
    strokeWeight(0);
    triangle(0,0,0,290,290,0);
    //hairLines
    strokeWeight(2);
    stroke(198,132,60);
    line(0,250,25,275);
    line(0,200,50,250);
    line(0,150,75,225);
    line(0,100,100,200);
    line(0,50,125,175);
    line(0,0,150,150);
    line(0,250,175,125);
    line(0,200,200,100);
    line(0,150,225,75);
    line(0,100,250,50);
    line(0,50,275,25);
    line(0,0,300,0);


    
    
    
    noFill();
    stroke(0, 0, 0);
    strokeWeight(25);
    bezier(350, 450, 450, 350, 90, 90, 15, 80);
    

    
}

This face started with quick sketches in my sketchbook. I used the grid on the page to approximate the points I would use in the program. Once I had access to a computer, I was able to quickly write the code!

dchikows -Section C – Looking Outwards – 01

Drawing Water
Drawing Water
Drawing Water

 

David Wicks is an artist featured on the website Sans Umbrella to showcase his latest work titled “Drawing Water.” The project is essentially a creative visualization to illustrate the relationship of where water is falling and real data about where it is being consumed in the United States. The created animation is very beautiful. I appreciate how organic it’s movement feels especially because it was created by something far removed from nature. The idea behind Wick’s work points to how crucial a resource like water is to all of us as we use it everyday. By forcing someone to think about where his or her water came from it makes us as consumers more conscious that we are apart of a larger system. Opposed to having a view that your water is always ready to go for you when you turn on your sink.

See More of David Wicks’ work here

dayoungl – Project01

sketch

//Sharon Lee
//Section E
//dayoungl@andrew.cmu.edu
//Project-01
function setup() {
    createCanvas(400,600);
    background(133,205,240);
    angleMode(DEGREES);
}

function draw() {
    //hair
    fill(7,14,33);
    noStroke();
    ellipse(200,300,260,400);

    //arms
    fill(255,214,150);
    noStroke();
    rect(305,502,50,100);
    fill(255,214,150);
    noStroke();
    rect(45,502,50,100);
    
    //sleeves_left
    fill(240,255,255);
    noStroke();
    ellipse(290,500,130,140);
    fill(240,255,255);
    noStroke();
    quad(305,502,355,502,365,570,300,570);
    //sleeves_right
    fill(226,240,240);
    noStroke();
    quad(45,502,95,502,85,570,35,570);
    fill(226,240,240);
    noStroke();
    ellipse(110,500,130,140);

    //body
    fill(240,255,255);
    noStroke();
    quad(105,430,300,430,320,600,80,600);
    fill(226,240,240);
    noStroke();
    triangle(105,430,80,600,240,600);

    //tshirt lines
    stroke(255,207,81);
    strokeWeight(7);
    line(99,500,305,500);
    stroke(207,0,0);
    strokeWeight(4);
    line(99,510,305,510);
  
    //neck
    fill(255,214,150);
    noStroke();
    rect(165,380,70,50);
    fill(255,214,150);
    noStroke();
    ellipse(200,430,70,70);
    fill(191,160,112);
    noStroke();
    arc(201,380,70,85,0,160);

    //face shape
    fill(204,171,120);
    arc(195,230,185,350,0,180);
    fill(255,214,150);
    noStroke();
    //ellipse(200,230,185,200);
    arc(195,225,185,350,0,180);

    //hair1
    fill(7,14,33);
    noStroke();
    arc(110,160,240,200,0,100);
     //triangle(107,230,165,200,293,230);

    //eyes
    fill(7,14,33);
    noStroke();
    ellipse(163,288,34,17);
    fill(7,14,33);
    noStroke();
    ellipse(237,288,34,17);

    fill(255,255,255);
    noStroke();
    ellipse(165,290,30,16);
    fill(255,255,255);
    noStroke();
    ellipse(235,290,30,16);

    //pupils
    fill(7,14,33);
    noStroke();
    ellipse(random(160,170),290,12,12,);
    fill(7,14,33);
    noStroke();
    ellipse(random(230,240),290,12,12);

    //brows
    stroke(7,14,33);
    quad(142,270,179,270,180,272,139,272);
    stroke(7,14,33);
    quad(258,270,221,270,220,272,261,272);

    //nose
    stroke(255,186,130);
    strokeWeight(4);
    line(204,328,200,300);
    stroke(255,186,130);
    strokeWeight(3);
    line(197,331,204,328);

    //mouth
    fill(232,108,150);
    noStroke();
    ellipse(200,360,10,10);
    fill(161,44,75);
    noStroke();
    ellipse(200,362,8,6);
}

Joshua Brown (JDBROWN) – Jellyboi Portrait (Proj. 1)

Jdbrown-Sketch

function setup() {
    createCanvas(1000, 1000);
    background(104, 18, 63);
    text("p5.js vers 0.5.12 test.", 10, 15);
    createDiv("p5.dom.js library is loaded.");
    createDiv("Listen for 2 second tone to confirm p5.sound.js is loaded.");
    osc = new p5.TriOsc();
    osc.freq(220.0);
    osc.amp(0.1);
    osc.start();

    // JDBROWN - JOSHUA BROWN
    // JDBROWN@ANDREW.CMU.EDU
}

function draw() {
    if (millis() > 2000) {
        osc.stop();
        noLoop();
    }

    noStroke()

    fill (175, 80, 100);
    ellipse (520, 350, 250, 370);   // hair (back poof)

    fill (220, 80, 100);
    ellipse (266, 315, 100, 100);   // hair (side poof, back)

    fill (222, 132, 136);
    ellipse (400, 400, 350, 350);   // main face (light pink)

    fill (217, 113, 118);
    ellipse (467, 400, 215, 290);   // face shade (dark pink)

    fill (220, 80, 100);
    ellipse (410, 225, 390, 200);   // hair (main poof, top)

    fill (185, 80, 100);
    ellipse (525, 320, 100, 100);   // hair (side poof, upper right)

    fill (185, 80, 100);
    ellipse (560, 375, 100, 100);   // hair (side poof, lower right)

    fill (180, 80, 100);
    ellipse (455, 226, 300, 190);   // hair shade (main poof, top)

    fill (220, 130, 150);
    ellipse (275, 200, 30, 30);     // hair shine (smol, top)

    fill (220, 130, 150);
    ellipse (230, 300, 20, 20);     // hair shine (smol, side)

    fill (220, 130, 150);
    ellipse (250, 240, 50, 50);     // hair shine (bigger, top)

    fill (0);
    ellipse (300, 405, 15, 15);     // mouth (left)

    fill (0);
    ellipse (400, 405, 15, 15);     // mouth (right)

    fill (0);
    rect (300, 400, 100, 10);       // mouth bridge (center)

    fill (220, 150, 150);
    ellipse (400, 365, 10, 40);    // tear (right)

    fill (190, 120, 120);
    ellipse (300, 365, 10, 40);    // tear (left)

    fill (0);
    ellipse (300, 350, 10, 10);     // eye (left)

    fill (0);
    ellipse (400, 350, 10, 10);     // eye (right)

    fill (0);
    arc (400, 340, 50, 100, 180, PI, PIE);   // eye (right)

    fill (0);
    arc (300, 340, 50, 100, 180, PI, PIE);   // eye (right)

    fill (217, 113, 118);
    ellipse (350, 450, 50, 50);          // chin (dark)

    fill (222, 132, 136);
    ellipse (350, 460, 40, 40);          // chin (light)

}

/* Notes: Wednesday, Aug. 30, 2017

____________________________________________________________

    Week 1 Submission Notes: 
        Submit "Assignments" through AutoLab in a .zip file.
        Submit "Projects" as blogposts, through WordPress.

____________________________________________________________


    Co-ordinates and Drawing:

    For example: "line(1, 0, 4, 5);"
    This expression will draw a line from points (1,0) to (4, 5). These are modeled by (x, y).
    In computing, however, the axes are slightly different. X is conserved, with positive numbers
    going right, and negatives going left. But the Y axis is opposite; negative numbers go up, and 
    positive numbers go down. 

    For example: "rect(1, 2, 4, 3);" which is modeled by "rect(x, y, width, height);" 
    This expression will draw a rectangle from the point (x = 1, y = 2);

    In a more advanced way, you can use Mode commands (rectMode, etc.) to change the way in which
    the program interprets that data. rectMode(center), for instance, will draw the rectange from
    the center instead of the top-left corner, as "rect()" will. 

    When creating a new sketch, input the following code:

    function setup() {
        // put setup code here
        createCanvas(1000, 1000);
    }
 
    function draw() {
        // put drawing code here
    }

    This will allow the sketch to...sketch.

    ___________________________________

    Here is an introduction to shapes:

    in:

    function draw() {
        
        // draw a point:
        ellipse(x, y);                         modeled after "ellipse(x1, y1);"

        // draw a line:
        line(30, 30, 50, 50);                  modeled after "line(x1, y1, x2, y2);"

        // draw a rectangle:
        rect(30, 30, 50, 50);                  modeled after "rect(x1, y1, x2, y2);"
                                               where (x1, y1) is the first point (left, top)
                                               and (x2, y2) is the second (right, bottom).
                                               The rectangle will fill in from the first point
                                               to the second.

        // draw circle:
        ellipse(300, 300, 250, 250)            modeled after "ellipse(x, y, width, height);"
                                               where (x, y) plots the point of the center,
                                               width extends it sideways (width/2) in -x, / +x,
                                               and height entends it upwards (height/2) in -y / +y.

        // draw a triangle:
        triangle(30, 75, 50, 20, 85, 70);      modeled after "triangle(x1, y1, x2, y2, x3, y3);"
                                               where (x1, y1) are the co-ordinates for the first
                                               point (leftmost); (x2, y2) are the co-ordinates
                                               for the second point, and (x3, y3) are the co-
                                               ordinates for the third point (rightmost).
        
        // draw a quadrilateral:
        quad(30, 40, 50, 40, 60, 60, 70, 90);  modeled after "quad(x1, y1, x2, y2, x3, y3, x4, y4);"
                                               where each edge of the point, starting from the top-left
                                               and ending with the bottom-right, are plotted with each 
                                               pair of points (x1, y1), (x2, y2), etc.

        // draw an arc;
        arc(50, 55, 50, 50, 0, half_pi);       modeled after "arc(x, y, width, height, angle, angle, [mode]);"
                                               where (x, y) are the center of the arc's ellipse, (width, height)
                                               are the width and height of the ellipse. "angle, angle" are the
                                               angle values to start and stop the arc, respectively - this value
                                               is expressed in radians. [Mode] is either CHORD or PIE. 
    }
    ______________________________________________________________________________

    Drawing shapes is great, but perhaps we want the shapes to not look like shit?
    You can add many parameters before actually drawing the shape. You must add all
    setup information before drawing the shape, otherwise it will not work. 

    Parameters work top-to-bottom; if you write "fill(0)" on line 5, everything
    after line 5 will be "filled" with that color (in this case, black). 
    To redefine fill colors, you must write more "fill(x)" commands further down.

    Here is an introduction to parameters:

    fill(0);                to fill a shape black
    fill(255, 255, 255);    to fill a shape white
    fill(0, 56, 101);       to fill a shape a random color (RGB values)

    stroke(0);              to outline a shape in black
    stroke(255, 255, 255);  to outline a shape in white
    stroke(0, 0, 255)       to outline a shape in a color

    You can set the stroke weight (how thick the outline "stroke(x)" creates will be), with:

    strokeWeight (10);      in which (x) is a pixel value ("strokeWeight (10)" will create an outline
                            with a thickness of 10 pixels).

    noStroke();             will remove stroke from objects, since objects are stroked by default.
                            i.e. if you do not type 
__________________________________________________________________________________________________

*/

sophiaq-Project-01-Face

sketch

function setup() {
    createCanvas(600, 600);
    background(250,140,171);
    //text("p5.js vers 0.5.2 test.", 10, 15);
}

function draw() {
    //hair
    noStroke();
    fill(0);
    ellipse(300,280,300,400);
    //head
    strokeWeight(0);
    fill(255,232,212);
    ellipse(300,250,250,300);
    //body
    fill(140,217,250);
    ellipse(320,450,140,90);
    //neck
    fill(255,232,212);
    rect(300,380,40,30);
    //eyes
    fill(255,255,255);
    ellipse(250,250,30,30);
    ellipse(350,250,30,30);
    //pupil
    fill(0,0,0);
    ellipse(250,250,10,10);
    ellipse(350,250,10,10);
    //nose
    noFill();
    stroke(255,209,168);
    strokeWeight(2);
    arc(300,290,25,10,0,180)
    //smile
    noFill();
    stroke(255,158,206);
    strokeWeight(2);
    arc(300,330,30,50,290,90);
    //lips
    fill(255,158,206);
    ellipse();
    //cheek
    noStroke();
    fill(0);
    noFill();
    stroke(255,158,206);
    strokeWeight(2);
    ellipse(200,300,40,40);
    ellipse(400,300,40,40);
    //eyebrows
    noFill();
    stroke(0);
    arc(250,250,100,100, PI, 3/2*PI);
    arc(350,250,100,100,PI+QUARTER_PI,0);

}

It was a bit difficult figuring out the geometry of the face, so I tried my best! I think sketching it on photoshop would have been easier for me to code and to create a better looking face

JackieChou-project 01-face

sketch 2

//Jackie Chou
//Section E
//jwchou@andrew.cmu.edu
//Project-01
function setup() {
    createCanvas(600, 585);
    background(251,220,13);
    text("p5.js vers 0.5.12 test.", 10, 15);
}

function draw() {
	

	//neck
	noStroke();
	fill(211,166,161);
	rect(255,400,90,100);

	//head
	fill(224,195,200);
	ellipse(300,300,200,240);

	//hat
	fill(60);
	arc(300,240,170,150,PI,0);
	fill(0);
	ellipse(300,160,20,20);

	//face shape
	fill(251,220,13);
	quad(200,300,250,430,200,400,200,300);
	quad(400,300,350,430,400,400,400,300);

	//ears
	fill(224,195,200);
	ellipse(210,290,50,60);
	ellipse(390,290,50,60);

	//mask
	fill(20);
	rect(210,255,179,65);

	//masksides
	arc(210,287,33,64,HALF_PI,PI+HALF_PI);
	arc(389,287,33,64,PI+HALF_PI,HALF_PI);

	//maskholes
	fill(211,166,161);
	ellipse(263,283,45,35);
	ellipse(343,283,45,35);

	//maskholes
	fill(224,195,200);
	ellipse(258,283,45,35);
	ellipse(338,283,45,35);

	//eyes
	fill(245);
	ellipse(259,281,30,15);
	ellipse(341,281,30,15);
	fill(3);
	ellipse(252,281,10,10);
	ellipse(334,281,10,10);

	//mouth2
	stroke(173,140,137);
	strokeWeight(5);
	line(270,370,330,370);

	//nose
	noStroke();
	fill(211,166,161);
	arc(300,337,30,10,0,PI);


	//nose
    noFill();
	strokeWeight(3);
	stroke(136,104,101);
	noStroke();
	beginShape();
	curveVertex(300,290);
	curveVertex(297,290);
	curveVertex(315,320);
	curveVertex(292,322);
	curveVertex(293,310);
	endShape();
	noStroke();

	//shirt
	fill(50);
	ellipse(300,584,370,270);
	noFill();
	beginShape();
	vertex(70,600);
	vertex(150,515);
	vertex(255,475);
	vertex(345,475);
	vertex(450,515);
	vertex(530,600);
	endShape(CLOSE);

	//shirt-stripes
	fill(210);
	rect(170,500,260,10);
	rect(145,530,300,10);
	rect(135,560,330,10);



}

Robber, 2017
Digital self portrait.
Javascript.

For this project, I went through multiple iterations and phases. The toughest part was learning first how to utilize the different commands to create the shapes I wanted to use. Also, I didn’t learn how to organize my code until late in the process, which made managing my code harder. However, I picked everything up fairly quickly.

I also experimented and iterated how I wanted to represent my nose and my mouth.

I first went from a generic self portrait:

To a robber (I don’t know why, but I felt that it represented me).

dchikows – Section C – Project 01 – Self Portrait

sketch

function setup() {
    createCanvas(600,600);
    background(173,169,166);
}

function draw() {
    
    strokeWeight (0)
    fill(216,166,132)
    quad(340,441,273,441,242,600,376,600)

    strokeWeight (0)
    fill(132,87,57)
    rect(157,242,296,142,41)
  
    strokeWeight (0)
    fill(226,177,141)
    rect(171,267,267,253,41)

    strokeWeight (0)
    fill(132,87,57)
    ellipse(304,250,254,76)

    strokeWeight (0)
    fill(255,255,255)
    ellipse(355,327,70,20)

    strokeWeight (0)
    fill(255,255,255)
    ellipse(252,326,70,20)

    strokeWeight (0)
    fill(36,61,155)
    ellipse(252,326,31,20)

    strokeWeight (0)
    fill(36,61,155)
    ellipse(355,327,31,20)

    strokeWeight (0)
    fill(216,166,132)
    triangle(305,341,276,422,335,422)

    strokeWeight (0)
    fill(237,119,116)
    ellipse(305,460,86,28)

    strokeWeight (1)
    fill(237,119,116)
    line(262,460,347,460)

    strokeWeight (0)
    fill(0)
    ellipse(355,327,9,9)

    strokeWeight (0)
    fill(0)
    ellipse(251,326,9,9)










}

I thought it was interesting to see my self portrait come together shape by shape. I believe I also learned a lot by doing it especially since we had to research how to make it all happen. Furthermore, I enjoyed the creative process behind it.

katieche – project 01 face

katieche-01

function setup (){
	createCanvas (600, 600);
	rectMode(CENTER);
}

function draw (){
	background (229, 185, 185);

	fill (0);
	ellipse (300, 335, 250, 330);

// head
	strokeWeight (0);
	stroke (229, 213, 199);
	fill (255, 243, 219);
	ellipse (300, 300, 200, 220);
	rect (300, 400, 50, 70);

// hair
	fill (0);
	ellipse (315, 230, 150, 90);
	fill (0);
	ellipse (230, 250, 60, 30);
	fill (0);
	ellipse (300, 210, 150, 60);
	fill (0);
	ellipse (240, 235, 70, 40);

// nose
	noStroke();
	fill (229, 213, 199);
	triangle (287, 350, 300, 357, 312, 350);

// eyebrows
	noStroke();
	fill (0, 0, 0);
	rect (250, 290, 60, 7);	

	noStroke();
	fill (0, 0, 0);
	rect (350, 290, 60, 7);

//cheeks
	fill (247, 215, 215);
	ellipse (245, 340, 30, 30);

	fill (247, 215, 215);
	ellipse (355, 340, 30, 30);


// eyes
	fill (0);
	ellipse (250, 320, 30, 30);
	strokeWeight (3);
	stroke (0);
	line (230, 310, 250, 320);

	fill (0);
	ellipse (350, 320, 30, 30);
	strokeWeight (3);
	stroke (0);
	line (330, 310, 350, 320);

//shine
	noStroke();
	fill (250);
	ellipse (245, 315, 7, 7);

	noStroke();
	fill (250);
	ellipse (345, 315, 7, 7);



}

I started with a blank circle for the head, and made the features from the center out: from the nose to eyes, eyebrows, cheeks, and lastly, hair. There was a lot of guess and check involved with figuring out the location of the features. Wanted to include arcs or rotate objects, but had trouble figuring both of these out.