Connor McGaffin – Project-01-Face

sketch

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

}

function draw() {
background(255, 214, 89);
//shirt
	//dark blue
	fill(8,27,64);
	strokeWeight(0);
	rect(150, 450, 300, 200, 50);
	//neck
	fill(237,175,130);
	triangle(250,450,350,450,300,500);
	rect(250,425,100,25);
	//collar
	fill(36,45,64);
	triangle(300,500,250,430,230,450);
	triangle(300,500,350,430,370,450);
//hair
	fill(97,62,39);
	ellipse(300,150,300,200);
	ellipse(150,205,50,150);
	ellipse(450,205,50,150);
//head
	fill(237,186,149);
	triangle(300,450,150,400,450,400);
	rect(150,150,300,250);
	ellipse(150,295,50,80);
	ellipse(450,295,59,80);
	//more hair
	fill(97,62,39);
	ellipse(315,150,270,75);
	triangle(150,150,180,150,150,170);
	//eyebrows
	rect(200,215,60,15);
	rect(342,215,60,15);
	//nose
	fill(237,175,130);
	triangle(300,250,280,340,320,340);
	ellipse(300,335,40,40);
	//eyes
	fill(250);
	ellipse(230, 280, 80, 80);
	ellipse(370,280,80,80);
	fill(0);
	ellipse(230,280,30,30);
	ellipse(370,280,30,30);
	fill(237,186,149);
	//rect(200,230,200,15);
	//mouth
	fill(250);
	triangle(230,370,370,370,300,420);

	//mole
	strokeWeight(5);
	fill(98,63,39);
	point(330,447);
	//teeth
	line(260,390,300,390);
	//dimples
	noLoop();
	stroke(237,175,130);
	line(200,360,200,370);
	line(400,360,400,370);
	



}

Creating this self portrait was rather rewarding. I oftentimes struggled keeping track of the coordinates I was using, and I had to reorganize my code multiple times to sort this out. If I had more time, I would like to learn how to animate this portrait, just so that it feels more human and less static.

Jennifer Kong-Project01-Face

jkong1-selfie

/* 
Jennifer Kong
Section B
jkong1@andrew.cmu.edu
Project-01-Face
*/

// NOTE: a version of this exact code can be found on openprocessing. 
// https://www.openprocessing.org/sketch/584143
// I made that/the below code when I didn't have my personal laptop with me and needed to save my work somewhere.
// so I promise I'm not plagarising! 
// If needed to prove that code is mine, I can give log-in credentials to the account on openprocessing. 


function setup() {
    createCanvas(600, 800);
    background(255);
    fill(255, 193, 194); // cute pink sphere 
    noStroke();
    ellipse(300,300,500,500);

}

function draw() {
    makeHair();
    makeFace();
    makeEyes();
    makeBrows();
    makeMole();
    makeCowLick();
    makeNose();
    makeHairSweep();
    makeGlasses();
    makeMouth();
}
    
function makeHair() {
    // hair
    stroke(71, 57, 55);
    strokeWeight(150);
    line (250, 250, 173, 500);
    line (340, 255, 440, 475);

}

function makeFace() {
    //face
    noStroke();
    fill(255, 228, 175);
    ellipseMode(CORNER);
    ellipse(400, 347, 28, 40); // ear
    ellipse(179, 287, 223, 203); // top head
    ellipse(179, 204, 233, 229); // bottom head

}

function makeHairSweep() {
    // hair sweep
    fill(71, 57, 55);
    quad(270, 200, 323, 280, 430, 340, 380, 208);

}

function makeBrows () {
    triangle(328, 314, 348, 298, 350, 305); // right brow
    triangle(240, 320, 229, 304, 210, 305); // left brow 

}

function makeCowLick () {
    //shout out to processing.org/tutorials/curves/ for the explanation
    beginShape();
    curveVertex(290, 145); 
    curveVertex(290, 145);
    curveVertex(300, 172);
    curveVertex(299, 200); 
    curveVertex(299, 200); 
    endShape();

}

function makeNose () {
    // nose 
    fill (224, 180, 168);
    triangle(271, 399, 254, 414, 276, 422); 

}

function makeEyes () {
    // eyes
    fill(71, 57, 55);
    ellipse(206, 338, 28, 45);
    ellipse(325, 337, 34, 46);

}

function makeMole () {
    // mole
    noStroke();
    fill(71, 57, 55);
    ellipse(191, 388, 6, 6);

}

function makeGlasses () {
    //glasses
    fill(255, 255, 255, 100);
    rect(300, 355, 92, 57, 20);
    rect(164, 355, 92, 57, 20);
    strokeWeight(5);
    stroke(71, 57, 55);
    line(253, 370, 300, 370);
    line(390, 360, 415, 345); 

}

function makeMouth () {
    // mouth
    strokeWeight(3);
    line(256, 449, 278, 440);
    line(278, 440, 305, 450);  
    
}

Drawing in photoshop with plotted shapes.

The process was fun. I drew a sketch and uploaded to photoshop to find the exact coordinates of the the drawn features. My coding is a bit rusty but I still learned something new!

Jaclyn Saik Looking Outwards 01

Viewers wade into a pool of moving water and watch the projection around them

I have always been drawn to interactive art that is set up to transform entire spaces and redefine the audience’s sense of reality while experiencing the installation. The Japanese company teamLab, who has created a lot of popular interactive art installations and who I’ve seen pop up periodically in my newsfeed, created an interactive koi pond display that looks very interesting and complex. The viewer first walked into a pool of calf-high moving water, surrounded by darkness and mirrors so it appears never ending, and then watches as koi fish (light projections) dart around them and change speeds, crashing into their legs and exploding into an array of flowers.

The koi fish projection changes speed. Paired with the dark setting and mirrored walls, the paths of light appear infinite.

teamLab created this installation for the “Odaiba Minna no YUME-TAIRIKU 2016” festival in Tokyo, and works as a way to celebrate Japanese culture.

What I found especially interesting about this artwork is that the technical aspects of it are all geared towards teamLab’s “Body Immersive” space idea, this philosophy of work focuses on making ” the boundaries between the viewer and the work become more abstract.” I think light projections are a clever way to do this, since playing and restricting your ability to see highlights the interaction that the user can have with the projections.

Although stylized, the koi are highly detailed.

As far as how this system operates, the creators keep most of their information to themselves. Based on my little knowledge of using computer science in interactive art, I’m guessing this system uses spacial or motion sensors to detect where people are within the space, and then run a complex that can project these schools of koi fish swirling around the users and occasionally crashing into them. I would love ot one day be part of creating artwork where the code responds to a person’s movements and actions while they do something natural (rather than directly interact with a machine).

Rebecca Kim-Project 01-Face

rebecca-portrait

/* Rebecca Kim
Section C
rykim@andrew.cmu.edu
Project-01
*/

function setup() {
    createCanvas(600, 600);
    background(250,220,220);

    // text("p5.js vers 0.7.1 test.", 10, 15);
}

function draw() {


	//hair
	strokeWeight(0);
	fill(20,40,20)
	rect(210,150,180,280,90,90,10,10);
	//hairline
	fill(180,145,110);
	rect(298,150,3,20);


	//neck
	fill(220,180,140);
	rect(282,320,35,70,0,0,50,50);
	//neckshadow
	fill(210,160,95);
	ellipse(300,340,37,40);


	//ears
	fill(220,180,140);
	ellipse(220,270,20,30);
	fill(200,160,120);
	ellipse(220,270,15,23);
	fill(220,180,140);
	ellipse(380,270,20,30);
	fill(200,160,120);
	ellipse(380,270,15,23);

	//earrings
	noFill(0);
	strokeWeight(1);
	ellipse(380,302,38,38);
	stroke(151);

	strokeWeight(1);
	ellipse(220,302,38,38);

	//head
	strokeWeight(0);
	fill(220,180,140);
	rect(220,170,160,180,120,120,100,100);


	//right brow
	fill(89,69,44);
	ellipse(330,230,60,20);
	fill(220,180,140);
	ellipse(330,240,60,20);
	rect(300,220,10,20);
	rect(300,231,20,10);
	fill(220,180,140);
	ellipse(340,238,60,20);

	//left brow
	strokeWeight(0);
	fill(89,69,44);
	ellipse(270,230,60,20);
	fill(220,180,140);
	ellipse(330,240,60,20);
	rect(290,220,20,20);
	rect(280,231,20,10);
	fill(220,180,140);
	ellipse(262,238,60,20);


//nose
	strokeWeight(0);
	fill(180,145,110);
	ellipse(300,280,10,5);
	fill(230,190,160);
	ellipse(300,278,8,3);

//eyes
	//fill(0);
	//ellipse(268,253,40,8);
	//fill(220,180,140);
	//ellipse(268,248,50,8);




}

My distinguishing features are my defined (but drawn on) eyebrows and small, upturned nose, so I focused purely on those. My hoop earrings, which I often wear, are also characteristic to me.

Self Portrait: Jaclyn Saik

For my self portrait, I wanted to play with the simple shape tools I understood in this program to create shadows, so that I could block out more of the details on my face in an interesting way (as opposed to outlining them with the stoke). When creating this, I learned that the program runs a lot like a physical canvas in the sense that everything is layered on top of each other. It reminds me of painting, since objects/shapes that I want in front of everything else come last in the code and I have to direct which color each one is, even if that color has been used previously in the artwork.

Self Portrait work

function setup() {
    createCanvas(620, 620);
    background(86, 116, 159);
    //text("p5.min.js vers 0.7.1 test.", 10, 15);
}

function draw() {
    //colors 
    s = color(253, 217, 147)
    l = color(255, 242, 216)
    d = color(233, 180, 90)
    g = color(98, 187, 70)

    fill(s);
    noStroke();
    ellipse(443, 251, 724, 785)
    
    fill(l)
    rect(336, -70, 352, 697)
    triangle(244, 425, 336, 207, 336, 425)
   
    fill(s);
    triangle(336, 425, 344, 380, 391, 425)

    fill(d);
    triangle(224, 314, 260, 341, 285, 292)

    //eye-01
    fill(d)
    ellipse(196, 256, 168, 98)
    fill(255)
    ellipse(205, 251, 168, 98)
    fill(g)
    ellipse(239, 244, 73, 73)

    //eye-02
    fill(d)
    ellipse(473, 256, 168, 98)
    fill(255)
    ellipse(482, 251, 168, 98)
    fill(0, 0, 114)
    ellipse(529, 244, 40, 40)

    //eyelids
    fill(s)
    rect(121, 184, 193, 46)
    fill(l)
    rect(391, 184, 193, 46)


    //eyebrow
    fill(s);
    triangle(336, 204, 467, 158, 596, 195)

    //lips
    fill(137, 183, 226)
    triangle(262, 499, 336, 466, 336, 500)
    fill(182, 215, 241)
    triangle(336, 466, 336, 500, 438, 500)
    fill(86, 116, 159)
    triangle(262, 499, 336, 543, 336, 500)
    fill(114, 155, 204)
    triangle(336, 500, 336, 543, 438, 500)



}

Curran Zhang-Project-01-Face

sketch

/*Curran Zhang
Section A
curranz@andrew.cmu.edu
project_01*/

function draw() {
	createCanvas(600,600)
	background('royalblue')
	
//Moon
	fill('gold');
	strokeWeight(0);
	ellipse(100,random(50,55),140,140);
	fill('royalblue');
	strokeWeight(0);
	ellipse(150,50,100,100);
//Face
	fill('NavajoWhite');
	strokeWeight(0);
	rect(150,100,300,390,100,100,125,125);
	fill('black');
	strokeWeight(0);
	rect(150,100,300,200,100,100,0,0);
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(150,300,175,270,200,300);
	noStroke();
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(200,300,225,270,250,300);
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(250,300,275,270,300,300);
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(300,300,325,270,350,300);
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(350,300,375,270,400,300);
	fill('NavajoWhite');
	strokeWeight(0);
	triangle(400,300,425,270,450,300);
	fill('NavajoWhite');
	arc(150,315,55,75,HALF_PI,PI+HALF_PI);
	fill('SandyBrown');
	arc(150,315,27,37,HALF_PI,PI+HALF_PI);
	fill('NavajoWhite');
	arc(450,315,55,75,PI+HALF_PI,HALF_PI);
	fill('SandyBrown');
	arc(450,315,27,37,PI+HALF_PI,HALF_PI);
	fill('PaleVioletRed');
	strokeWeight(0);
	arc(300,430,90,45,0,PI);
// EYES
	fill('black');
	strokeWeight(0);
	ellipse(random(369,371),350,55,55);
	fill('gray');
	strokeWeight(0);
	ellipse(random(369,371),350,50,50);
	fill('black');
	ellipse(random(355,359),350,10,10);
	fill('black');
	ellipse(random(381,385),350,10,10);
	fill('black');
	ellipse(random(368,372),337,10,10);
	fill('black');
	ellipse(random(368,372),363,10,10);
	fill('black');
	ellipse(random(231,233),350,55,55);
	fill('gray');
	ellipse(random(231,233),350,50,50);
	fill('black');
	ellipse(random(215,219),350,10,10);
	fill('black');
	ellipse(random(241,245),350,10,10);
	fill('black');
	ellipse(random(228,232),337,10,10);
	fill('black');
	ellipse(random(228,232),363,10,10);
//Glasses
	strokeWeight(4);
	stroke(51);
	noFill();
	rect(330, 317, 80, 65,10);
	strokeWeight(4);
	stroke(51);
	noFill();
	rect(192, 317, 80, 65,10);
	line(272,330,330,330)
	stroke(4)
//Cup One
	fill('white');
	strokeWeight(1);
	rect(50,525,50,15);
	fill('white');
	strokeWeight(1);
	quad(55,540,95,540,90,600,60,600);
	fill('white');
	strokeWeight(1);
	quad(55,525,95,525,90,520,60,520);
//Cup Two
	fill('white');
	strokeWeight(1);
	rect(275,525,50,15);
	fill('white');
	strokeWeight(1);
	quad(280,540,320,540,315,600,285,600);
	fill('white');
	strokeWeight(1);
	quad(280,525,320,525,315,520,285,520);
//Cup Three
	fill('white');
	strokeWeight(1);
	rect(500,525,50,15);
	fill('white');
	strokeWeight(1);
	quad(505,540,545,540,540,600,510,600);
	fill('white');
	strokeWeight(1);
	quad(505,525,545,525,540,520,510,520);
//Steam One
	noFill();
	stroke('SaddleBrown');
	strokeWeight(2)
	bezier(75, 370, 55, 400, 90, 470, 75, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2)
	bezier(65, 370, 45, 400, 80, 470, 65, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2)
	bezier(85, 370, 65, 400, 100, 470, 85, 510);
//Steam Two
	noFill();
	stroke('SaddleBrown');
	strokeWeight(2)
	bezier(300, 370, 280, 400, 315, 470, 300, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2);
	bezier(290, 370, 270, 400, 305, 470, 290, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2);
	bezier(310, 370, 290, 400, 325, 470, 310, 510);
//Steam Three
	noFill();
	stroke('SaddleBrown');
	strokeWeight(2)
	bezier(525, 370, 505, 400, 540, 470, 525, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2)
	bezier(515, 370, 495, 400, 530, 470, 515, 510);
	noFill();
	stroke('Sienna');
	strokeWeight(2)
	bezier(535, 370, 515, 400, 550, 470, 535, 510);
//Text
	fill('black');
	textSize(32);
	noStroke(0);
	text('Can I Sleep Now???',random(248,258),50);
	}

This project started out with basic geometries of rectangles and ellipse. After incorporating different types of geometries, I decided to try adding some motions within geometry. Thus, I created some geometry that had varying x or y coordinates.

Jonathan Liang – Looking Outwards – 01

the future of transportation: printed one part at a time

While browsing through the futurefeeder blog, I came across a post about an artist who 3D printed an entire motorcycle. The artist recreated an entire Honda CB500 with just an Ultimaker 3D printer. Impressive, is it not? To me, not really. 3D printing vehicles has been a hot topic as of late and companies like Strati have already started prototyping 3D printed vehicles, that work. Of course none of Strati’s vehicles are entirely 3D printed, but the time soon will come when all parts and components to vehicles will be 3D printed. 3D printed vehicles come with many advantages, such as: lighter vehicle weight, reduced material loss, faster iteration process during the design process,  easier parts replacement, and anyone can customize their own cars. There will obviously be bumps along the process, but this seems like the clear future of the transportation industry.

New York artist creates a life-sized Honda CB500 motorcycle using just an Ultimaker 3D printer