Spectra (2004) is a series of installations created by the new media artist Ryoji Ikeda. It is produced using an array of xenon search lights that is accompanied by a sound system of a mathematically derived score. His work has been installed in multiple locations including London, Tasmania, and JFK International Airport, and the number of lights and scales vary depending on the sites. Its white lights and ultra-high frequency sound component present the viewers with an ethereal experience as they walk through the field of light. The scale of the work is one of its most noteworthy features; the xenon lights shoot straight up into the sky, allowing a broad range of audiences to see the work. I would love to experience the work’s symphony of ultra pure sine sound waves; its sound is just as beautiful and celestial as the captivating visuals.
Month: September 2017
dnam-project-04
//Doo Won Nam
//Section B
//dnam@andrew.cmu.edu
//Project-04
function setup() {
createCanvas(400, 400);
}
function draw() {
var unoY = 200; //y for triangle
var unoX = 20; // x for triangle
var yin = 37; //y increase
var xin = 30; //x increase
//setting variables and x and y to change throughout code
var x1 = 10;
var y1 = 400;
var x2 = 400;
var y2 = 10;
background(300, 100, 100); //pink
//start loop
for (var i=0; i <200; i++) {
strokeWeight(1);
stroke(191, 50, 80); //dark pink
line(i, i*10, i*5, 2); //line that goes across canvas
stroke(mouseX, mouseY, mouseX); //changes color along mouse movement
line(x1, i * yin, i * mouseX - 50, y1); //mouseX - 50 for increase of size
line(x2, i * yin, i * xin, y2);
line(xin * i, y1, x2, height - (i * mouseX) - 50);//size increase,right top
line(x1, height - (i * yin), i * x1, y2);
stroke(100, 100, 180);
line(unoX + 350, unoY, i/2 + 200, 400); //triangle at bottom
line(200, unoY, i - 200, 0); //triangle at left top
}
}
I made some of the lines (including the triangle which is just made out of bunch of lines). I changed some of the y increase to mouse commands to add interactions to the project. With the project, I wanted to create something like a light show that would change colors as well.
Ziningy1 – SectionC – Project 4 – String art
//Zining Ye
//15104 lecture 1 recitation C
//ziningy1@andrew.cmu.edu
//Project-04
var x=100;
var xstep=3;
var y=1;
var ystep=3;
function setup() {
createCanvas(400, 300);
strokeWeight(1);
}
function draw() {
background(0);
angleMode(DEGREES);
//the red twisted string curve
stroke(250,200,200);
for (var i = 0; i < 400; i += 2) {
line(3*i, height-2*i-y, 2*i, 1.5*i+20+y);
}
//the right and left green string curve
stroke(200,250,200);
for (var i = 0; i<200; i += 2){
line(x, 2*i,3*i,height/2+2*i+x);
line(400-x,2*i,400-3*i,height/2+2*i+x);
}
//blue rotational string curve
stroke(200,200,250);
for (var i = 0; i<300; i += 2){
line(x+i,300*sin(i),width-x-20-i,100*sin(i))
}
//adding the xstep and ystep will make the string start moving
//the conditonal makes the repeat between left and right,
y += ystep;
if(y>300){
y = -y
}
x += xstep;
if(x>600){
x= -x;
}
}
It is pretty abstract for me to create a string art image in my mind before coding it. I started by randomly test some of the combination of line positions, then I started to understand more intuitively how i would like to construct my art. I find adding the xstep, ystep very effective in making the string art in motion, which also create some sort of visual illusion that is pleasing to look at.
akluk – Section A – Looking outwards-04
The project that I have decided to write about is Liquid Percussion, by TRUMPIN or Gerhard Trimpin.
It is an acoustic sculpture that creates music based on the amount of rain. The water droplets will then fall and strike the various unique instrument at the bottom. The Artist has always been been very passionate about blending electronics, art and music together and this piece is no exception. I don’t think any specific algorithms are used in the creation of this project, since most of it is dependent on nature and rainfall. What really impresses me about this work is how its actually able to create such complex and interesting melodies and rhythms from this sculpture. You can see more of his work from the link below.
http://www.trimpinmovie.com/#/selectedworks/
abradbur-Project-04-String Art
function setup() {
createCanvas(400, 300);
strokeWeight(1);
}
function draw() {
background(150, 53, 54);
//black string
for ( x = 0; x < 400; x += 20){
stroke(84,1,3);
line(x, 0, x * 1.5, 120);
line(1.5 * x, 120, 1.2 * x, 300);
}
//light pink string
for (y = 20; y < 300; y+= 50){
noFill();
stroke(254, 170, 171);
bezier(0, y * 1.5 , 50, y, 20, y * .4, 400, y);
}
//strawberry string
for (a = 0; a < 200; a += 10){
noFill();
stroke(210, 107, 108);
bezier(0, a * 0.5, 30, a * 1.3, 300, a, 400, a *2);
bezier(1.5 * a, 120, 1.2 * a, 300, 0, a, 40, 20);
stroke(140, 123, 172);
bezier(50 * a, 120, 1.2 * a, 300, 0, a, 40, 20);
bezier(100 * a, 120, 1.2 * a, 300, 0, a, 40, 20);
}
//purple string
for (b = 350; b < 400; b+= 20){
bezier(300, 60, b, 40, 20, 10 * b, 120, 1.2 * b);
bezier(30, 20, b, 40, 20, 10 * b, 120, 1.2 * b);
bezier(60, 20, b, 40, 20, 10 * b, 120, 1.2 * b);
bezier(100, 20, b, 40, 20, 10 * b, 120, 1.2 * b);
bezier(170, 22, b, 40, 20, 10 * b, 120, 1.2 * b);
bezier(250, 40, b, 40, 20, 10 * b, 120, 1.2 * b);
}
}
With this project I had fun playing with bezier curves and seeing what resulted from different loops in the code. I didn’t exactly have a distinct form in mind, and I didn’t want to make one because I felt it would take away from my exploration of the piece.
Matthew Erlebacher Project-04 String Art
// Matthew Erlebacher
// Section B
// merlebac@andrew.cmu.edu
// Project-04
function setup() {
createCanvas(400, 300);
background(0);
var verticalY = height
// Creates variable for verticle lines
var horizontalX = width
// Creates variable for horizontal lines
var graphSpace = 25
// Creates space for grid lines
var SpaceX = 10
// Creates spacing between
for (var verticleX = 25; // Gives a variable for the x-coordinate of each line
verticleX <= 375; // Makes the lines stop at the end of the canvas
verticleX += graphSpace /* Increases the x-coordinate of each line */) {
stroke(255);
line(verticleX, 0, verticleX, verticalY);
} // Creates white verticle lines across the canvas
for (var horizontalY = 25; // Gives a variable for the y-coordinate of each line
horizontalY <= 275; // Makes the lines stop at the end of the canvas
horizontalY += graphSpace /* Increases the y-coordinate each line */) {
stroke(255);
line(0, horizontalY, horizontalX, horizontalY)
} // Creates white horizontal lines across the canvas
for (var greenX = 0; // Creates a variable for the green lines
greenX < width / 2; // Sets a limit on the green lines
greenX += SpaceX /* Increases the variable greenX */) {
stroke(0, 255, 0);
line(greenX /* Varies the first point */, height / 2, width / 2,
height / 2 - 10 - greenX /* Makes it so the second point increases and is always over the midpoint */);
} // Creates pattern of green lines
for (var redX = 0; // Creates a variable for red lines
redX < width / 2; // Sets a limit on the red lines
redX += SpaceX /* Increases the variable redX */) {
stroke(255, 0, 0);
line(redX /* Varies the first point */, height / 2, width / 2,
height / 2 + 10 + redX /* Makes it so the second point increases and is always under the midpoint */);
} // Creates pattern of red lines
for (var grayX = 400; // Creates a variable for the gray lines
grayX > width / 2; // Sets a limit on the gray lines
grayX -= SpaceX /* Decreases the variable grayX */) {
stroke(125);
line(grayX /*Varies the first point */, height / 2, width / 2,
height / 2 + 410 - grayX /* Makes it so the second point increases and is always under the midpoint */);
}
for (var blueX = 400; // Creates a variable for the blue lines
blueX > width / 2; // Sets a limit on the blue lines
blueX -= SpaceX /* Decreases the variable blueX */) {
stroke(0, 0, 255);
line(blueX /* Varies the first point */, height / 2, width / 2,
height / 2 - 410 + blueX /* Makes it so the second point increases and is always over the midpoint */);
}
}
When I started this assignment I had no idea what to do for this project. However, after I reviewed the lecture notes and looked at some examples on the internet I eventually figured out what I wanted to do. I decided to have the lines create a diamond formation since it seemed visually appealing. I also decided to include grid lines in the background since it made the lines pop more.
Lrospigl – Looking Outwards – 04 (Bebot)
Bebot is robot synth. It is an iPhone app that allows you to control the effects and the scale, all while a little robot sings at you. While I really like the app, what interested me more is that it doesn’t have a limiting range. It really is up to the suer and how they take it. For example, this man tested the limits of Bebot to make an interesting and complicated song.
Since it’s a multitouch app, the writer of the code cannot assume how many fingers the user is actually going to use. In the video for example, the user here used up to 4 fingers at a time, something that the author took account for.
Official Apple App store bebot site .
rgroves – String Art – Section B
//Rebecca Groves
//rgroves@andrew.cmu.edu
//Section B
//Project 4 String Art
//sky - position of the ellipses
var x;
var y;
//spacing of the mountains
var m1 = 30;
var m2 = 25;
var m3 = 5;
//lake spacing
var l = 1;
var k = 1.02; //constant to increase spacing by
//foreground hillsspacing
var f1 = 2;
var f2 = 2.2;
var a = 260; //top of the back hill
var b = 310; //top of the middle hill
var c = 380; //top of the front hill
function setup() {
createCanvas(600, 400);
background(200, 210, 200);
//sky
for (var i = 0; i < 5000; i++) {
noStroke();
ellipse(x, y, random(80), random(80));
x = random(width);
y = random((2/3) * height);
if (dist(x, y, 150, 100) < 85) { //make the sky brighter near the sun
fill(random(230, 255), random(235, 255), random(225, 240), 75);
} else {
fill(random(180, 240), random(180, 255), random(220, 255), 50);
}
}
noLoop(); // turn off looping
//sun
fill(255, 245, 180);
ellipse(150, 100, 20, 20);
}
function draw() {
//first row of mountains
for (var i = 0; i < 35; i++) {
stroke(210, 190, 180);
strokeWeight(.25);
line(200, 125, -300 + (i * m1), height);
line(300, 130, -250 + (i * m1), height);
line(475, 100, -50 + (i * m1), height);
}
//second row of mountains
for (var i = 0; i < 50; i++) {
stroke(160, 146, 160);
strokeWeight(.5);
line(50, 130, -400 + (i * m2), height);
line(550, 140, 50 + (i * m2), height);
line(350, 150, -600 + (i * m2), height);
line(350, 150, 400 + (i * m2), height);
}
//front row of mountains
for (var i = 0; i < 100; i++) {
stroke(171 - i , 176 - i, 206 - i); //lighter on the side facing the sun
strokeWeight(1);
line(120, 165, -150 + (i * m3), (2/3) * height);
line(450, 140, 200 + (i * m3), (2/3) * height);
//reflections in the water
stroke(120, 125, 170, 70);
line(120, (4/3) * height - 165, -150 + (i * m3), (2/3) * height);
line(450, (4/3) * height - 140 , 200 + (i * m3), (2/3) * height);
}
//lake
for (var i = 0; i < 500; i++) {
stroke(0, 255, 255);
strokeWeight(.25);
line(0, (2/3) * height + l, width, (2/3) * height + l);
l = k * l; //geometrically increase the distance between lines
}
//foreground
for (var i = -50; i < 55; i++) {
strokeWeight(1);
stroke(179 - (2 * i), 177 - (2 * i), 75); //brighter on the side facing the sun
var m = map(i, -50, 40, -1, .5);
line(375 + ((i + 50) * f2), 280, 420 + ((i + 50) * f1), a);
a = a + m; //since m goes from negative to positive, this allows the hill to
//slope upward and then downward
}
for (var i = -80; i < 60; i++) {
strokeWeight(1);
stroke(179 - (2 * i), 177 - (2 * i), 75);
var m = map(i, -80, 60, -1, .5);
line(310 + ((i + 80) * f2), 330, 350 + ((i + 80) * f1), b);
b = b + m;
}
for (var i = -150; i < 100; i++) {
strokeWeight(1);
stroke(179 - (4 * i), 177 - (4 * i), 75);
var m = map(i, -150, 100, -1, .5);
line(210 + ((i + 150) * f2), height, 250 + ((i + 150) * f1), c);
c = c + m;
}
}
I liked how creating images with lines instead of solid shapes allows for a lot more visual interest. Without even trying to you can wind up with gradients and cool patterns from overlapping lines.
katieche – looking outwards 04
Shimon is a robot first of his kind created at Georgia Institute of Technology. Unlike some robots who just make beeping noises and call that a song, Shimon actually has four arms and knows how to play traditional, analog instruments. He has been programmed with over 5,000 songs, two million motifs, riffs, and licks. Particularly, he specializes in the marimba. A lot of robots can play preprogrammed songs, as did Shimon for the beginning of his lifetime, but what’s fascinating about Shimon is that he now is able to play original compositions! Researchers are still working on how to improve his musical abilities, as current original compositions are a little sporadic since Shimon can’t think in long term structures as well. If you pay attention to his song, it seems like the music is produced in short bursts that complete the song.
akluk-Project4-Section-A-StringArt
sketch
It was fun and exciting to create curves with straight lines and was challenging to figure out the correct values
function setup() {
createCanvas(400, 300);
}
function draw() {
background(0)
//establishing initial points and step sizes as variables
var x1 = 0;
var y1 = height;
var x2 = 0;
var x3 = 0;
var y3 = 0;
var x_step1 = width/20;
var y_step1 = height/40;
var x_step2 = width/15;
var x_step3 = width/60;
var y_step3 = height/60;
//creates creates the blue - white curves in the center of the canvas
for (var j = 0; j < 30; j++){
stroke(color(240-8*j,240-8*j,255));
line(x2,height/2,width,height/2 - j*y_step3);
line(0,height/2 + j*y_step3,width-x2,height/2 );
x2 += x_step2;
}
//creates green yellow gradient curve on the lower right corner
for (var i = 0; i < 20; i++){
stroke(color(50+10*i,150,14))
line(x1,height,width,y1);
x1 += x_step1;
y1 -= y_step1;
}
//creates red "line" generated ellipse
for (var k = 0; k < 30; k++){
stroke(color(240-8*k,0,0));
line(0,y3,x3,height/2);
line(0,height/2-y3,x3,0);
line(width/2,y3,width/2-x3,height/2);
line(width/2,height/2-y3,width/2-x3,0);
x3 += x_step3;
y3 += y_step3;
}
}