Project 04 – String Art

sketch
/* eliana fleischer
    efleisch
    section e */ 

//GLOBAL VARIABLES
// these global variables will be used to be able to change the values while drawing different string arts
    
var dx1;
var dx2;
var dy1;
var dy2;

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

var numLines1 = 50;
var numLines2 = 15;

var ax1 = 50;
var ax2 = 150;
var ay1 = 50;
var ay2 = 300; 

var bx1 = 300;
var bx2 = 350;
var by1 = 300;
var by2 = 100;


function setup() {
    createCanvas(400, 300);
    background(124,158,129);
}

function draw() {

    push(); // push will create the bold deges of the lines
    stroke(0);
    strokeWeight(4);

    ax1 = floor(random(15,200)); // randomize x values for the two lines
    ax2 = floor(random(15,200));
    bx1 = floor(random(200,385));
    bx2 = floor(random(200,385));

    ay1 = floor(random(15,150)); // randomize the y values for the two anchor lines
    ay2 = floor(random(150,285));
    by1 = floor(random(150,285));
    by2 = floor(random(15,150));

    line(ax1, ay1, ax2, ay2); // anchor line A 
    line(bx1, by1, bx2, by2); // anchor line B


    dx1 = (ax2-ax1)/numLines2; // creates dx and dy for the lines created divided by numLines
    dx2 = (bx2-bx1)/numLines2;
    dy1 = (ay2-ay1)/numLines2;
    dy2 = (by2-by1)/numLines2;


    var x1 = ax1; // set the starting points of the string art lines to the anchor line values
    var y1 = ay1;
    var x2 = bx1;
    var y2 = by1;

    line(15,15, 385, 15); // upper anchor line
    line(15,285,385,285); // lower anchor line

    var x3 = 15; // creates the initial changing x values
    var x4 = 385; 
    var x5 = 15;
    var x6 = 385;

    dx3 = (385-15)/numLines1; // dx for the lines going to the left
    dx4 = (15 - 385)/numLines1; // dx for the lines going to the right


    pop();


    for (var i = 0; i <= numLines1; i +=1){ // for loop making the background lines
        stroke(243,204,113); // orange lines
        line(15,15, x3, 285); // lines going to left

        stroke(247,255,118); // yellow lines
        line(385,15,x4,285); // lines going to the right

        stroke(236,180,236); //purple lines
        line(15,285,x5,15); //lines from the bottom going left

        stroke(236,180,180); // pink lines
        line(385,285,x6,15); // lines from the bottom going right


        x3 += dx3; // changes the x values by the set dx
        x4 += dx4;
        x5 += dx3;
        x6 += dx4
    }

    stroke(29,5,95);
    strokeWeight(3)
    for (var i = 0; i <= numLines2; i+=1){
        line(x1, y1, x2, y2); // uses the randomly generated points to start lines
        x1 += dx1; // chnages the values by the set dxs and dys 
        y1 += dy1;
        x2 += dx2;
        y2 += dy2;
    }
    noLoop();
}

I think the most difficult part of this project for me was creating an interesting image. I did this by randomizing one of the string art shapes.

Project 03 – Dynamic Drawing

sketch
/* eliana fleischer
    efleisch
    section e */ 

var d = 10
var x = 20
var y = 20 // sets up variables for x, y and the size of the heart
    
function setup() {
    createCanvas(600, 450);
    background(220);
}

function draw() {

    background(255 - mouseX); //makes background go from lighter to darker as the mouse moves in the positive x direction

    x = mouseX; // makes x mouse x and y mouse y + 10 
    y = mouseY + 10;
    noStroke();
    push(); // push so only small heart is filled blues
    fill(0,0,mouseX); // fills in shades of blue relativeto the x position of the mouse
    beginShape();
    vertex(30, 40); // starting point for the small heart right side
    bezierVertex(40, 10 , 55 , 50, 30 , 70); // anchor points for the small heart right side
    vertex(30,40); // starting point for the small heart left side
    bezierVertex(20, 10 , 5, 50, 30, 70); // anchor points for the small heart left side 
    endShape();
    pop();

    d = mouseX; // makes the size of the heart relative to the mouse position
    d = constrain(d, 0, 300); // keeps the size fo the big heart from getting bigger than the canvas

    if (mouseX >= mouseY){ // filling the heart in a gradient relative to x and y
        fill(mouseX,0,0);

    } else {
        fill(mouseY, 0, 0);
    }

    beginShape(); 
    vertex(x, y); // makes starting coordinates for the big heart x and y 
    bezierVertex(x + d, y - (d) , x + (d) , y , x , y + (d)); // anchor points scaled by d 
    vertex(x, y);
    bezierVertex(x - d, y - (d) , x - (d), y, x, y + (d));
    endShape();

}

I think the hardest part of this project for me was figuring out different ways to create the dynamic aspect of this project.

Project 04-String Art

These are my abstract butterflies.

sketch
// Natalie Koch
// nataliek
// Section A

// Abstract Butterflies

var numLines = 400;
var c1 = ['pink', 'blue' , 'purple'] //color 1
var c2 = ['blue', 'red', 'yellow'] //color 2
var c3 = ['pink', 'green' , 'orange'] //color 3
var dx1 = 10*(150-50)/numLines;
var dy1 = 10*(300-50)/numLines;
var dx2 = 10*(350-300)/numLines;
var dy2 = 10*(100-300)/numLines;
function setup() {
    createCanvas(400, 400);
    background(0);

}

function draw() {
    function a (x1, y1, x2, y2,dx1, dy1, dx2, dy2, colorList) {
        for (var i = 0; i <= numLines; i += 1) {
            stroke(random(colorList))
            line(x1, y1, x2, y2);
            x1 += cos(i)*dx1*15;
            y1 += sin(i)*dy1*15;
            x2 += cos(i)*dx2*20;
            y2 += sin(i)*dy2*20;
            
        }
    }
    a(50,50,300,300,dx1,dy1,dx2,dy2, c1)
    a(50,200,200,375,dx1,dy1,dx2,dy2, c2)
    a(150,25,300,200,dx1,dy1,dx2,dy2, c3)

    noLoop()
}

Looking Outwards-04

For this project, a work that I found to be very interesting was “Purform – White Box, Audiovisual Performance” from 2010. I was mesmerized by the abstract visualization of sound on the giant screens, the animations smooth and flowing along to the music playing. This is something that I admire because I can recognize how difficult something like this must be to achieve. I personally very much love music, and to see it visualized through waves and other abstract shapes with this technology was very exciting. I’m not quite sure about the algorithms needed, but I would assume that they used trigonometric functions in order to make these kinds of shapes. The artist needed to be able to visualize how they wanted the sound to be portrayed on these screens, because this kind of project could have been interpreted in many different ways. The artists’ vision needed to be specific and they needed to use coding and other technology to make their vision a reality.

Watch the video here.

Looking Outwards-04

The piece of work I selected is “data.matrix” by Ryoji Ikeda . The piece was released in December 2005. When listening to the piece its electronic quality comes to the forefront. It sounds almost as if it is made up of “beep boops” and tapping. However, there is an effect added to the sound which really enhances its electronic energy. Additionally, the piece sounds closer to noise frequencies than a traditional music piece. Ikeda’s pieces are often compared to a soundscape and that is apparent in data.matrix. Ikeda has had large scale sound installations all across the world and had prominent work at the TWA flight center at JFK. It reads more as art, and even though I was not able to find what algorithm Ikeda used for this piece it is apparent that some kind of algorithm must have been used. There is a clear order and organization to the piece that makes it feel quite mathematical and computational.

Looking Outwards: 04

AIVA is a software that aims to create AI-generated music. It gives its users the chance to select from a preset of tools or import their own inspiration in order to create a unique song or beat of their own. The creators aim for AIVA to be used as a supplement to other projects. Game developers, composers, and more can use AIVA to add an emotional supplement to the creative process. As someone who loves music, this project is especially interesting to me as I feel as if music is very key to the emotional experiences we find in other forms of entertainment. Many of these aspects intersect, creating a very personal experience for the consumer. What is different about AIVA, though, is that this experience can be created by an everyday person who might not be too versed on how to compose such music for themselves. This allows those who wish to experiment, and gives those who are using it for professional purposes to buy the copyright to the music that is created, which is something not usually seen in apps like these.

Project-04-String Art

sketch
// Emily Franco
// efranco
// Section C

//num of string lines
var numLines = 50;

//base lines
var dx1;
var dy1;
var dx2;
var dy2;

//string lines
var x1;
var y1;
var x2;
var y2; 

//counts sets of lines
var setCount = 0;

//line points
var lnx1; 
var lny1;
var lnx2;
var lny2;

//colors
r = 0; 
g = 0; 
b = 0;
function setup() {
    createCanvas(400, 300);
    background(220);
    text("p5.js vers 0.9.0 test.", 10, 15);
    background ("white");
}

function draw() {
	var halfW = width/2;
	var halfH = height/2;
	
	if (setCount == 0){
		//-----first line set--------
		lnx1 = 0; 
		lny1 = 0;
		lnx2 = width/10;
		lny2 = height-(height/12);
	}else if (setCount == 1){
		//-----second line set--------
		lnx1 = width/10; 
		lny1 = height-(height/12);;
		lnx2 = halfW;
		lny2 = height-(height/7);
	}else if (setCount == 2){
		//-----third line set--------
		lnx1 = halfW; 
		lny1 = height-(height/7);
		lnx2 = width-(width/6);
		lny2 = height-(height/2);
	}else if (setCount == 3){
		//-----fourth line set--------
		lnx1 = width-(width/6); 
		lny1 = height-(height/2);
		lnx2 = width-(width/3);
		lny2 = 0;
	}else if (setCount == 4){
		//-----fifth line set--------
		lnx1 = width-(width/3); 
		lny1 = 0;
		lnx2 = width/2;
		lny2 = height/8;
	}else if (setCount == 5){
		//-----fifth line set--------
		lnx1 = width/2; 
		lny1 = height/8;
		lnx2 = width/9;
		lny2 = height/9;
	}else if (setCount>5){
		//stop looping
		noLoop();
	}

	//generate random colors
	r = random (255);
	g = random (255);
	b = random (255);

	push();
	noStroke();
	//fill trangle between base lines
	fill (r,g,b,100);
	beginShape();
	vertex (lnx1,lny1);
	vertex (halfW,halfH);
	vertex (lnx2,lny2);
	endShape();
	

	//draw base lines
	line(halfW,halfH,lnx1,lny1);
	line(halfW,halfH,lnx2,lny2);

	pop(); 

	//get position increment for string line
	dx1 = (halfW-lnx1)/numLines;
	dy1 = (halfH-lny1)/numLines;
	dx2 = (lnx2-halfW)/numLines;
	dy2 = (lny2-halfH)/numLines;

	//reset string postions
	x1 = lnx1;
	y1 = lny1;
	x2 = halfW; 
	y2 = halfH;

	for (var i = 0; i<numLines; i+=1){
		//inverted stroke color
		stroke (255-r,255-g,255-b,150);
		//draw string lines
		line (x1,y1,x2,y2);
		x1 += dx1;
		y1 += dy1;
		x2 += dx2;
		y2 += dy2;
	}

	setCount += 1;
}

Looking Outwards-04

Clare Katyal

I researched Seiko Mikami’s Desire of Codes. This is a project which uses a variety of sensors and small lights, as well as cameras to follow the movements of visitors. The movements trigger a response throughout all of the units, and lights are pointed on the visitor. I find it very intriguing how Mikami programmed all of these units to work in tandem to create an interactive experience for visitors. The sound created gives a slightly uneasy feeling, as the sounds given off by the guests are translated to sound like insects flying. I think this is an interesting idea, especially because of the creators intention to play with time and space.
https://www.youtube.com/watch?v=XjUC1xjRek0
2011, Desire of Codes, Seiko Mikami

Moments of Inertia / Luke DuBois / Looking Outwards 04 – Sound Art

This week I’m looking at a project by Luke DuBois titled Moments of Inertia. This is a series combining the music of violinist Todd Reynolds and “interactive video”.

To create the images seen, DuBois’ built software that reorganizes and maps Reynolds’ audio loops onto visual imagery. The computer uses analysis of changes in pitch, amplitude, and performance style to re-animate footage of people moving and interacting with the world in various ways (playing a sport, using a phone, etc.). This method of perception can be very uncomfortable and fascinating in its own right. I think the contemporary process of music making that gives this work its roots is also very interesting. I wonder if it would have the same effect if more ‘traditional’ music was used instead.

Moments of Inertia (2010) from R. Luke DuBois on Vimeo.