Project 05 – Wallpaper

sketch
// WALLPAPER
// TERESA LOURIE
// PROJECT 05 A
// SECTION D


var s = 120;
//var column = 3;

function setup() {
    createCanvas(500, 500);
    background(150, 175, 255);
    
}

function draw() {
	//var d = s*sqrt(3)/2;  //column offset
	for (var x = 0; x <= 600; x += s) {
		push();
		translate(-120, 0);
		
		
		for (var y = -50; y<=600; y += s){ 
			push();
			translate(x, y);
			
			push();  //background pattern
			translate(30, 30);
			stroke(175, 200, 255);
			strokeWeight(20);
			line(180, 0, 180, 180); //vertical
			line(0, 0, 180, 0); //horizontal
			push();
			translate(-60, 60);
			line(180, 0, 180, 180);
			line(180, 0, 0, 0);
			pop();
			pop();


			strokeWeight(20);
			stroke(225,185,110); //mushroom A stem
			line(0, 0, 0, random(15, 25));
			

			fill(190,125,50) //mushroom A cap
			noStroke();
			arc(0, 0, random(45, 70), random(40, 60), PI, 0, CHORD);
			pop();
			

			push();
			translate(x+60, y+60);

			strokeWeight(random(15,25));
			stroke(255); //mushroom B stem
			line(0, 0, 0, random(15, 25));
			
			fill(190, 0, 0);
			noStroke();
			arc(0, 0, random(45, 70), random(40, 60), PI, 0, CHORD); //mushroom B cap

			pop();
			



		}
		pop();

	}
	noLoop();
	
	

}

Project 5

I really enjoyed making the avocado’s in the project and it reminded me of breakfast!

sketch
//Aadya Bhartia
//Section A

function setup() {
    createCanvas(600, 400);
    background(256,156,155);
    //text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
	var aX = 70;
	var bX = 60;
	var aY = 90;
	var bY = 60;

	for(var y =18;y<=height+20;y+=80){
		if(y == 18||y==178||y == 338){//checking for even rows 
			for(var x = 50;x<=width;x+=100){
				avo1(x,y);
			}
		}
		else{
			for(var x = 0;x<=width;x+=100){
				avo2(x,y)
			}
		}
	}
	noLoop();
}
function avo1(a,b){
	b = b+2;
	//avocado shadow 
	noStroke();
	fill(25, 68, 35, 170);
	var a1 = a+10;
	beginShape();
	curveVertex(a1,b-65);
	curveVertex(a1-10,b-63);
	curveVertex(a1-19,b-52);
	curveVertex(a1-21,b-30);
	curveVertex(a1-30,b+12);
	curveVertex(a1,b+32);
	curveVertex(a1+30,b+12);
	curveVertex(a1+21,b-30);
	curveVertex(a1+19,b-52);
	curveVertex(a1+10,b-63);
	endShape(CLOSE);
	//the green part of avocado
	stroke(25,68,35);
	strokeWeight(2);
	fill(240,255,196);
	beginShape();
	curveVertex(a,b-65);
	curveVertex(a-10,b-63);
	curveVertex(a-19,b-52);
	curveVertex(a-21,b-30);
	curveVertex(a-30,b+12);
	curveVertex(a,b+32);
	curveVertex(a+30,b+12);
	curveVertex(a+21,b-30);
	curveVertex(a+19,b-52);
	curveVertex(a+10,b-63);
	endShape(CLOSE);
	//seed
	fill(163, 107, 67);
	stroke(69,48,25);
	strokeWeight(1);
	ellipse(a,b+2,35);
	//seed highlight
	noFill();
	stroke(69,48,25);
	strokeWeight(3.5);
	arc(a+2, b+2, 20, 20, 0, HALF_PI);
}
function avo2(a,b){
	//avocado shadow - whole
	var a2 = a-6;
	noStroke();
	fill(25, 68, 35,100);
	beginShape();
	curveVertex(a2,b-50);
	curveVertex(a2-4,b-49);
	curveVertex(a2-9,b-42);
	curveVertex(a2-11,b-25);
	curveVertex(a2-18,b+5);
	curveVertex(a2,b+19);
	curveVertex(a2+18,b+5);
	curveVertex(a2+11,b-25);
	curveVertex(a2+9,b-42);
	curveVertex(a2+4,b-49);
	endShape(CLOSE);
	//Avocado as a whole 
	stroke(25,68,35);
	strokeWeight(2);
	fill(25, 68, 35);
	beginShape();
	curveVertex(a,b-50);
	curveVertex(a-4,b-49);
	curveVertex(a-9,b-42);
	curveVertex(a-11,b-25);
	curveVertex(a-18,b+5);
	curveVertex(a,b+19);
	curveVertex(a+18,b+5);
	curveVertex(a+11,b-25);
	curveVertex(a+9,b-42);
	curveVertex(a+4,b-49);
	endShape(CLOSE);
	//white specks on the avocado 
	noStroke();
	fill(255,255,255,50);
	for(var d = a-15;d<=a+20;d+=2){
		ellipse(d,random((b-30), b+30),2);
	}
}

Looking Outwards : 05

Alexey Kashpersky has  experience in creatingCG artworks, large amounts of 3D models for televisions, and 3D printing studios. His series of Virus artworks are intended to raise awareness while transforming it into something fantastic and something that had its own unique character. These majestic drawings although initially pleasing draw attention to the dangers of these viruses and diseases in the most thoughtful and fantastical way possible. Through VR, attention to detail and clean modelling, he is able to create beautiful forms which morph and grow as they evolve.

He also compares his imagination of these viruses to coral reefs, hoping to live the healthiest and happiest life travelling around the world through his imagination.

Space Wallpaper

For this project I knew I wanted to do something involving layered circles, and I actually accidentally came across a “moon” in another idea I was developing. I switched to space theme and proceeded from there. Using closely aligned circles I created “stars” from negative space and then used the positive space to fill with different space objects.

Outer Space

function setup() {
    createCanvas(800, 560);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
	scale(2);	//zoom in x2
	noStroke();
background(255);


fill(58,37,165);	//dark blue
rectMode(CORNER);		//x an y are corner coordinates
	rect(0,0,width,23);	//blocking out the "stars" at the top and bottom
	rect(0,260,width,23)
 
translate (50,0);		//move 50 right and 0 down
	for (var y = -100; y <= 600; y += 40) {		//start at -100, add 40 to y until y=600
		for (var x = -100; x <= 800; x += 50) {		//start at -100, add 50 to x until x=800
			circle(x, y, 58);
		}
	}
pop();

push();
translate(0,-20)		//move 20 up
	fill(255,239,0);		//yellow
	for (var y3 =0; y3 <= 300; y3 += 80) {		//every other circle
		for (var x3 = 0; x3 <= 800; x3 += 100) {	//every other circle
			circle(x3, y3, 30);		//moon
		}
	}
pop();

push();
translate(-6,-28);		//move 6 left, 28 up
	for (var y4 =0; y4 <= 300; y4 += 80) {		//every other
		for (var x4 = 0; x4 <= 800; x4 += 100) {	//every other
			circle(x4, y4, 30);		//moon "shadow"
		}
	}
pop();

push();
translate(50,100);		//50 right, 100 down
	for (var y5 =0; y5 <= 100; y5 += 80) {	//every other
		for (var x5 = 0; x5 <= 300; x5 += 200) {
			planet(x5,y5);		//run planet function
		}
	}
pop();

push();
translate(100,60);		//100 right, 60 down
	for (var y6 =0; y6 <= 100; y6 += 80) {		//every other, constricted to the middle of the canvas
		for (var x6 = 0; x6 <= 300; x6 += 400) {	//constricted to run only once
			rocket(x6,y6);		//run rocket function
		}
	}
			
pop();

push();
	for (var y7 =0; y7 <= 200; y7 += 80) {		//every one
		for (var x7 = 0; x7 <= 300; x7 += 200) {	//every 4
			hat(x7,y7);		//run hat function
		}
	}	
pop();

push();
translate(0,50)		//move down 50
	for (var y8 =0; y8 <= 150; y8 += 80) {	//every other
		for (var x8 = 0; x8 <= 150; x8 += 100) {	//every other, constrained to left side
			UFO(x8,y8);		//call UFO function
		}
	}	
pop();

push();
translate(0,50)		//move down 50
	for (var y9 =0; y9 <= 150; y9 += 80) {	//every other
		for (var x9 = 0; x9 <= 150; x9 += 100) {	//every other, constrined to right side
			alien(x9,y9);		//call alien function
		}
	}	
}

function hat (x7,y7){

push();

	translate(x7,y7)	//repeat translation
fill(64,234,240);	//light blue
	rotate(radians(-7));	//rotate right
		triangle(0,59,2.5,45,8.5,58);	//hat
fill(255);	//white
	circle(2.5,45,3);	//pom
	quad(0,59,0,61,8.5,60,8.5,58)	//hat base

pop();
}

function planet(x5,y5){
push();

translate(x5,y5)
	rotate (radians(-10));	//rotate right
		fill(250,139,99,150);	//opaque red-orange
			ellipse(0,0,40,10);		//ring
fill(240,128,43);		//orange	
	rotate(radians(10));		//negate rotation
		circle(0,0,25);		//planet

pop();	

}

function rocket(x6,y6){

push();

translate(x6,y6);
	fill(255);	//white
		rotate(radians(-50));	//rotate right
			rect(0,50,10,20);	//rocket body
fill(255,0,0);	//red
	triangle(0,50,10,50,5,45);	//rocket top
	quad(0,70,-3,75,13,75,10,70);	//rocket bottom
fill(255,171,0);	//bright orange
	quad(-2,75,1,80,9,80,12,75);	//outer fire
	triangle(-1,75,5,85,11,75);		//outer fire bottom
fill(255,255,138);	//bright yellow
	triangle(1.5,75,5,82,8.5,75);	//inner fire
fill(139,139,139);	//gray
	circle(5,56,7);		//window frame
fill(2,217,225);	//light blue
	circle(5,56,5);		//window pane

pop();
}

function UFO(x8,y8){

push();

translate(x8,y8)
	fill(152,152,152);	//gray
		ellipse(0,50,40,15);	//ufo body
		quad (-5,52,-15,60,-14,61,-4,53)	//left landing leg
		rect (-2,52,1.5,10)		//middle landing leg
		quad (1,52,11,61,12,60,4,53)	//right landing leg
fill(175,238,170,200);	//opaque green-blue
	ellipse(0,45,25,15);	//window dome
fill(255,0,0);		//red
	circle(-12,52,3);	//left light
	circle(12,52,3);	//right light
fill(255,255,0);	//yellow
	circle(0,54.5,3);	//middle light

pop();
}

function alien(x9,y9){

	push();

translate(x9,y9)
	fill(198,0,191);	//purple-red
		ellipse(200,50,10,20)		//body
		quad(198,44,201,45,191,54,190,53);	//left arm
		quad(202,44,201,47,209,54,210,53);	//right arm
		quad(198,54,201,55,191,64,190,63);	//left leg
		quad(202,54,201,57,209,64,210,63);	//right leg
fill(1,233,1);	//bright green
	ellipse(200,40,15,10);	//head
	circle(190.5,53.5,2);	//left hand
	circle(209.5,53,2);		//right hand
	circle(190.5,63.5,2);	//left foot
	circle(209.5,63.5,2);	//right foot
fill(0);	//black
	ellipse(196,40,3);	//left eye
	ellipse(200,38,3);	//middle eye
	ellipse(204,40,3);	//right eye
	arc(200,42,3,3,0,PI); 	//smile
fill(134,227,246,150);	//opaque light blue
	ellipse(200,40,20,13);	//helmet
fill(199,199,199);	//ligth gray
	rect(195,44,10,2);	//helmet strap

pop();
}

3D Graphic Art

Eamonn Burke

Alex Grey – Fear Innoculum Cover

This visual was the cover art for the release of a recent album by one of my favorite bands, TOOL, designed by their artist Alex Grey.
What I really love about this artwork is that it establishes not just a 3D image, but a 3D environment. The piece is very atmospheric in its arrangement, and also has a strong sense of perspective and motion. In order to achieve this,
Grey used his artistic sensibility. Specifically, the behavior of the top and bottom borders of the image really reinforce this sense of immersion, as does the emanating light which generates ominous highlights on the eyes and contributes to the image’s tone of mysticism.
His contrasting use of blur and definition enhance the sense of movement.

I could not find the software that Alex Grey used, but I would guess it is Rhino or a similar one.
I also guess that this is a more complex version of our classwork now: using one coded element (a 3D eye),
using nested loops to repeat that component and guide it along a warped path, adding a light source with something like V-ray,
and taking a perspective angle view.

Project 5: Wallpaper

sketchDownload
var leafSize = 40;

function setup() {
    createCanvas(400, 400);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    background(111, 59, 72)
    for (var x = 20; x <= 400; x += 50) {
        for (var y = 20; y <= 400; y += 100) {
            push();
            leaf(x, y);
            pop();
            
        }    
    }
    for (var x = 40; x <= 400; x += 50) {
        for (var y = 80; y <= 400; y += 100) {
            push();
            secondLeaf(x, y);
            pop();
            
        }    
    }

    noLoop();
}
function leaf(x, y) {
    //decoration
    noStroke();
    fill(167, 80, 55)
    circle(x-5, y+7, leafSize-15);
    noFill();
    stroke(167, 80, 55);
    arc(x, y, 50, 50, PI/4, 5*PI/4);
    
    stroke(225);
    //left half
    arc(x, y, leafSize, leafSize, 2*PI/3, 4*PI/3, OPEN);
    //right half
    translate(-20, 0);
    arc(x, y, leafSize, leafSize, 5*PI/3, PI/3, OPEN);
    //stem
    translate(10, 0);
    triangle(x-2, y+30, x, y-5, x+2, y+30);
    line(x-5, y-5, x, y);
    line(x, y, x+5, y-5);
    line(x-5, y+5, x, y+10);
    line(x, y+10, x+5, y+5);
}

function secondLeaf(x, y) {
    //decoration
    noStroke();
    fill(207, 106, 39)
    circle(x, y-8, leafSize/2);
    noFill();
    stroke(207, 106, 39);
    arc(x, y, 50, 50, 5*PI/4, PI/4);

    stroke(225);
    //left half
    arc(x, y, leafSize/2, leafSize/2, 2*PI/3, 11*PI/6, OPEN);
    arc(x-13, y-13, leafSize/2, leafSize/2, PI/6, 2*PI/3, OPEN);
    //right half
    arc(x-10, y, leafSize/2, leafSize/2, 7*PI/6, PI/3, OPEN);
    arc(x+3, y-13, leafSize/2, leafSize/2, PI/3, 5*PI/6, OPEN);
    //stem
    translate(-5, 0);
    line(x, y, x, y-20);

}

I got the inspiration for my wallpaper from the fall season and leaves floating in the air.

Looking Outwards-05

This is located in Seoul, Korea, where a large screen display of a building is made to look like water waves crashing and moving around inside. The display is extremely realistic, with the installation of audio as well as the feeling of the water that’s about to break the glass and flow out into the streets. The company who made this installation is d’strict, they are a digital media tech company that specializes in designing and making, and one of their goals is bringing new visual and spatial experiences to the world. The installation uses an effect called anamorphic illusion to convey the visual. I find the installation very impactful and creates an experience that is new to many people, showing what computer graphics are now able to do.

Project 5: Wallpaper

When creating this wallpaper, I kept thinking of the kitschy nautical patterns you’d find plastered on the walls of seaside restaurants. I drew a lot of inspiration from cute illustrations on Pinterest that emulate this niche aesthetic.

nautical
function setup() {
    createCanvas(550, 550);
    background(220);
    bgColor = color(180, 218, 221);
    floatyColor = color(215, 53, 76);
    wheelColor = color(115, 175, 193);
}

function draw() {
    background(bgColor);

    //seashells
    for(var c = -5; c < width; c += 93) {
        for(var d = -5; d < height; d += 200) {
            push();
            translate(c, d);
            seashell();
            pop();
        }
    }

    //seashells again
    for(var e = -10; e < width; e += 95) {
        for(var f = 95; f < height; f += 190) {
            push();
            translate(e, f);
            seashell();
            pop();
        }
    }

    //wheel
    for(var x = 45; x < width; x += 190) {
        for(var y = 40; y < height; y += 200) {
            push();
            translate(x, y);
            woodenWheel();
            pop();
        }
    }

    //flotation devices
    for(var a = 5; a < width; a += 180) {
        for(var b = 0; b < height; b += 180) {
            push();
            translate(a, b);
            floaty();
            pop();
        }
    }
}

//the blue & white steering wheels
function woodenWheel() {
    fill(bgColor);
    noStroke();
    ellipse(38, 37, 45, 45);

    handles = 8; //number of handles on the steering wheels
    handleAngle = 360/handles; //angle between each handle
    radius = 75/2; //length of each handle
    strokeWeight(4);
    stroke(wheelColor);
    
    for (angle = 270; angle < 600; angle = angle + handleAngle) {
        x = cos(radians(angle)) * radius;
        y = sin(radians(angle)) * radius;
        line(radius, radius, x + radius, y + radius);
    }

    noFill();
    strokeWeight(5);
    stroke(255);
    ellipse(38, 37, 50, 50); //outer wheel
    ellipse(38, 37, 10, 10); //inner spoke
}

function floaty() {
    noFill();
    strokeWeight(20);
    stroke(255);
    ellipse(0, 0, 75, 75);

    noStroke();
    fill(floatyColor);
    arc(9, 9, 75, 75, 0, PI/2); //bottom right red
    arc(-9, 9, 75, 75, HALF_PI, PI); //bottom left red
    arc(-9, -9, 75, 75, PI, HALF_PI + PI); //top left red
    arc(9, -9, 75, 75, HALF_PI + PI, 0); //top right red

    fill(bgColor);
    ellipse(0, 0, 55, 55);
}

function seashell() {
    push();
    noStroke();
    fill(255);
    arc(0, 0, 50, 50, PI + QUARTER_PI, QUARTER_PI - HALF_PI);
    arc(0, -5, 25, 20, QUARTER_PI, PI - QUARTER_PI);
    pop();

    grooves = 4; //number of lines on seashell
    grooveAngles = 60/grooves; //angle of lines on seashell
    radius = 50/2; //length of each line
    strokeWeight(1);
    stroke(bgColor);

    translate(-25, -25);
    for (angle = 225; angle < 325; angle = angle + grooveAngles) {
        x = cos(radians(angle)) * radius;
        y = sin(radians(angle)) * radius;
        line(radius, radius, x + radius, y + radius);
    }
}

Looking Outwards 05: 3D Computer Graphics

One artist whose work I recently came across and really admire is Rebecca Tell,
or “Bexelyn,” the lead artist at Sago Mini. I fell in love with her artwork
“Mr. Strawberry & Friends Go Camping,” in which she utilized the 3d software
Cinema 4D to construct and render a scene of cute little food characters out
camping in a forest.

I was drawn to this piece’s soft color palette, curvy stylization, and cute
character designs, all of which are signature features of Tell’s unique 3D
modeling style. I especially admire this work because of the amount of
intricacies embedded within the canvas – although the camping scene
stylistically looks really simple, Tell had to individually model each character
and prop in the work, as well as color, light, and shade these assets and the
background as well. As someone who’s used 3D software like Maya and Blender before and had difficulties even extruding 3D models correctly, I’m really appreciative of the amount of work Tell put into this piece and hope to apply that same mindset of hard work in all of my future projects.

Mr. Strawberry & Friends Go Camping

Rebecca Tell’s Instagram

Project-05-Wallpaper

sketch
function setup() {
    createCanvas(400, 400);
    noStroke();
}
 
function draw() {
    background(0);
    scales();
    noLoop(); 
        for (var y = 10; y < height + 50; y += 50) {
          for (var x = 10; x < width + 50; x += 50) {
            fill(255);
          ellipse(x,y,15);
          }
}
}
function scales() {
      var red=100;
      for (var y = 10; y < height + 50; y += 50) {
          var blue=100;
          for (var x = 10; x < width + 50; x += 50) {
            fill(red, 0, blue);
            blue += 30
            // fill(255);
            ellipse(x,y,80);//outer rim
            // fill(176,163,248);//orange color
            ellipse(x,y,80);//inner circle
            fill(161,243,247);//tan color
            ellipse(x,y,60);//inner core
            strokeWeight(3);
            line(x,y,400,400);
        }
        red +=50;
    }
}

For this week, I wanted to create a fish scale pattern with a gradient.