Rachel Shin – LO 5

The haunting and eerie image, Golden Skull, was created by CG director and environment artist Hirokazu Yokohara within 5 days. The article states that the project was created with Blender add-on Graswald, EEVEE, and Cinema 4D. I admired this particular project because it incorporates a variety of lighting, shading, and layering abilities to create such a realistic image to be 3D printed. Such techniques are crucial when it comes to CG projects in movies. The realistic aspect of such meticulously designed items in movies give the wow factor to audience members. I suppose that the image was created by a variety of layering skills with shading and lighting changes implemented to create the realistic factor. The creator’s artistic sensibilities are manifested in the final form by using all his techniques and abilities to produce a realistic CG. As someone who is interested in film producing, I appreciate all the CG artists out there who take the time to give life to inanimate images.

Xiaoyu Kang – Project 05 – Wallpaper


sketch


//Xiaoyu Kang
//xkang@andrew.cmu.edu
//Section B
//Project-05

var s1 = 20;
var s2 = 15;
var s3 = 10;
function setup(){
createCanvas(620, 620);
    noStroke();
}
 
function draw() {
    background(172,198,253);

//lines
    for (var a = 0; a < 620; a += 80){
    	fill(235,226,158);
        rect(a + 65,0,10,620);
    }
   
    //clouds
    for (var y = 0; y < 620; y += 4) {
        for (var x = 0; x < 620; x += 4) {
        	fill("white");
            ellipse(y * s1 + (s1 / 20) + 30, x * s1 + (s1 / 20) + 30,s1,s1);
            ellipse(y * s1 + (s1 / 20) + 15, x * s1+ (s1 / 20) + 30,s1,s1);
            ellipse(y * s1 + (s1 / 20) + 35, x * s1 + (s1 / 20) + 35,s1,s1);
            ellipse(y * s1 + (s1 / 20) + 25, x * s1 + (s1 / 20) + 38,s2,s2);
            ellipse(y * s1 + (s1 / 20) + 45, x * s1 + (s1 / 20) + 32,s2,s2);
        }   
    }
    
    //yellow stars
    for (var y = 0; y < 620; y += 4) {
        for (var x = 0; x < 620; x += 4) {
        	fill(243,246,202);
        	quad(y * s1 + (s1 / 20) + 25, x * s1 + (s1 / 20) + 72, y * s1 + (s1 / 20) + 29, x * s1 + (s1 / 20) + 66, y * s1 + (s1 / 20) + 33, x * s1 + (s1 / 20) + 72, y * s1 + (s1 / 20) + 29, x * s1 + (s1 / 20) + 78)
        }
    }
}

For this project, I was inspired by the wallpaper in my bedroom when I was young. I remembered that it consists of many white clouds printed over a blue canvas. So I tried to recreate that with some additional decorations to make the drawing look more diverse.

 

Xu Xu -Project 05 – Wallpaper

sketch

//Claire Xu
//xux1@andrew.cmu.edu
//Section B
//Project 05
var diameter = 8;
var spacing = 600/12;
var distance = 600/40;
var diam = 4;

function setup() {
    createCanvas(570, 570);
}
function draw() {
    background("black");
//love
  for (var y = 0; y < 20; y += 1) {
        for (var x = 0; x < 15; x += 1) {
        	noStroke();
            fill("white");
            circle(x*spacing + (diameter/2) + 5, y* spacing * 3 + (diameter), diameter);
            circle(x*spacing + (diameter*1.5) +5 , y* spacing * 3 + (diameter), diameter);
            triangle(x*spacing +5, y* spacing * 3 + (diameter), x*spacing + (diameter)+5, y*spacing *3 + 2.5*diameter, x*spacing + (diameter*2) +5, y* spacing *3 + (diameter));
        }
    }
//death
  for (var y = 0; y < 20; y += 1) {
        for (var x = 0; x < 15; x += 1) {
        	strokeWeight(4);
          	stroke("white");
          	strokeCap(PROJECT);
            line(x*spacing + 5*diameter, y* spacing * 3 + 7.5*diameter,x*spacing + 3.5*diameter, y* spacing * 3 + 6*diameter);
            strokeCap(ROUND);
            line(x*spacing + 5*diameter, y* spacing * 3 + 6*diameter,x*spacing + 3.5*diameter, y* spacing * 3 + 7.5*diameter);
        }
    }
//robots
  for (var y = 0; y < 20; y += 1) {
        for (var x = 0; x < 15; x += 1) {
        	noStroke();
            fill("white");
            rect(x*spacing + 0.5*diameter+3, y* spacing * 3 + 12*diameter, diameter*2, diameter*2);
            fill("black");
            circle(x*spacing + diameter+3, y* spacing * 3 + 12.5*diameter, diam);
            circle(x*spacing + 2*diameter+3, y* spacing * 3 + 12.5*diameter, diam);
        }
    }  

    noLoop();
}

For this project, I was inspired by the patterns of the Netflix show “Love, Death + Robots”, which I wanted to incorporate as part of my wallpaper design. Therefore I used the black and white logo colours, and organized the logos onto the wallpaper. I included details such as the different stroke caps of the “death” symbol, but to me organizing the logos using code was the most challenging part.

Crystal-Xue-Project-05

sketch-379.js

//Crystal Xue
//15104-section B
//luyaox@andrew.cmu.edu
//project-05

var vA = 10; //vertical coordinate change of shorter edge
var hA = 17.32;//horizontal coordinate change of the shorter edge = √3 * vA
var vB = 40; //vertical coordinate change of the longer edge
var hB = 69.28;//vertical coordinate change of the longer edge = √3 * vB

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

function draw() {
    background(0);
    noStroke();
    scale(0.7);

    for (var x = 0; x < 600 ; x +=  hB + 2 * hA) {
        for (var y = 0; y < 1200 ; y += 2 * vB + 4 * vA) {
            if (x % (2 * (hB + 2 * hA)) == 0) {

                push();
                translate(-85, 0);
                fill(200);

                //top side
                beginShape();
                vertex(x, y); //pt1
                vertex(hA + x, -vA + y);//pt2
                vertex(hA + hB + x, vB - vA + y);//pt3
                vertex(hA + 2 * hB + x, -vA + y);//pt4
                vertex(2 * hA + 2 * hB + x, y);//pt5
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);

                //left side
                beginShape();
                fill(120);
                vertex(x, y);//pt1
                vertex(x, 2 * vA + y);//pt7
                vertex(hB + x, 2 * vA + vB + y);//pt8
                vertex(hB + x, 3 * vA + 3 * vB + y);//pt9
                vertex(hB + hA + x, 4 * vA + 3 * vB + y);//pt10
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);

                // right side
                beginShape();
                fill(50);
                vertex(hB + hA + x, 4 * vA + 3 * vB + y);//pt10
                vertex(hB + 2 * hA + x, 3 * vA + 3 * vB + y); //pt11
                vertex(hB + 2 * hA + x, 2 * vA + vB + y);//pt12
                vertex(2 * hB + 2 * hA + x, 2 * vA + y);//pt13
                vertex(2 * hA + 2 * hB + x, y);//pt5
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);
                pop();

            }
            else {

                push();
                translate(-85, -vB - 2 * vA);

                //top side
                fill(200);
                beginShape();
                vertex(x, y); //pt1
                vertex(hA + x, -vA + y);//pt2
                vertex(hA + hB + x, vB - vA + y);//pt3
                vertex(hA + 2 * hB + x, -vA + y);//pt4
                vertex(2 * hA + 2 * hB + x, y);//pt5
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);

                //left side
                beginShape();
                fill(120);
                vertex(x, y);//pt1
                vertex(x, 2 * vA + y);//pt7
                vertex(hB + x, 2 * vA + vB + y);//pt8
                vertex(hB + x, 3 * vA + 3 * vB + y);//pt9
                vertex(hB + hA + x, 4 * vA + 3 * vB + y);//pt10
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);

                //right side
                beginShape();
                fill(50);
                vertex(hB + hA + x, 4 * vA + 3 * vB + y);//pt10
                vertex(hB + 2 * hA + x, 3 * vA + 3 * vB + y); //pt11
                vertex(hB + 2 * hA + x, 2 * vA + vB + y);//pt12
                vertex(2 * hB + 2 * hA + x, 2 * vA + y);//pt13
                vertex(2 * hA + 2 * hB + x, y);//pt5
                vertex(hA + hB + x, vA + vB + y);//pt6
                endShape(CLOSE);
                pop();
            }

        }

    }




}

diagram

Using trigonometry of 30-degree triangles, I dissected this single unit piece into two sizes of triangles. I nested the units with each other and created this interlocking pattern.

Crystal Xue-LookingOutwards-05

initial skeches
3d modeling process

Alexey Kashpersky is a visual artist originally from Poltava, Ukraine. He has created a series of work for fantasies world and medical use. He has a youtube channel dedicated to all the 3D generated art and microbiology videos.

This cancer cell microenvironment video is particularly interesting to me. He presented the cells in such a delicate fantasy way that has unrealistic lightings and colors. We always depict that cancer is evil. However, through his 3D video visualization, it becomes a whole another world.

On the other hand, I wish the videos produced can be more educational instead of being purely aesthetic pleasing.

Rachel Shin – Project 05 – Wallpaper


reshin-project05

/*Rachel Shin
	reshin@andrew.cmu.edu
	15-104 Section B
	Project 05- Wallpaper
*/

var spacing;

function setup(){
    createCanvas(400, 400);
    background(235, 234, 223);
    spacing = 50;
}


function draw(){
    for (var y = 0; y < height - (spacing/2); y += spacing/2) { //dotted background, adjusted to fit entire circle, avoid cut offs
    	for (var x = 0; x < width-(spacing/2); x += spacing/2){
    		noStroke();
    		fill(255);
    		ellipse(x+(spacing/2), y+(spacing/2), spacing/5, spacing/5);
    	}
    }

    for (var y = 0; y < height; y += spacing){ //burgundy rounded rectangles
    	for (var x = 0; x < width; x += spacing) {
    		stroke(112, 107, 105);
    		noFill();
    		square (x + (spacing/5), y + (spacing/5), spacing/3, 2);
    	}
    }

    for (var y = 0; y < height; y += spacing) { //sky blue trapezoids across canvas
        for (var x = 0; x < width; x += 70) {
        	noStroke();
        	fill(167, 200, 212);
            quad(x + (spacing/5), y + (spacing/5), x + spacing, y + spacing, x + spacing, y + (spacing+10), x + (spacing/5), y + spacing);
        }}

        noLoop();
}

Brainstorm/Initial Sketch

While thinking of ways to code and design this project, I decided to layer various geometric shapes to create a cohesive visual of repeated patterns of circles, trapezoids, and rounded rectangles. I found it interesting how I was able to recreate this sketch by figuring out how layers of shapes interacted to create this pattern.

Ankitha Vasudev – Project 05 – Wallpaper

For this project I wanted to create a geometric pattern and was inspired by the designs on the antique wallpaper website. I experimented with various shapes, variables and colors before arriving at a final result. I particularly focused on creating quadrangles through diagonal lines. 

Initial starting idea for my wallpaper

sketch

//Ankitha Vasudev
//ankithav@andrew.cmu.edu
//Section B
//Project 05

//global variables 
var l = 25;
var diameter = 10;
var spacing = 50;

function setup() {
    createCanvas(400, 400); 
    noLoop();
}

function draw() { 
    background(210, 140, 190);
    //command to draw wallpaper 
    drawWallPaper();
}

function drawWallPaper() {

    //thin yellow lines
    stroke(255, 215, 50);
    strokeWeight(8);
    for (var x = 0; x<=width; x += spacing) {
        for (var y = 0; y <= height; y+=spacing) {
      line(x-l, y+l, x+l, y-l);
      line(x+l, y+l, x-l, y-l);
      line(x-l, y+l, x+l, y-l);
      line(x+l, y+l, x-l, y-l);
    }
  }

    //thick blue diagonal lines
    stroke(130, 190, 230);
    strokeWeight(4);
    for (var x = 0; x<=width; x += spacing) {
        for (var y = 0; y <= height; y+=spacing) {
         line(x-l, y+l, x+l, y-l);
         line(x+l, y+l, x-l, y-l);
         line(x-l, y+l, x+l, y-l);
         line(x+l, y+l, x-l, y-l);
    }
  }

    //inner squares 
    strokeWeight(2);
    stroke(255, 215, 50);
    fill(255, 70, 160);
       for (var x = 0; x<=width; x += spacing/2) {
        for (var y = 0; y <= height; y+=spacing) {
            rectMode(CENTER);
            rect(x, y, l/4, l/4);
     }
   }

    //circles
    strokeWeight(4);
    stroke(130, 190, 230);
    fill(220);
     for (var x = 0; x<=width; x += spacing) {
        for (var y = 0; y <= height; y+=spacing) {
            ellipse(x, y, diameter);
     }
   }
}
   









Julia Nishizaki – Project 05 – Wallpaper

sketch

//Julia Nishizaki
//Section B
//jnishiza@andrew.cmu.edu
//Project-05-Wallpaper

function setup() {
    createCanvas(600, 600);
    background(18, 120, 161);
    noLoop();
}

function draw() {
    //grid background
    for (var y = 0; y < height + 25; y += 50) {
        for (var x = 0; x < width + 25; x += 50) {
            //diagonal lines
            var linelength = 25;
            strokeWeight(5);
            stroke(63, 159, 188);
            line(x - linelength, y - linelength, x + linelength, y + linelength);
            line(x - linelength, y + linelength, x + linelength, y - linelength);
            //short crosses that break up the diagonal lines
            var linelengthHorizon = 5;
            stroke(18, 120, 161);
            strokeCap(ROUND);
            line(x - linelengthHorizon, y, x + linelengthHorizon, y);
            line(x, y - linelengthHorizon, x, y + linelengthHorizon);
        }
    }
    //normal bird layer
    for (var y = 0; y < height + 100; y += 100) {
        for (var x = 0; x < width + 100; x += 100) {
            bird(x, y);
        }
    }
    //offset bird layer
    for (var y = 50; y < height + 100; y += 100) {
        for (var x = 50; x < width + 100; x += 100) {
            bird(x, y);
        }
    }
}
function bird(x, y) {
    push();
    translate(x, y);
    noStroke();
   
    //bird variables:
    var birdHeadS = 20;
    var birdHeadX = -25;
    var birdHeadY = -33;
    var birdBodyW = 40;
    var birdBodyH = 30;
    var birdBodyX = -35;
    var birdBodyY = -25;
    var birdDisplacement = 12;
   
    //left bird: beak, head, body
    fill(255, 197, 67);
    triangle(birdHeadX - birdDisplacement, birdHeadY + 6, birdHeadX - birdDisplacement, birdHeadY - 6, (birdHeadX - birdDisplacement) - 15, birdHeadY);
    fill('white');
    ellipse(birdHeadX - birdDisplacement, birdHeadY, birdHeadS, birdHeadS);
    arc(birdBodyX - birdDisplacement, birdBodyY, birdBodyW, birdBodyH, PI * 7/4, PI * 3/4);
   
    //right bird: beak, head, body
    fill(255, 197, 67);
    triangle(birdHeadX + birdDisplacement, birdHeadY + 6, birdHeadX + birdDisplacement, birdHeadY - 6, (birdHeadX + birdDisplacement) + 15, birdHeadY - 5);
    fill('white');
    ellipse(birdHeadX + birdDisplacement, birdHeadY, birdHeadS, birdHeadS);
    arc(birdBodyX + birdDisplacement + 20, birdBodyY - 5, birdBodyW, birdBodyW, 0, PI);
    
    //eyes
    fill(6, 73, 112);
    ellipse(birdHeadX - birdDisplacement - 3, birdHeadY - 2, 3, 3);
    ellipse(birdHeadX + birdDisplacement + 3, birdHeadY - 2, 3, 3);
    pop();
}

For this project, I wanted to create something that was fairly simple and geometric, but also playful and fun. I started with some sketches, and developed the idea that I wanted to use a grid of some sort, along with pigeons. When I started to create the wall paper, I ended up deviating from my drawing, and I instead tried to explore different elements. For example, I decided to create generic birds, rather than pigeons, and I ended up rotating the grid, moving the birds, and playing with what they looked like.

Initial sketches before coding

Claire Lee – Project 05 – Wallpaper

project05

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

function draw() {
    background(140, 180, 155, 200);

    for (x = 0; x < 10; x ++) {
        stroke(30, 70, 45, 200);
        strokeWeight(2);
        line((x*60) + 30, 0, (x*60) + 30, height);
        //stem  
    }

    for (x = 0; x < 15; x ++) {
        for (y = 0; y < 62; y += 3) {
            noStroke();
            fill(30, 70, 45, 200); 
            quad((x*60) + 30, y*10 - 5, (x*60) + 40, y*10 - 5, (x*60) + 50, y*10 - 15, (x*60) + 40, y*10 - 15);
            quad((x*60) + 30, y*10 - 5, (x*60) + 20, y*10 - 5, (x*60) + 10, y*10 - 15, (x*60) + 20, y*10 - 15);
            //leaves
        }
    }

    for (x = 0; x < 10; x ++){
        for (y = 0; y < 30; y += 3) {
            noStroke();
            fill(255, 250, 220);
            ellipse((x*120) + 40, y*40 + 4.5, 5, 5);
            ellipse((x*120) + 37, y*40 + 10, 5, 5);
            ellipse((x*120) + 43, y*40 + 10, 5, 5);
            //flowers (odd)
            ellipse((x*120) + 20, (y*40 + 60) + 4.5, 5, 5);
            ellipse((x*120) + 23, (y*40 + 60) + 10, 5, 5);
            ellipse((x*120) + 17, (y*40 + 60) + 10, 5, 5);
            //flowers (even)

        }
    }
    noLoop();

}

This project was a great way to keep playing around with for() loops. I wanted to go for something simple and plant-inspired, so this is what I came up with. I think if I were to make this a little more complex, I’d try using bezier curves instead of straight lines, and implement a little more randomness. However, since it was supposed to be a “wallpaper” type project, I decided to keep it basic.

The planning process

Ghalya Alsanea – Looking Outwards – 05

“Computation is typically a prompt to the illusion of determinacy.”

Dana Cupkova

This topographical flow is color coded according to each line’s unique identifier in the software. This is part of a research project led by Dana Cupkove, a professor here at CMU in the School of Architecture. Making the underlying data an argument for visual exploration, Cupkova operates on the munerical structure of the image as an aesthetic device. I am inspired by how the layering of lines of varying tones work to hightlight the drawing’s analytical value, and its geographical accuracy, while making a new landscape visible.

In general, I love how her work is able to take landscape data and analyze and the way she portrays the data creates a new landscape that the viewer can experience in a different way.

Find more of her work here.