My Background – 05 Project

sketch
//Brandon Yi
//Section A
//btyi@andrew.cmu.edu
//Project-05-A
function setup() {
    createCanvas(600, 600);
    background(0);
    rectMode(CENTER);
}

function draw() {
    //initializing variables 
    var d=width/10;
    var x=d/2
    var y=d/2

    //iterating it over the background size
    for (var row = 0; row < width/d; row++) {
        y=d/2;
        for (var col = 0; col < height/d; col++) {
            tile(x,y,d);
            y+=d;
        }
        x+=d;
    }
    
    noLoop();
}
function tile(x,y,d) {
    //translation requires a push and pop
    push();
    stroke(152,255,255);
    strokeWeight(5);
    translate(x,y)
    fill(0);
    ellipse(0,0,d);
    ellipse(0,0,d-15);
    for (var i = 0; i < d; i+=10) {
        strokeWeight(2);
        stroke(104,0,208);
        noFill();
        rect(0,0,i,i)
    }
    pop();

}

The trickiest part of this program was making a for loop inside the function. On top of that, it was difficult to also make the entire program relative to the background size.

Looking Outwards 05: 3D Computer Graphics

As soon as I read the prompt, I was reminded of the recent exhibition in the Miller ICA gallery by Jacolby Satterwhite.

Jacolby Satterwhite, Reifying Desire 6, 2014. HD digital video

Among many of his artworks in the gallery, the digital videos created by 3D computer graphics stood out to me the most. It was a very different experience from physical installations and 2D videos, because it seemed to be existing in its own world. The rotation of the camera angle and the individual movement of the characters and elements were really intriguing to me. I think the way lighting and shadow is programmed to be so natural is fascinating. I think this kind of 3D computer graphic medium is very appropriate for Jacolby Satterwhite’s work, as he as transforms existential uncertainty into a generative engine of resilience, reinvention, and celebration.

Project 5 – Wallpaper

In this work I tried to incorporate the four colors of the Korean flag: red, blue, black and white, in addition to the rectangles present on the flag, and a brief geometric shape of the national flower (Mugunghwa).

var col;
var row;
var col1;
var row1;
function setup() {
    createCanvas(600, 600);
}

function draw() {
    background(0);
    rectangles();
    for(col = 60; col <= 600; col += 200) {
        for(row = 60; row <=600; row += 200) {
            flowers(col,row);
            print(row);
        }
        print(col);
    }
    noLoop();
    for(col1 = 150; col1 <= 600; col1 += 200) {
        for(row1 = 150; row1 <= 600; row1 += 200) {
            flowers(col1, row1);
        }
    }
}

function rectangles(){
    for(var x = 0; x<=600; x +=90){
        for (var y=20; y<=600; y +=50){
        fill(255);
        rect(x,y,55,15);    
        }
    
    }
}


function flowers(x,y) {
    push();
    translate(x,y);
    fill(255,0,0);
    ellipse(25,0,30,30);
    rotate(PI/3);
    fill(0,0,153);
    ellipse(25,0,30,30);
    rotate(PI/3);
    fill(255,0,0)
    ellipse(25,0,30,30);
    rotate(PI/3);
    fill(0,0,153);
    ellipse(25,0,30,30);
    rotate(PI/3);
    fill(255,0,0);
    ellipse(25,0,30,30);
    rotate(PI/3);
    fill(0,0,153);
    ellipse(25,0,30,30);
    fill(230,230,250);
    ellipse(0,0,15,15);
    pop();
}

Project 5- Wallpaper

sketch
var col1;
var row1;
var col2;
var row2;
var col3;
var row3;
function setup() {
    createCanvas(600, 400);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {
    background(88,24,69);
    for (col2 = 50; col2 <=600; col2 += 100) {
        for(row2 = -50; row2 <= 400; row2 += 100) {
            stroke(218,247,166);
            noFill();
            ellipse(col2, row2 + 50, 100, 100);
        }
        noLoop();
    }
    for(col1 = 50; col1 <= 600; col1 += 200) {
        for(row1 = 50; row1 <=600; row1 += 200) {
            flower(col1,row1);
            print(row1);
        }
        print(col1);
    }
    noLoop();
    for(col3 = 150; col3 <= 600; col3 += 200) {
        for(row3 = 150; row3 <= 600; row3 += 200) {
            flower(col3, row3);
        }
    }
}

function flower(x,y) {
    fill(199,0,57);
    stroke(255,131,105);
    push();
    translate(x,y);
    ellipse(25,0,50,30);
    rotate(PI/3);
    ellipse(25,0,50,30);
    rotate(PI/3);
    ellipse(25,0,50,30);
    rotate(PI/3);
    ellipse(25,0,50,30);
    rotate(PI/3);
    ellipse(25,0,50,30);
    rotate(PI/3);
    ellipse(25,0,50,30);
    fill(199,0,57);
    stroke(199,0,57);
    ellipse(0,0,10,10);
    pop();
}

Project 04: String Art

sketchDownload
var dx1;
var dy1;
var dx2;
var dy2;

var numLines = 40;

function makeStringArt(x1, y1, x2, y2, x3, y3, x4, y4) { //function to make string art from points of two lines
    line(x1,y1,x2,y2);
    line(x3,y3,x4,y4);
    dx1 = (x2-x1)/numLines; //changes x value of first point
    dy1 = (y2-y1)/numLines; //changes y value of first point
    dx2 = (x4-x3)/numLines; //changes x value of second point
    dy2 = (y4-y3)/numLines; //changes y value of second point

    //initial points
    var firstx = x1; 
    var firsty = y1;
    var secondx = x3;
    var secondy = y3;

    //draws lines and adjusts points for next line
    for (var i = 0; i <= numLines; i += 1) {
        line(firstx, firsty, secondx, secondy);
        firstx += dx1;
        firsty += dy1;
        secondx += dx2;
        secondy += dy2;
    }
}

function setup() {
    createCanvas(400, 400);
    background(218, 190, 229); //purple

}

function draw() {
    stroke(255); //white: corner shapes
    makeStringArt(0,0,200,0,0,400,0,0);
    makeStringArt(200,400,400,400,400,400,400,0);
    //quarters of the star shape
    stroke(166, 155, 52); //gold
    makeStringArt(200,0,200,200,200,200,380,200);
    stroke(0, 142, 219) //blue
    makeStringArt(200,400,200,200,200,200,380,200);
    stroke(166, 155, 52); //gold
    makeStringArt(200,400,200,200,200,200,20,200);
    stroke(0, 142, 219) //blue
    makeStringArt(200,0,200,200,200,200,20,200);

    noLoop();
}

Project 4: String Art

sketch

//Elise Chapman
//ejchapma
//Section D

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

var dx1;
var dy1;
var dx2;
var dy2;

function draw() {
    background(30,50,49); //periwinkle
    var dist=100; //distance from center of spiral
    var angle=5;
    var y=100;
    var x=100;
    push();
    //intricate purple
    translate(width/2+25,height/2+25); //sets center of spiral
    for(y=100; y<=200; y+=0.5) {
        strokeWeight(2);
        stroke(153,141,160); //purple
        rotate(radians(angle*10));
        line(mouseX/15,mouseY/15,mouseX+dist,y);
        dist-=0.5;
    }
    //star
    for (y=10;y<=300;y+=5) {
        strokeWeight(5);
        stroke(196,231,212); //grey
        rotate(radians(-angle+180)); //creates the spiral
        line(x+dist, y+dist, min(mouseX/2,300), min(mouseY/2,50));
        dist-=1;
    }
    //straight line spread
    pop();
    var numLines=20;
    dx1=0/numLines;
    dy1=mouseY/numLines;
    dx2=mouseX/numLines;
    dy2=0/numLines;
    var x1=0;
    var y1=100;
    var x2=500;
    var y2=250;
    for (var i=0; i<=numLines; i+=1) {
        stroke(300);
        strokeWeight(3);
        line(x1,y1,x2,y2);
        x1+=dx1;
        y1+=dy1;
        x2+=dy2;
        y2+=dy2;
    }
}

I wasn’t too sure about my string art going into programming. I didn’t really have a clear vision and in the end I kept playing around with the code until I reached a point I like. In the future, I think I’m going to try to redo this code on my own – I think it would be an engaging entrance piece for my website.

LO: Sound Art

Short video of Klompen

Trimpin, Klompen

I appreciate the works of Trimpin. I originally looked him up because I thought his artist name was neat, but I ended up really enjoying his sculptures. In particular, I enjoy his Klompen sculpture. 120 Dutch wooden clogs are connected to a computer by concealed wires and suspended from the ceiling, which then use small levers hidden inside the clogs to hit the wood of the clogs and create the distinctive rapping wood noises. I find it interesting for the layers of art that are embedded in the sculpture. Firstly, the clogs themselves are art pieces in how they are crafted and then individually painted. Then, hanging them from the ceiling introduces interesting three-dimensional and surrealist aspects. Finally, they make fun music using an unconventional method. You can tell how much digital work went into bringing the sculpture to life. I appreciate that the work isn’t necessarily “deep” or thought provoking, but is fun to look at and fun to listen to, which is all art needs to be sometimes.

LO4

This week I looked into theROOM, a physical and auditory installation by Keikan Uenishi. The installation is meant to simulate the sounds in a neighborhood, and highlight how physical partitions do not really divide up space the way we think they do. The installation is a room with another small room build in one corner of the room, and a pile of gray objects on the other. The small room has several loudspeakers inside of it oriented in different angles, such that you hear different sounds standing in different spots around the room. As you move around the room, you hear snipers of different things: overhear conversations, listen to office noise, etc.

theROOM/SOUNDLEAK

Project 4

sketch

// Michelle Dang
//Section D
//mtdang
var dx1;
var dy1;
var dx2;
var dy2;

var dx3;
var dy3;
var dx4;
var dy4;


var numLines = 40; //number of lines

function setup() {
    createCanvas(400, 400);
    background(0);

    dx1 = -600/numLines; 
    dy1 = 50/numLines;
    dx2 = (200)/numLines; //dx4 dx2 is negative
    dy2 = (-200)/numLines;

    dx3 = 0; 
    dy3 = 200/numLines;
    dx4 = -300/numLines;
    dy4 = -200/numLines;

}

function draw() {
    background(0);

//white interactive shape
    stroke(255);
    var x1 = constrain(mouseX, 200, 200);
    var y1 = 0;
    var x2 = 0;
    var y2 = mouseY
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += -dx1;
        y1 += dy1;
        x2 += -dx2;
        y2 += dy2;
    }
    var x1 = constrain(mouseX, 200, 200);
    var y1 = 0;
    var x2 = height;
    var y2 = mouseY;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    }

//red shape 1
    stroke(255,0,0);
    var x1 = width/2;
    var y1 = 0;
    var x2 = width/2;
    var y2 = height;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx3;
        y1 += dy3;
        x2 += dx4;
        y2 += dy4;
    }
//red shape 2
    var x1 = width/2;
    var y1 = 0;
    var x2 = width/2;
    var y2 = height;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx3;
        y1 += dy3;
        x2 += -dx4;
        y2 += dy4;
    }

//blue shape 1
    stroke(0,0,255);
    var x1 = 0;
    var y1 = 0;
    var x2 = height;
    var y2 = height;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    }
// blue shape 2
    var x1 = width;
    var y1 = 0;
    var x2 = 0;
    var y2 = height;
    for (var i = 0; i <= numLines; i += 1) {
        line(x1, y1, x2, y2);
        x1 += -dx1;
        y1 += dy1;
        x2 += -dx2;
        y2 += dy2;
    }



   }

I struggled a lot at first trying to understand the starting example code, but after playing around with the numbers it wasn’t too bad. I changed some of the variables to be negative to create a symmetrical effect 🙂

Project 4: String Art

luca string

var dx1;
var dy1;
var dx2;
var dy2;
var dx3;
var dy3;
var numl = 40;//linenumber
var sw = 0.5;//strokeweight


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

function draw(){
    background(0);

    strokeWeight(1);

    //reference red
    stroke(183,58,66);
    line(10,10,50,250);
    line(250,10,250,350);
    line(50,250,250,350);

    dx1 = (50-10)/numl;
    dy1 = (250-10)/numl;
    dx2 = (250-250)/numl;
    dy2 = (350-10)/numl;
    dx3 = (250-50)/numl;
    dy3 = (350-250)/numl;

    //defineshape
    var x1 = 10;
    var y1 = 10;
    var x2 = 250;
    var y2 = 10;
    var x3 = 50;
    var y3 = 350;


    //drawlines
    for (var c = 0; c <= numl; c = c + 1){
        stroke(255,0,0);
        strokeWeight(sw);
        //squarelinepath
        line(x1,y1,x2,y2);
        //trianglelinepath
        line(x2,y1,x1,x2);
        //curvepath
        line(x3,y1,x2,y2);
        //rect
        line(x1,y1,x2,y1);

        x1 += dx1;
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
        x3 += dx3;
        y3 += dy3;

    //interaction:changeslineform
    if (mouseIsPressed){
        x1 += 1;
        y1 += 1;
        x2 += 3;
        y2 += 2;
        x3 += 3;
        y3 += 3;

    }


    }

        }


    


I enjoyed coding this project because by changing a few variables, I get to create different interesting compositions. Compared to the previous projects, I feel like this one is more intuitive than planned. During the process, I faced difficulty understanding what each variable does. However, after looking at some examples and experimenting, I understood my variables better and was able to alter them to achieve the effects I wanted.