LO – 05

When hearing about the topic I immediately thought about @liliquela on instagram.
This account is an influencer account but the difference here is that the “person” Miquela is actual created with AI.
One of the first instances where I remember seeing this technology happening is during the Fast and Furious seventh movie when they utilized CGI to make Paul Walker’s face for the end scene.
It is crazy to think how graphic art has evolved so muc hso that now there is actually Miquela who is entirely created by AI working as a fashion influencer, essentially she is an AI model.
Not only is she attracting attention and followers but also recognition as she graces the pages of multiple magazines wearing the latest fashions.
This is super intriguing to me as the fashion industry is something Ilove and it’s crazy to see how much tech has developed where it is even permating the model industry.

Looking Outwards-05

https://www.behance.net/gallery/40600473/FREE-BIRD

This collection is named “Free Bird” and is by Mike Campau. He’s a photographer who uses CGI to distort components of reality. Normally, he makes commercial art/graphics for companies like Beats by Dre, Under Armour, Nike, etc., but he also does personal projects like the one shown. In this collection, I like the way that he distorted that he used CGI to distort the bird cages. The statement included with it is “an escape from the odd and dark world we live in… and sometimes there are no doors to get out.” I think that the distortion of the cages helps convey the complexity of the problems people try to escape and creates a very somber and imposing mood. I don’t understand where the doors come in to play though. I’m guessing we are supposed to question how the bird managed to get out of the cage in the first place and wonder why the bird is still sitting on the cage if it managed to get out which I find interesting. He says that he made this in Photoshop to make this. I know that you can make 3D models and texture them in Photoshop, but I’ve never done it before so I couldn’t say exactly how he did it. Also, the bird a real bird and not a 3D model.

Project-05-Wallpaper

sketchDownload
function setup() {
    createCanvas(600, 600);
    background(0);
    noLoop();
    
}

function draw() {

    	

        
    
    //big pumpkins
    for(var s = 100; s < height-90; s +=400){
    	for(var d = 100; d < width-80; d+=400){
            pumpkin1(d, s);
        
        }
    }

    for(var s = 300; s < height-90; s +=400){
    	for(var d = 300; d < width-80; d+=400){

            pumpkin1(d, s);
        
        }
    }
     //little pumpkins
     for(var m = 300; m < height-90; m +=400){
     	for(var j = 100; j < width-80; j+=400){

       pumpkin2(j, m);
       
        }

    }

    for(var m = 100; m < height-90; m +=400){
     	for(var j = 300; j < width-80; j+=400){

       pumpkin2(j, m);
       
        }

    }
	       

    //star
    for(var s = 100; s < height+50; s +=200){
    	for(var d = 0; d < width+50; d+=200){
            star1(d, s);
        
        }
    }

    //star
    for(var s = 0; s < height+50; s +=200){
    	for(var d = 100; d < width+50; d+=200){
            star2(d, s);
        
        }
    }

}

    
//big pumpkin
	function pumpkin1(x,y) {

        
           
           push();
           translate(x,y);
           rotate(radians(20));
           noStroke();
           //strokeWeight(1.5);

           //stroke(0, 100, 20);
           fill(0, 198, 51);
           rect(-5, -35, 10, 13);

           //stroke(176, 45, 36);
           fill(241, 90, 41);

           ellipse(25, 3, 40, 60);
           ellipse(-25, 3, 40, 60);
           ellipse(13, 3, 40, 62);
           ellipse(-13, 3, 40, 62);
           ellipse(0, 3, 40, 64);

           fill(247, 148, 29);
           triangle(-20, -5, -4, -2, -12, -16);
           triangle(20, -5, 4, -2, 12, -16);
           triangle(-6, 8, 6, 8, 0, -2);

           arc(1, 11.5, 55, 29, radians(0), radians(180), CHORD);

           fill(241, 90, 41);
           
           rect(9, 10, 8, 5.5);
           noStroke();
           rect(8, 7, 9.9, 4);


           
	       pop();
	              

}

//little pumpkin
	function pumpkin2(x,y) {

        
           
           push();
           translate(x,y);
           rotate(radians(-20));
           noStroke();
           //strokeWeight(1.5);

           //stroke(0, 100, 20);
           fill(0, 198, 51);
           rect(-5, -20, 10, 13);

           //stroke(176, 45, 36);
           fill(241, 90, 41);

           ellipse(20, 5, 30, 40);
           ellipse(-20, 5, 30, 40);
           ellipse(10, 5, 30, 40);
           ellipse(-10, 5, 30, 40);
           ellipse(0, 5, 30, 40);

           fill(247, 148, 29);
           ellipse(-10, 2, 10, 10);
           ellipse(10, 2, 10, 10);
           rect(-2, 2, 4, 4);

           arc(0, 10, 20, 15, radians(0), radians(180), CHORD);

           fill(241, 90, 41);
           
           rect(3, 8.2, 4, 4);
           noStroke();
           rect(2, 7.2, 6, 2.1);


           
	       pop();
	              

}

//big star

function star1(x, y) {


	 push();
           translate(x,y);
           strokeWeight(1.5);
           rotate(radians(-20));

           fill(255, 251, 202);

           beginShape();
           vertex(-16, -3.5);
           vertex(-5, -5);
           vertex(0,-16);
           vertex(5, -5);
           vertex(16, -3.5);
           vertex(8, 4);
           vertex(10, 16);
           vertex(0, 10);
           vertex(-10, 16);
           vertex(-8, 4);
           endShape(CLOSE);
	       pop();


}

//small star

function star2(x, y) {


	 push();
           translate(x,y);
           strokeWeight(1.5);
           rotate(radians(20));

           fill(255, 251, 202);

           beginShape();
           vertex(-8, -1.75);
           vertex(-2.5, -2.5);
           vertex(0,-8);
           vertex(2.5, -2.5);
           vertex(8, -1.75);
           vertex(4, 2);
           vertex(5, 8);
           vertex(0, 5);
           vertex(-5, 8);
           vertex(-4, 2);
           endShape(CLOSE);
	       pop();


}

Project 05- Wallpaper

I created a wallpaper with illustrations of birds, rainbows, and clouds. Recently, I saw two parrots outside my window (it was odd because I live in the middle of an urban city). I was worried they might not survive the cold weather, but they flew away as my family opened the window to bring them in. I wanted to create visuals of the scene I saw that day in my wallpaper.

sketch
//Stefanie Suk
//15-104 Section D

var positionbx = 10;     //starting position x for blue bird
var positionby = 10;     //starting position y for blue bird
var offsetbx = 120;      //spacing x for blue bird
var offsetby = 140;      //spacing y for blue bird

var positionyx = 75;     //starting position x for yellow bird
var positionyy = 75;     //starting position y for yellow bird
var offsetyx = 120;      //spacing x for yellow bird
var offsetyy = 140;      //spacing y for yellow bird

var positionrx = 10;     //starting position x for rainbow
var positionry = 95;     //starting position y for rainbow
var offsetrx = 120;      //spacing x for rainbow
var offsetry = 140;      //spacing y for rainbow

var positioncx = 70;     //starting position x for cloud
var positioncy = 20;     //starting position y for cloud
var offsetcx = 120;      //spacing x for cloud
var offsetcy = 140;      //spacing y for cloud

var positiondx = 0;     //starting position x for dots
var positiondy = 0;     //starting position y for dots
var offsetdx = 20;      //spacing x for dots
var offsetdy = 20;      //spacing y for dots


function setup() {
    createCanvas(500, 600);
    background(195, 213, 195);
    noLoop();
}

function draw() {

	for(var a=0; a<50; a++){                                                        //column of grid
    	for(var b = 0; b<50; b++){                                                  //row of grid                                    
    		push();
    		translate(positiondx + offsetdx*b, positiondy + offsetdy*a);                                                            //scale down 
    		dots();
    		pop();
    	}
	}

	// blue bird grid
	for(var a=0; a<5; a++){                                                        //column of grid
    	for(var b = 0; b<5; b++){                                                  //row of grid                                    
    		push();
    		translate(positionbx + offsetbx*b, positionby + offsetby*a);
    		scale(0.5);                                                            //scale down 
    		bluebird();
    		pop();
    	}
	}

	// yellow bird grid
	for(var a=0; a<5; a++){                                                        //column of grid
    	for(var b = 0; b<5; b++){                                                  //row of grid                                    
    		push();
    		translate(positionyx + offsetyx*b, positionyy + offsetyy*a);
    		scale(0.4);														       //scale down
    		yellowbird();
    		pop();
    	}
	}

	//rainbow grid
	for(var a=0; a<5; a++){                                                        //column of grid
    	for(var b = 0; b<5; b++){                                                  //row of grid                                    
    		push();
    		translate(positionrx + offsetrx*b, positionry + offsetry*a);
    		scale(0.5);                                                            //scale down
    		rainbow();
    		pop();
    	}
	}

	//cloud grid
	for(var a=0; a<5; a++){                                                        //column of grid
    	for(var b = 0; b<5; b++){                                                  //row of grid                                    
    		push();
    		translate(positioncx + offsetcx*b, positioncy + offsetcy*a);
    		cloud();
    		pop();
    	}
	}
}

function bluebird() {
	//body 
	noStroke();
	fill(178, 232, 245);
	ellipse(0, 0, 50, 50);     //head
	ellipse(0, 40, 60, 80);
	fill(178, 232, 245);       //body
	push()
	rotate(radians(30));
	ellipse(48, 30, 10, 60)    //tail

	// white section of head
	fill(250);
	rotate(radians(220));
	arc(0, 0, 45, 45, 0, QUARTER_PI);
	pop();

	//beak
	fill(187, 201, 205);
	ellipse(4, 0, 10, 10);           //right grey circle
	ellipse(-4, 0, 10, 10);          //left grey circle
	fill(157, 170, 173);
	triangle(-6, 2, 6, 2, 0, 18);    //dark grey beak

	//eye
	fill(10);
	ellipse(10, -2, 7, 7);           //right eye
	ellipse(-10, -2, 7, 7);          //left eye

	//wings
	fill(132, 163, 170);
	ellipse(20, 40, 15, 40);         //right dark blue wing
	ellipse(-20, 40, 15, 40);        //left dark blue wing
}

function yellowbird() {
	//body 
	noStroke();
	fill(245, 242, 125);
	ellipse(0, 0, 50, 50);     //head
	ellipse(0, 40, 60, 80);
	fill(245, 242, 125);       //body
	push()
	rotate(radians(30));
	ellipse(48, 30, 10, 60)    //tail

	// orange section of head
	fill(255, 176, 117);
	rotate(radians(220));
	arc(0, 0, 45, 45, 0, QUARTER_PI);
	pop();

	//beak
	fill(212, 208, 150);
	ellipse(4, 0, 10, 10);           //right greyish yellow circle
	ellipse(-4, 0, 10, 10);          //left greyish yellow circle
	fill(151, 150, 131);
	triangle(-6, 2, 6, 2, 0, 18);    //dark greyish yellow beak

	//eye
	fill(10);
	ellipse(10, -2, 7, 7);           //right eye
	ellipse(-10, -2, 7, 7);          //left eye

	//wings
	fill(160, 212, 150);
	ellipse(20, 40, 15, 40);         //right green wing
	ellipse(-20, 40, 15, 40);        //left green wing
}

function rainbow() {
	push();
	noStroke();
	fill(255, 92, 92);
	rotate(radians(158));
	arc(0, 0, 35, 35, 0, PI+QUARTER_PI, OPEN);     //red layer
	fill(255, 156, 92);                            
	arc(0, 0, 30, 30, 0, PI+QUARTER_PI, OPEN);     //orange layer
	fill(255, 245, 92);                          
	arc(0, 0, 25, 25, 0, PI+QUARTER_PI, OPEN);     //yellow layer
	fill(160, 240, 125);                           
	arc(0, 0, 20, 20, 0, PI+QUARTER_PI, OPEN);     //green layer
	fill(125, 193, 240);                           
	arc(0, 0, 15, 15, 0, PI+QUARTER_PI, OPEN);     //blue layer
	fill(175, 125, 240);                           
	arc(0, 0, 10, 10, 0, PI+QUARTER_PI, OPEN);     //purple layer
	pop();
}

function cloud() {
	noStroke();
	fill(255);
	ellipse(0, 0, 20, 20);
	ellipse(-10, 5, 15, 15);
	ellipse(12, 4, 17, 17);
	ellipse(22, 5, 10, 10);  //white ellipses left to right
}

function dots() {
	noStroke();
	fill(255, 255, 255, 6);
	ellipse(0, 0, 5, 5);   //dots for background
}



Picture of the parrots I saw

Project 5 – Wallpaper

sketch
var f = 10;
var l = 80;
var x = 0;
var y = 0;

function setup(){
	createCanvas(600, 553);
	background(232, 225, 197);
	angleMode(DEGREES);
}

function draw(){
	for(var i = 0; i <= 12; i += 1){
		x = 60*i;
		if(i % 2 == 0){
			y = 35;
		} else {
			y = 0;
		}
		for(; y <= 600; y += 69){
			push();
			translate(x, y);
			vine();
			flower();
			leaf1();
			leaf2();
			pop();
		}
	}
}
function vine(){
	noFill();
	stroke(132, 217, 143);
	strokeWeight(2);
	arc(-l/2, 0, l, 36, 0, 60);
	arc(l/2, 0, l, 35, 180, 240);
}

function leaf1(){
	noStroke();
	fill(153, 219, 190);
	arc(0, 0, l, l, 180, 240, CHORD);
	arc(((-3 * l)/2), 0, l, l, 0, 61, CHORD);
}

function leaf2(){
	angleMode(DEGREES);
	noStroke();
	fill(173, 219, 169);
	arc(0, 0, l, l, 60, 120, CHORD);
	arc(0, 0, l, l, 240, 300, CHORD);

}

function flower(){
	noStroke();

	fill(230, 145, 172);														//petals round
	circle(f, 0, f);
	circle((f/2), ((-f * sqrt(3))/2), f);
	circle((-f/2), ((-f * sqrt(3))/2), f);
	circle(-f, 0, f);
	circle((-f/2), ((f * sqrt(3))/2), f);
	circle((f/2), ((f * sqrt(3))/2), f);

	triangle(0, 0, f, 0, (f/2), ((-f * sqrt(3))/2));							//petals fill
	triangle(0, 0, f, 0, (f/2), ((f * sqrt(3))/2));
	triangle(0, 0, (f/2), ((f * sqrt(3))/2), (-f/2), ((f * sqrt(3))/2));
	triangle(0, 0, (-f/2), ((f * sqrt(3))/2), -f, 0);
	triangle(0, 0, -f, 0, (-f/2), ((-f * sqrt(3))/2));
	triangle(0, 0, (-f/2), ((-f * sqrt(3))/2), (f/2), ((-f * sqrt(3))/2));

	fill(247, 219, 0);															//pollen
	circle(0, 0, f);
}

I based the draw code off of the hexagon assignment since most of the initial wallpaper designs I had sketched had either hexagonal or octagonal bases. Although I had wanted to do a different(but similar!) wallpaper design, trying to get certain shapes to rotate and land in the correct placement stumped me. I fully intend on trying to fulfill my original design at a later date, but I’m happy with what I’ve done for now. Images of my notes from this project below.

PROJECT-05 (wallpaper)

sketch
// SEAN CHEN
// 15-104 A

function setup() {
    smooth();
    createCanvas(600, 1000);
    background(255,194,130);
}

function poka(scale) { // background pokadots
    for (var i = 0; i < scale/2; i++){ // array columns
        noFill();
        var w =  width / scale;
        var h = height / scale;
        push();
        translate(i*(2*w), 0);
        for (var j = 0; j < scale+1; j++){ // drawing a column
            push();
            var r = random(0.4, 0.6); // giving the ellipse rand sizes
            translate (0, j*h); // vert column of random ellipse
            ellipse (w/2, h/2, r*w, r*h);
            translate (w, h/2-h) // shifted vert column of rand ellipse
            ellipse (w/2, h/2, r*w, r*h);
            pop();
        }
        pop();
    }
}


function leaf() { // drawing a little leaf (mint color)
    stroke(88,216,169);
    strokeWeight(5);
    line(-10, 0, 10, 0);
    line(-5, -5*sqrt(3)/2, 5, 5*sqrt(3)/2);
    line(-5, 5*sqrt(3)/2, 5, -5*sqrt(3)/2);
}

// drawing a small branch from a certain x,y
// (same as stem func)
function miniStem(x, y) { 
    noStroke();
    fill(94,59,24)
    for (var i = 0; i < 25; i++) {
        rectMode(CENTER);
        square(x, y+i, 5);
        if (i == 20) { // right before the end of the branch
            push();
            translate(x, y+i); // move leaf to that coordinate
            leaf(); // draw leaf
            pop();
        }
        x += random(-5, 5);
    }
}

function stem(maxH) {
    noStroke();
    fill(94,59,24)
    var x = 50 // center pt for each tile
    for (var i = 0; i < maxH; i++) {
        if (i < maxH-25) { // before getting to last 25 "pixels"
            rectMode(CENTER); // square using center
            square(x, i, 5); // drawing sqaure at x, i which is shifting down
            x += random(-3, 3); // aggregate the branches left and right
        } else {
            square(x, i, 5); // drawing squre
            var diff = x-50; // difference from center
            x += -1*(diff/15); // shifting x back to center for seamless
        }
        var y = i; // for ministem
        if (i%50 == 0) { // every 50 "pixels" downward add a small branch
            miniStem(x, y);
        }
    }
}

function draw() {
    poka(50); // add pokadot bg
    for (var i = -2; i < 9; i++) { // tiling of the branches
        push();
        translate (100*i, 0);
        for (var j = -2; j < 9; j++) {
            push();
            translate (0, 200*j);
            stem(200);
            pop();
        }
        pop();
    }
    noLoop();
}

Looking Outwards 05 – 3D Computer Graphics

Image of  Lil Miquela from Lil Miquela’s Instagram

Miquela Sousa, also known as Lil Miquela, is a computer-generated imagery (CGI) instagram model created by Trevor McFedries and Sara DeCou. She is an active model marketing a variety of brands, primarily in fashion. When I first heard about Lil Miquela, I was amazed by the idea of creating a fictional instagram model out of computer graphics. In fact, it is stunning to see how much she grew up as a model, featuring in product endorsements for famous brands like Prada and Calvin Klein. Not only is she a model, but she is also a virtual musician. The quality of the computer graphics on Lil Miquela is more than shocking. She looks very similar to other instagram influencers, but just with a bit more filter. If you look closely at her photos on instagram, you can see the individual strokes of her hair, wrinkles, clothes, and eyelashes. Lil Miquela is a pre-rendered, computer-generated snapshots. In other words, she is a computer graphic created through photography and rendering, raxet codes and futuristic software. It is clear that the artists of Lil Miquela are very sensitive to details and realism. The fact that they use photography to create the CGI explains how precise they are to create the final form.

Lil Miquela’s Instagram: https://www.instagram.com/lilmiquela/?hl=en

Brud (AI and robotics company that creates Lil Miquela) Instagram: https://www.instagram.com/brud.fyi/?hl=en

Lil Miquela’s Hard Feelings Remix

LO-05 (3d computer graphics)

For todays looking outwards I want to focus on a specific 3D graphics artist, Randy Cano. He is a self taught 3D computer graphics artist and animator that uses 3D software to create unique and “trippy” scenes. His work varys from explosions, to paint spilling on a specific object, to fury humanoid figures dancing to strange music. Randy morphs our reality by using his personal style of morphing humanoid figures with unconventional materials and textures. In one of his works, a soft rubbery head is pushed through a dense field of equally rubbery heads, and that is the entire work: heads pushing through heads. Although all of his works are short clips of rendered videos on instagram, which is where I consume most of his content, it provides an interesting escape from reality in a 3-5 seconds video.

Looking Outwards – 05: 3D Art

One two dimensional digital representation that I greatly admire is Stepan Ryabchenko’s “Power Pump,” (2011) a piece of artwork from the Computer Virus Series. I am intriguied by the thoughtfulness put into the work both in its actual physicality as well as its intention and general concept. Essentially Ryabchenko compiled data on major catastrophic viruses that have occurred since the inception of the computer, and gave them an identity be revisualizing them as actual, biological viruses. In the words of art critic Natalia Matsenko, this work renders the virtual nature of the virus which effectively overcomes the “limit between the figurative and the abstract.” It appears as the artist utilized generative modelling as well as parametric modelling in his design, with the shape of the image ebbing and flowing in deliberate ripples. I particularly like this specific piece out of his series because “Power Pump”, while still looking foreboding, further takes on an aesthetic quality that is reflective of the artist’s crossroads of sensibilities as a visual artist, architect, and programmer. The realistic rendering and materiality adds another level of dimension that seems to appear even more than just 3-D in a 2-D representation.

LO-05

Pixar is known as one of the first studios to produce high quality 3D animated feature-length films.
Their process is similar to the creation of any digital media which includes storyboard, voice acting, art design, music. I admire the drive and vision of the studio in creating a feature-length film with 3D rendering.
There are important steps and processes that take advantage of the computers, namely 3D rendering.
I imagine the algorithms create the 2D product from the 3D models by capturing the animations from a specific angle.
Pixar movies always have an indescribable quality that no other early studio was able to recreate. By viewing the final product, it is abundantly clear that every department cares deeply about their work and the project as a whole.

The models are created by artists using computers then called by the animators to create scenes for the movie. Pixar developed out of an older rendering software, Renderman, which played a pivotal role in the creation of movies like Jurassic Park and Toy Story. This software is used to put the final touches on the project, like textures and lighting, creating the final 2D product after a few days of rendering.

Toy Story (1995)
Walt Disney Pictures
Pixar Animation Studios