Water + Light

White light projected onto a thin surface of vibrating water. 20140829-080245-28965979.jpg

Vote for JNZNBRK!

A light installation that my partner and I created for the Winnipeg Art Gallery has been selected as a Finalist for the Architizer Awards! ‘Behaviours of Light’ is open for Public Vote until March 21 in the ‘Architecture + Art’ category.

Vote for JNZNBRK ‘Behaviours of Light’ Link:
Architizer | JNZNBRK | Behaviours of Light | Vote

20140305-113359.jpg

Behaviours of Light

JNZNBRK ‘Behaviours of Light’
Winnipeg Art Gallery
October – December 2013

jnznbrk.com

20131112-175626.jpg

Processing – Transform

acrylic1acrylic2acrylic3acrylic4

/**
 * Transform: Transcoded Landscape [messed up by... kj]
 * from Form+Code in Design, Art, and Architecture 
 * by Casey Reas, Chandler McWilliams, and LUST
 * Princeton Architectural Press, 2010
 * ISBN 9781568989372
 * 
 * This code was written for Processing 1.2+
 * Get Processing at http://www.processing.org/download
 * 
 * You need a grayscale .jpg image [lower resolution] 
 * in the processing sketch folder */
 
 
import processing.opengl.*;
PImage img;
int[][] values;
float angle;
void setup() {
 size(1024, 768, OPENGL);
 noFill();
 
 values = new int[width][height];
// Extract the brightness of each pixel in the image
 // and store in the "values" array
 // place grayscale .jpg in sketch folder
 img = loadImage("jnznbrktest.jpg"); // rename to suit file name
 img.loadPixels();
 for (int i = 0; i < img.height; i++) {
 for (int j = 0; j < img.width; j++) {
 color pixel = img.pixels[i*img.width + j];
 values[j][i] = int(brightness(pixel));
 }
 }
}
void draw() {
 
 background(0); // Set black background
 translate(width/2, height/2, 0); // Move to the center
 scale(3.0); // Scale to 400%
 
 // Update the angle
 angle += 0.001;
 rotateY(angle); 
 
 // Display the image mass
 for (int i = 0; i < img.height; i += 1) {
 for (int j = 0; j < img.width; j += 1) {
 stroke(255, 255);
 float x1 = j-img.width/2;
 float y1 = i-img.height/2;
 float z1 = -values[j][i]/2;
 float x2 = j-img.width/2;
 float y2 = i-img.height/2;
 float z2 = -values[j][i]/2-4;
 line(x1, y1, z1, x2, y2, z2);
 }
 }
}
Follow

Get every new post delivered to your Inbox.