Hannah K-Project-04

sketch-213.js

function setup() {
    createCanvas(640, 480);
    background(255,220,240);
}

function draw() {
    // Point given by coordinates (topXmid, topYmid) 
    // is where all lines drawn from left of canvas meet
    var topXmid = width/2;
    var topYmid = 0;
    // Point given by coordinates (rightXmid, rightYmid)
    // is where all lines drawn from top of canvas meet
    var rightXmid = width;
    var rightYmid = height/2;
    // Point given by coordinates (bottomXmid, bottomYmid) 
    // is where all lines drawn from right of canvas meet
    var bottomXmid = width/2;
    var bottomYmid = height;
    // Point given by coordinates (leftXmid, leftYmid)
    // is where all lines drawn from bottom of canvas meet
    var leftXmid = 0;
    var leftYmid = height/2;

    var tX = 0; // Initial x-value of lines drawn from top
    var bX = 640; // Initial x-value of lines drawn from bottom
    var rY = 0; // Initial y-value of lines drawn from top
    var lY = 480; // Intial y-value of lines drawn from bottom

    // tX = Canvas top x-value. Make bigger.
    stroke(72,118,255);
    for (var i = 0; i < 5; i++) {
        strokeWeight(2);        
        var tY = 0; // Canvas top y-value is zero
        line(tX, tY, rightXmid, rightYmid);
        // (width/2) / 5 is to create 5 equal 
        // x increments across half the canvas width
        tX = tX+((width/2)/5);
    }

    // rY = Canvas right y-value; Make bigger.
    stroke(39,64,139);
    for (var i = 0; i < 5; i++) {
        strokeWeight(2);
        var rX = width;
        line(rX, rY, bottomXmid, bottomYmid);
        // (height/2) / 5 is to create 5 equal
        // y increments across half the canvas height
        rY = rY+((height/2)/5);
    } 

    // bX = Canvas bottom x-value; Make smaller.
    stroke(99,184,255);
    for (var i = 0; i < 5; i++) {
        strokeWeight(2);
        var bY = height;
        line(bX, bY, leftXmid, leftYmid);
        bX = bX-((width/2)/5);
    }


    // lY = Canvas left y-value. Make smaller. 
    stroke(0,229,238);
    for (var i = 0; i < 5; i++) {
        strokeWeight(2);
        var lX = 0; // Canvas left x-value is zero
        line(lX, lY, topXmid, topYmid);
        lY = lY-((height/2)/5);
    }

}

This project definitely seemed simpler before I started! I did not realize I would need to use as many variables as I ended up using. Drawing a picture and calculating the coordinates before I started really helped.

20160923_202031

James Katungyi-LookingOutwards-04

Artist: Jono Brandel

Title: Carolina-Experimental musical landscape for Kimbra

Year: 2015

Carolina is an Android application that maps a soundtrack to the changing landscape as one drives through. It plays to artist Kimbra’s ‘road to Carolina’. The camera’s movement is mapped to a spline. Figures pop up as 2D abstractions of the landscapes and fly by just like landscape features. The figures are triggered by instruments in the music track. The combination of simple 2D forms triggered by a soundtrack and moving in a 3D space is a rich piece of work.

The application uses a combination of Two.js for the landscape abstractions and Three.js as the movement of the camera along the spline. The 2D-3D interaction is evident in the application. The various music instruments are represented by specific shapes which in turn trigger the ‘landscape features’ in the camera view, thereby linking each musical instruments to a distinct 2D landscape feature.

The final form is an animated journey through a landscape whose features appear in consonance with the soundtrack. It is a synthesis of music and art in a digital platform just as the artist sought to do.

Brian Bizier-Looking Outwards-04

This is a project called Tilt Brush that takes place within virtual reality. Essentially, it’s like a 3D drawing program that you can edit in VR. Google recently added “Audio Brushes,” which allows the drawing to detect sound and then procedurally produce or alter paintings based on that sound. I think this is really cool technology, the way it combines the four areas of virtual reality, sound, visual art, and procedural creation. I’m sure that for most this form of creation is prohibitively expensive, as it requires a computer capable of running VR, a headset of some sort, and decent recording equipment. A shame, because one of the great things about digital art is the way it can make art available to a wide variety of people, both powerful tools of creation and the art itself for consumption.

Project-04-String Art

sketch

//Rebecca Enright
//Section A
//renright@andrew.cmu.edu
//Project-04; String Art

function setup() {
    createCanvas(640, 480);
}

function draw() {
    background(0);
//iteration for dark blue lines
	for (i = 0; i < 20; i = i + 1) {
//create variable for changing y value
	    var a = (i * 10);
//dark blue lines across canvas left to right
        stroke(10,82,180);
        line(width/2, height/2, width - mouseX, a);
    }
//iteration for red lines
    for (i = 0; i < 20; i = i + 1) {
//reestablish a
        a = (i * 10);
//red lines from right to left across canvas
        stroke(255,0,0);
        line(width/2,height/2,mouseX,a);
    }
//iteration for green lines
    for (i = 0; i < 20; i = i + 1) {
//reestablish a    
        a = (i * 10);
//green lines going up from left to above the dark blue
        stroke(0,255,0);
        line(0, height, width/2, a);
//second set of green lines from right to above dark blue
        line(width,height,width/2,a);
    }
//iteration for pink lines
    for (i = 0; i < 50; i = i + 1) {
//create variables for x1, y1, x2, y2
    	var x = 0;
    	var y = 480;
    	var xx = 320;
    	var yy = 0;
//create variables for increments of x1,y1 and x2,y2
        var xstep = (i*20);
        var ystep = (i*5);
        var xxstep = (i*.1);
        var yystep = (i*10);
//increment x,y and xx,yy values
        x -= xstep;
        y -= ystep;
        xx += xxstep;
        yy += yystep;
//create pink curvy lines that overlap green
        stroke(255,124,155);
        line(x,y,xx,yy);
    }
//iteration for 2nd set of pink lines
    for (i = 0; i < 50; i = i + 1) {
//create variables for x1, y1, x2, y2
    	x = 640;
    	y = 480;
    	xx = 320;
    	yy = 0;
//create variables for increments of x1,y1 and x2,y2
        xstep = (i*20);
        ystep = (i*5);
        xxstep = (i*.1);
        yystep = (i*10);
//increment x,y and xx,yy values
        x += xstep;
        y += ystep;
        xx += xxstep;
        yy += yystep;
//create pink curvy lines near purple curve
        stroke(255,124,155);
        line(x,y,xx,yy);
    } 
//iteration for yellow lines
    for (i = 0; i < 50; i = i + 1) {
//create variables for x1, y1, x2, y2
    	x = 0;
    	y = 480;
    	xx = 0;
    	yy = 0;
//create variables for increments of x1,y1 and x2,y2
        xstep = (i*20);
        ystep = (i*5);
        xxstep = (i*.1);
        yystep = (i*10);
//increment x,y and xx,yy values
        x += xstep;
        y += ystep;
        xx += xxstep;
        yy += yystep;
//create yellow curvy lines
        stroke(255,255,0);
        line(x,y,xx,yy);
    }   
//iteration for purple lines
    for (i = 0; i < 50; i = i + 1) {
//create variables for x1, y1, x2, y2
    	x = 640;
    	y = 480;
    	xx = 640;
    	yy = 0;
//create variables for increments of x1,y1 and x2,y2
        xstep = (i*20);
        ystep = (i*5);
        xxstep = (i*.1);
        yystep = (i*10);
//increment x,y and xx,yy values
        x -= xstep;
        y += ystep;
        xx += xxstep;
        yy += yystep;
//create purple curvy lines that overlap green
        stroke(151,0,151);
        line(x,y,xx,yy);
    }
    for (i = 0; i < 43; i = i + 1) {
    	var a = (i * 15);
    	stroke(0,255,255);
    	line(width/2,height/2 - 50,a,480);
    }

}

This project was a lot of fun to experiment with. I have always wanted to try creating string art, and it’s a cool experience to do it using technology, especially because the strings have the ability to move if you want them to.

Denise Jiang-Project 04- String Art

sketch

var hstep=20;//horizontal
var dstepX=10;//diagonal x
var dstepY=15;//diagonal y
function setup() {
    createCanvas(640, 480);
}

function draw() {
	background("lightpink");
	stroke("white");
	line(0,height/2,width,height/2);
	
	var dxTL=310;//x of top left diagonal
	var dyTL=1.5*dxTL-240;//y of top left diagonal
	var x1=0;//x for top left

	var dxBL=310;//x for bottom left diagonal
	var dyBL=-1.5*dxBL+720;//y for bottom left diagonal
	var x2=0;//x for bottom left

	var dxTR=480;//x for top right diagonal
	var dyTR=-1.5*dxTR+720;//y for top right diagonal
	var x3=320;//x for top right

	var dxBR=480;//x for bottom right diagonal
	var dyBR=1.5*dxBR-240;//y for bottom right diagonal
	var x4=320;//x for bottom right

	var dxMTL=320;
	var dyMTL=-1.5*dxMTL+720;
	var dxMTR=480;
	var dyMTR=1.5*dxMTR-240;

	var dxMBL=320;
	var dyMBL=1.5*dxMBL-240;
	var dxMBR=480;
	var dyMBR=-1.5*dxMBR+720;

	var x=0;
	var x5=640;

	for (i=0; i<17; i++) {
		
		stroke("white");
		strokeWeight(1);
		line(x1,height/2,dxTL,dyTL);//top left
		x1=x1+hstep;
		dxTL+=-dstepX;
		dyTL+=-dstepY;

		line(x2,height/2,dxBL,dyBL);//bottom left
		x2=x2+hstep;
		dxBL+=-dstepX;
		dyBL+=dstepY;

		line(x3,height/2,dxTR,dyTR);//top right
		x3=x3+hstep;
		dxTR+=-dstepX;
		dyTR+=dstepY;

		line(x4,height/2,dxBR,dyBR);//bottom right
		x4=x4+hstep;
		dxBR+=-dstepX;
		dyBR+=-dstepY;

		line(dxMTR,dyMTR,dxMTL,dyMTL);
		dxMTL+=-dstepX;
		dyMTL+=dstepY;
		dxMTR+=-dstepX;
		dyMTR+=-dstepY;

		line(dxMBL,dyMBL,dxMBR,dyMBR);
		dxMBL+=-dstepX;
		dyMBL+=-dstepY;
		dxMBR+=-dstepX;
		dyMBR+=dstepY;

		line(x5,0,x5,479);
		x5=x5-hstep;
		line(x,0,x,480);
		x=x+hstep;

	}
	
	noLoop();
	println();
}

For this project, I used straight lines and their tangents to form curves. The overall shape contains six modules.

Looking Outwards -04

Google created the Tilt Brush in 2014 which had turned rooms into canvases, as it is a way to paint in virtual reality. They also have a feature that enables sound to affect the paint’s movement

As seen in the video above, this device allows you to essentially create your own world and bring it to life using sound. I am an avid daydreamer, and to create the worlds that I think of and have the ability to actually interact with them would be amazing.

taken from The Creators Project

I was unable to find much information about the algorithms used, but, since the sound-movement is an update and not a new device, I believe it builds from the original and just incorporates the sound through a new set of algorithms that can be combined with the pre-existing ones.

There are also links to the articles that I found about this below.

http://thecreatorsproject.vice.com/blog/paint-sound-with-audio-reactive-tilt-brush

http://www.theverge.com/2016/8/2/12350844/tilt-brush-virtual-reality-painting-music-visualization-audio-reactor

Denise Jiang- Looking Outwards 4

I found a sound project named “Mew” a very interesting experiment of interactive computational art. It is designed by students of Royal College of Art in London, UK. It is an responsive object, containing a distance sensor that let “Mew” interact with people when they walk towards it and encourages them to make further interactions. When they stroke the fur, it emits animal sounds according to the angle and how hard the press is. Observer can manipulate the sound while experiencing a touch of the fur. According to one of the student’s website, they created the project using sensors by Arduino. They had in total four circuits that each connects a sensor. They created sound effects using Max MSP, and there is a mini Mac imbedded inside the “Mew”. This project also took aesthetic values in. Through a simple form a stool, “Mew” reminds the observer that the animal sounds are programmed, although it gives a feeling that it is alive. The fur grabs the attention as it should, making the project interesting.

Mew Process
Emily Groves,Jackie Ford, Jakub Pollág and Paula Arntzen
2012

Sarita Chen – Project 04 – String Art

sketch

function setup() {
    createCanvas(640, 480);
   
}

function draw() {
	 background(0); // black.

	 var sizeV = 20; //Variable for the increment.

	 
	
	 strokeWeight(1.5);
	 stroke(180,180,255); //Blue
	 for(var b = 0; b < 50; b++)
	 	line(b*sizeV,height,20,b); // Blue lines 


	 stroke(100,255,255); // Teal
	 for(var r = 5; r < 20; r++)
	 	line(r*sizeV,1,640,r*20); // Teal lines 

	 stroke(200,140,255); //Pink
	  for(var g = 0; g < 40; g++)
	 	line(g*sizeV,480,1,g*10); // Pink lines 

	 stroke(255,180,180); //Purple
	  for(var y = 0; y < 50; y+=2)
	 	line(y*sizeV,height,480,y*2); // Purple lines 

	  stroke(255,180,255); //Lavender
	  for(var y = 0; y < 50; y+=2)
	 	line(y*sizeV,height,300,-y*2); // Lavender lines

  	 stroke(150,230,255);
	 fill(150,230,255);
	 ellipse(width/2,height/2,100,100);

	 // Just for added effect.
	 if (mouseIsPressed) {
	 	ellipse(random(50,150),100,20,20);
	 	ellipse(random(380,400),400,50,50);
	 	ellipse(random(200,300),300,20,20);
	 	ellipse(random(100,200),400,50,50);
	 	ellipse(random(50,100),200,50,50);
	 	ellipse(random(400,460),100,20,20);
	 	ellipse(random(50,150),20,20,20);
	 }
  
}

(Please click.)

At first I wanted to have the strings coming out from the four corners of the canvas, but to me it was kind of boring so I just randomly placed them instead. I had some difficulty figuring out how to get the strings to curve in the beginning. My goal was to make the circle look like it was in a room of string.

sihand – project 04 – String Art – Golden Ratio

sketch

//Sihan Dong
//sihand@andrew.cmu.edu
//Section B
//Week 04 Project: string art
//a golden ratio inspired string art

var squareWid = 390;
var gratio = 0.61803398875;
var interm = 10; //the distance between each "pin" for the strings

function setup() {
    createCanvas(480, 640);
    background(255);
}


function draw() {
//draw the picture in the middle of the canvas
	curves(20,0);
}

function curves (x, y) {
	push();
	translate (x, y);

//each pin is 15-30 pixels away from another
	interm = random (15, 30);  

	for (i=0; i<200; i++) {
	//stop generating new squares when the width is too small
		if (squareWid>1) { 
	
	//draw the first square and triangle
		fill(random(0,200), random(0,200), random(0,200));
		rect(0, 0, squareWid, squareWid);
		noStroke();
		fill(random(100,255), random(100,255), random(100,255));
		triangle(squareWid, 0, 0, squareWid, squareWid, squareWid);

	//generating the strings
		for (j=0; j<interm; j++) {
			stroke(255);
			line(squareWid*j/interm, 0, 0, squareWid*(interm-j)/interm);
			line(squareWid*j/interm, squareWid, squareWid, squareWid*(interm-j)/interm)
		}

	//translate and rotate the coordinates for the next square
		translate(0, squareWid+squareWid*gratio+1);
		rotate(-PI/2);

	//set the dimension according to the golden ratio for the next square
		squareWid = squareWid*gratio;
		
		}
	}
	pop();
}

As you can probably tell, this piece of string art is inspired by the Golden Ratio spiral. I tried my best to simply the codes while still representing the concept of Golden Ratio. Every time you refresh the page, the “threadcount” of the strings will change, as well as the color blocks.

nautilus-shell-with-golden-ratio-spiral-overlay-2

 

 

Brian Bizier-Project 04-String Art

sketch

function setup() {
	createCanvas(640,480);
}

function draw() {
	for (var i = 0; i < 128; i++) {
		line(i*5, 0, 0, 480);
		line(i*5, 480, 640, 0);
		line(i*5, 240, 0, 480);
		line(i*5, 240, 640, 0);	
	}
}

I ended up liking the starkness of the black and white. I like how the use of simple lines ended up creating patterns in the corners of the drawing.