Jai Sawkar Project 04 – String Art

Sketch

// Jai Sawkar
// jsawkar@andrew.cmu.edu
// Section C
// Project 04 

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

function draw() {
    background('#15274d');
    var x0 = 0;
    var y0 = 0;
    var x1 = width;
    var y1 = height;
    var y2 = height + 20
    var x2 = i - 34
    var x3 = width/2
    var y3 = height/3

    for (var i = 0; i < 50; i ++) {
         //white Eye
        stroke('#aab3aa')
        strokeWeight(.25)
        line(x1 + 60, (11 * i) - 110, 5 * i + 90, height/2)

        //white 2 Eye
        line(width/2, 5 * i - 40, 12 * i - 34, y2)

        //green
        strokeWeight(2); 
        stroke(86, 166, 85);
        line(x0, 5 * i - 40, 15 * i - 34, y2)

        //blue
        strokeWeight(2);
        stroke('#375dad');
        line(x1 + 60, 8 * i, 5 * i, 0)
      
} 
}

For this project, my aim was to use strings to create an abstract image of the Seattle Seahawks. Along with the use of the color schemes, I aimed to create the “eye” that the team uses in their logo schemes.

Sarah Choi – Project – 04 – Generative Art


project-04

//Sarah Choi 
//Section D
//sychoi@andrew.cmu.edu
//Project-04

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

function draw() {
    background(0);
    for(var i = 0; i < 400; i += 2) {
        stroke(255);
        strokeWeight(0.2);
        line(i, mouseY / 2 + 200, 400, - i);
    }
    for(var a = 0; a < 400; a++) {
        fill(255, 0, 0);
        strokeWeight(0.5);
        line(a, - a + mouseX / 5, 400, - a);
    }
    for(var b = 0; b < 400; b += 5) {
        stroke(255, 255, 0);
        strokeWeight(0.5);
        line(mouseX - 150, - b, 400, b);
    }
    for(var c = 0; c < 400; c += 5) {
        stroke(255, 0, 255);
        line(mouseY - 100, c, 400, - c);
    }
    for(var d = 0; d < 400; d += 0.5) {
        stroke(255, 100, 100);
        strokeWeight(0.2)
        line(d, - mouseY, 400, d);
    }
}

Using string art, I wanted to create abstract art playing around with primary and complimentary colors along with a black background. I wanted my piece to follow the mouse, so it would be more interactive with the audience. 

Sarah Choi – Looking Outwards – 04

In July 2018, Funkhaus Berlin featured sound art called, “Meandering River”, a vibrant landscape showing the gradual flows of nature by onformative. The audiovisual installation portrays a small snapshot in our fast-paced and changing world. The artist believed in the importance of featuring real nature through art. The movement of the rivers shows the constant in past and present life. Onformative wanted to show the unchanging nature although with all the transformations going around in life. 

The “Meandering River” is a multi-channel video with a set generative soundscape. The algorithm calls attention to the abstract imagery showing movements of the fluctuations in a river. The music accompanied and adding to the piece was composed by Berliners Kling Klang Klong, interpreting river patterns and shifts in the surface. The artist wanted the audience to be more aware of time in order to reel out an emotional journey.

Cathy Dong-Looking Outwards-04

“Cycling Wheel” Performance

“Cycling Wheel” is created by Keith Lam, Seth Hon, and Alex Lai. They were inspired by Marcel Duchamp’s Bicycle Wheel, and further transformed mechanics into light and sound.

Design Concepts & Logics

In the design processes, there were three variables: music, light beam, led strips. Each was generated and controlled by electronic devices. 

The designers eventually transformed the computer-generated sounds into an exciting, appealing, and rather dramatic show.  They perform while generating music and light. Music and light together create a certain engaging rhyme that draws audience’s attention. Mechanics input is intricate and professional, whereas the final result is interactive. The complicated design logic is simplified into the motions of spinning and touching.

Nadia Susanto – Looking Outwards – 04

Apparatum, created by panGenerator, is a custom made apparatus with a digital interface that purely emits analogue sounds. panGenerator was inspired to build this machine because it was a reminder to the heritage of the Polish Radio Experimental Studio which was one of the very first studios in the world that produced electroacoustic music.

An overall view of the Apparatum with a user

Boguslaw Schaeffer’s “Symphony – electronic music” along with Oskar Hansen’s “Black Room” inspired the technical pieces of the machine and the aesthetic appeal of it. In the video below it is shown that a piece of paper comes out with the audio symbols, and this was created by Schaeffer who conceived his own visual language of symbols that were cues for the sound engineer to produce.

The build of the Apparatum itself was very complex with many components including tape samplers and optical generators. What I admire about this is that the physical machine is art in itself especially with the black and white aesthetic, but with the audio features its incredible to see a machine create sound like that.

A closer look into the detailed components of the Apparatum
A video demonstrating the components of the Apparatum, how the machine is used, and the results from the machine.

For more on the full story, click on the link below.

https://www.creativeapplications.net/sound/apparatum-installation-inspired-by-the-polish-radio-experimental-studio/

Yoshi Torralva – Project 04 – String-Art


sketch

Using string art, I wanted to create a shell-like formation. I used multiple lines in the for() statement to create a swirling visual. Mouse tracking was implemented to add depth as it served as a frame into the shell.

// Yoshi Torralva
// Section E
// yrt@andrew.cmu.edu
// Project 04
function setup() {
    createCanvas(300, 400);
}

function draw() {
    background(0, 191, 255);
    /* for loop making 40 lines
    which allows for 10px spacing */
    for(var i = 0; i < 40; i++) {
    /* mouseX and Mouse Y move the string art */
    strokeWeight(1);
    stroke(255);
    //moving string art
    line(mouseX, i * 10, 0 + i * 10, mouseY);
    // flipped mouseX and mouse Y to create opposite scaling
    line(mouseY, i * 10, 0 + i * 10, mouseX);
    strokeWeight(0.2);
    //string art starting at top x height 
    // 10 px width between each line
    // increments of 50
    line(i * 10, 0, 300, 0 + i * 10);
    line(i * 10, 0, 250, 0 + i * 10);
    line(i * 10, 0, 200, 0 + i * 10);
    line(i * 10, 0, 150, 0 + i * 10);
    line(i * 10, 0, 100, 0 + i * 10);
    line(i * 10, 0, 50, 0 + i * 10);
    //string art at bottom x height
    // 10 px width between each line
    // increments of 50
    line(250, i * 10, 0 + i * 10, 400);
    line(200, i * 10, 0 + i * 10, 400);
    line(150, i * 10, 0 + i * 10, 400);
    line(100, i * 10, 0 + i * 10, 400);
    line(50, i * 10, 0 + i * 10, 400);
    }
}
 

Bo Yang-Project-04-String-Art

sketch

/*
    Bo Yang
    byang2@andrew.cmu.edu
    SectionA
    Project-04
*/

var y = 0;
var x = 0;
var angle = 0;
var angle1 = 0;
function setup() {
    createCanvas(300, 300);
}

function draw() {
    background(0);

    push();
    translate(width / 2, height / 2);
    rotate(radians(angle));
    fill(255, 255, 0);
    ellipse(mouseX, 0, 8, 8);
    pop();
    angle = angle + 30;

    push();
    translate(width / 2, height / 2);
    rotate(radians(angle1));
    ellipse(mouseX, 0, 8, 8);
    pop();
    angle1 = angle1 + 15;


    for (var i = 0; i < width; i += 15){
        stroke(255);
        strokeWeight(0.5);
        line(i, 0, i + mouseX, 300);
        line(i + mouseX, 0, i, 300);
    }

    for(var i = 0; i < width; i += 8){
        stroke(0, 153, 153);
        line(i, 300, 0, i - mouseX);
        line(300, i, i - mouseX, 0);
    }
}

In this program, I use the line drawing a background. When you move your mouse, it can open and close. And also, I’m draw the line like an eye. That is why, I also draw two ellipses, making it looks more like an eye.

Claire Lee – Project 04 – String Art

sketch

/*
Claire Lee
15-104 Section B
Project - 04
*/

var canvasW = 400;
var canvasH = 300;
var lineR = 0;
var lineG = 255;
var lineB = 200;

function setup() {
    createCanvas(canvasW, canvasH);
    strokeWeight(1);
}

/*function draw() {
    background(0);
    for (var i = 30; i < 600; i += 30) {
        fill(255);
        line(i, 0, 1.5*i, 300);
    } 

}*/

function draw() {
    background(0);
    for (var i = 20; i < 400; i += 20) {   
      line(i, 0, canvasW, 0.5*i);
      stroke(lineR + i, lineG, lineB); 

      line(canvasW, canvasH, i, 0);
      stroke(lineR + i, lineG, lineB);

      line(0, i, i - 5, canvasH); 
      stroke(lineR + i, lineG, lineB);

      line(canvasW, i, -0.5*i, canvasH);
      stroke(lineR + i, lineG, lineB);
    }

}

For my string art project, I tried to construct an abstract piece based on the form of a leaf. Initially, it was a little difficult to understand how the relationships of the lines and edges changed with respect to i, but it was fairly easy once I figured out how to draw the first curve. I also tried to incorporate gradients into the coloring of this piece as well, and was very satisfied with the result.

Timothy Liu — Project 04 — String Art

tcliu-openended-04

// Timothy Liu
// 15-104 Section C
// tcliu@andrew.cmu.edu
// Openended-04

// initializing variables!
var x1;
var y1;
var x2;
var y2;

var x3;
var y3;
var x4;
var y4;

var x5;
var y5;
var x6;
var y6;

var x7;
var y7;
var x8;
var y8;

var x;
var y;

var sx1;
var sy1;
var sx2;
var sy2;

var angle = 0;

function setup() {

    createCanvas(400, 300);

    // initial coordinates for star
    sx1 = -5;
    sy1 = -5;
    sx2 = 5;
    sy2 = 5;

    // initial coordinates for lower left dark blue lines
    x1 = 0;
    y1 = -250;
    x2 = 0;
    y2 = height;

    // initial coordinates for upper right cyan lines
    x3 = -150;
    y3 = 0;
    x4 = width;
    y4 = 0;

    // initial coordinates for upper left gold lines
    x5 = 0;
    y5 = height + 250;
    x6 = 0;
    y6 = 0;

    // initial coordinates for lower right light teal lines
    x7 = -150;
    y7 = height;
    x8 = width;
    y8 = height;

}

function draw() {

    // variables that make sure the mouse is constrained within the canvas
    x = max(min(mouseX, 400), 0);
    y = max(min(mouseY, 300), 0);

    // background color
    background("#010a43");
    
    // dark blue lines in the lower left. This for loop makes the lines flare out to form a convex curve
    // facing up and right; x and y (variables with mouseX and mouseY) allow the lines to ripple as the mouse moves.
    for (var a = 0; a < 900; a += 8) {
        stroke("#394a6d");
        line(x1, y1 + a - y / 2, x2 + a - x / 2, y2);
    }

    // cyan lines in the upper right. This for loop makes the lines flare out to form a convex curve
    // facing down and left; mouseX and mouseY allow the lines to ripple as the mouse moves.
    for (var b = 0; b < 900; b += 8) {
        stroke("#216583");
        line(x3 + b - y / 2, y3, x4, y4 + b - x / 2);
    }

    // gold lines in the upper left. This for loop makes the lines flare out to form a convex curve
    // facing down and right; x and y allow the lines to ripple as the mouse moves.
    for (var c = 0; c < 900; c += 8) {
        stroke("#f7be16");
        line(x5, y5 - c - x / 2, x6 + c - y / 2, y6);
    }   

    // light teal lines in the lower right. This for loop makes the lines flare out to form a convex curve
    // facing up and left; x and y allow the lines to ripple as the mouse moves.
    for (var d = 0; d < 900; d += 8) {
        stroke("#00818a");
        line(x7 + d + x / 2, y7, x8, y8 - d + y / 2);
    }

    // star that follows the mouse. The rotating star is meant to convey the dynamic nature of my piece,
    // as well as imply the fact that the user can move the mouse to alter the piece.
    push();
    translate(mouseX, mouseY);
    rotate(radians(angle));
    for (var s = 0; s < 16; s += 15) {
        stroke("#f7be16");
        line(sx1, sy1 + s / 4, sx2, sy2 - s / 4);
    }
    for (var s = 0; s < 16; s += 15) {
        stroke("#f7be16");
        line(sx1 + s / 4, sy1, sx2 - s / 4, sy2);
    }
    for (var s = 0; s < 16; s += 15) {
        stroke("#f7be16");
        line(sx1, sy1 + s / 2, sx2, sy2 - s / 2);
    }
    for (var s = 0; s < 16; s += 15) {
        stroke("#f7be16");
        line(sx1 + s / 2, sy1, sx2 - s / 2, sy2);
    }
    pop();
    angle = angle + 1;

}

My project this week was inspired by the color palette from Van Gogh’s “Starry Night.” I wanted my string art to feel both clean and dynamic, and I immediately knew I wanted to have multiple convex curves framing the center of my piece. I was also inspired by my Looking Outward piece from last week; I looked at a piece of wood that had a rippling effect, and I wanted to convey that sense of dynamic motion as well. In order to do that, I chose to have my strings be responsive to the mouse’s motion, and I created a spinning yellow star that follows the mouse to further imply motion.

Van Gogh’s “Starry Night,” which is comprised of similar blue, teal, and yellow colors as the ones in my piece.
A wooden-ripple work by Christoph Hermann that I reviewed for my Looking Outwards 03.

Ian Kaneko LookingOutwards-04

Butterfly at Phipps Botanical Gardens

This weeks project comes from our very own CMU, specifically the experimental sound synthesis class. Two years ago, they did a project in collaboration with Phipps Botanical Gardens to create an intriguing soundscape a temporary butterfly exhibit.

I don’t know much about the specific algorithms that were used. However, I do know that they didn’t want to simply create ambient music that would stay on loop. Instead, they created soundscapes that constantly changed with the motion around them, meaning the same music would never happen twice.

The creators were still able to put lots of creativity into the music, even with the more unpredictable aspects of the project. Through the careful design of the synthesizers used, the tempo, and texture of the music they were able to orchestrate the exact feelings they wanted to evoke in the listeners.

Video by CMU detailing the project