INTERACTIVE LIVE FEED INSTALLATION
I have created an interactive live feed installation using an open source program called Processing.


import processing.video.*;
int numPixels;
int[] previousFrame;
Capture video;
void setup() {
size(1280, 800); // Change size to 320 x 240 if too slow at 640 x 480
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, width, height, 24);
numPixels = video.width * video.height;
// Create an array to store the previously captured frame
previousFrame = new int[numPixels];
loadPixels();
}
void draw() {
if (video.available()) {
// When using video to manipulate the screen, use video.available() and
// video.read() inside the draw() method so that it's safe to draw to the screen
video.read(); // Read the new frame from the camera
video.loadPixels(); // Make its pixels[] array available
int movementSum = 0; // Amount of movement in the frame
for (int i = 0; i < currcolor =" video.pixels[i];" prevcolor =" previousFrame[i];" currr =" (currColor">> 16) & 0xFF; // Like red(), but faster
int currG = (currColor >> 8) & 0xFF;
int currB = currColor & 0xFF;
// Extract red, green, and blue components from previous pixel
int prevR = (prevColor >> 16) & 0xFF;
int prevG = (prevColor >> 8) & 0xFF;
int prevB = prevColor & 0xFF;
// Compute the difference of the red, green, and blue values
int diffR = abs(currR - prevR);
int diffG = abs(currG - prevG);
int diffB = abs(currB - prevB);
// Add these differences to the running tally
movementSum += diffR + diffG + diffB;
// Render the difference image to the screen
pixels[i] = color(diffR, diffG, diffB);
// The following line is much faster, but more confusing to read
//pixels[i] = 0xff000000 | (diffR <<> 0) {
updatePixels();
println(movementSum); // Print the total amount of movement to the console
}
}
}

How the installation works:
The set up is a camera, projector and a laptop with the program running. The projection is just a black screen unless there is movement. The movement comes from the viewer moving in front of the camera which is positioned next to the projector (and so behind the viewer). When the viewer moves they create a silhouette and colours. I see these images made by the viewer's interaction as the artwork. The artwork does not exist (the screen fades to black) unless the viewer interacts. They are also creating a performance in front of the camera in order to do this.
This is an Example of the images created
I have plans to involve interactive sound to inspire movement. As the viewer moves they will trigger certain sounds. I also want to add other sensory aspects to the installation. This may be through touching the screen that the image of the viewer is projected onto. This tactile interaction could cross with being able to feel the sound vibrations that the viewer creates while interacting. By creating the sound you also make visuals. These visuals could then complete the association with a fragrance that scents the installation. The fragrance could then be affiliated with a taste. In all, the viewer would be engaging with the installation through their senses and interaction. What the viewer gets from this is an experience that encompasses their physical self into the total artwork.
This installation can be exhibited anywhere with a power source. Although, I have found that the low lighting in clubs does not give a great image. But this can be solved with extra lighting. The installation can also work online. The viewer can interact with and also change the program through the open source freeware program that I used to create the work. This allows the viewer to also become the artist. I will be making the source code available to anyone who wishes to collaborate.
Here is the source code used:
--------------------------------------------------------------
int numPixels;
int[] previousFrame;
Capture video;
void setup() {
size(1280, 800); // Change size to 320 x 240 if too slow at 640 x 480
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, width, height, 24);
numPixels = video.width * video.height;
// Create an array to store the previously captured frame
previousFrame = new int[numPixels];
loadPixels();
}
void draw() {
if (video.available()) {
// When using video to manipulate the screen, use video.available() and
// video.read() inside the draw() method so that it's safe to draw to the screen
video.read(); // Read the new frame from the camera
video.loadPixels(); // Make its pixels[] array available
int movementSum = 0; // Amount of movement in the frame
for (int i = 0; i < currcolor =" video.pixels[i];" prevcolor =" previousFrame[i];" currr =" (currColor">> 16) & 0xFF; // Like red(), but faster
int currG = (currColor >> 8) & 0xFF;
int currB = currColor & 0xFF;
// Extract red, green, and blue components from previous pixel
int prevR = (prevColor >> 16) & 0xFF;
int prevG = (prevColor >> 8) & 0xFF;
int prevB = prevColor & 0xFF;
// Compute the difference of the red, green, and blue values
int diffR = abs(currR - prevR);
int diffG = abs(currG - prevG);
int diffB = abs(currB - prevB);
// Add these differences to the running tally
movementSum += diffR + diffG + diffB;
// Render the difference image to the screen
pixels[i] = color(diffR, diffG, diffB);
// The following line is much faster, but more confusing to read
//pixels[i] = 0xff000000 | (diffR <<> 0) {
updatePixels();
println(movementSum); // Print the total amount of movement to the console
}
}
}
--------------------------------------------------------------
You can edit the code by downloading Processing 1.0 for free here:
You can download my application to interact with the program on your own computer here:
Currently I have exhibited this installation:
[Attack of The Hypnotic] COME collective
Sneaky Pete's, Edinburgh
October 29th 2009
ECA intermedia studio
99 Hanover Projects: The Grid
99 Hanover Street, Edinburgh
March 2010
IMAGES FROM THE INSTALLATION SET UP:
DANDY RIOTS
http://www.mixcloud.com/dandyriots
Chicks On Speed - Beat is Happening (Dandy Riots RMX) by DandyRiots
Dandy Riots - Looking Down But Sweet (DEMO) by DandyRiots
Dr Dre - Next Episode (Dandy Riots RMX) by DandyRiots
Dandy Riots - Rock 'n' Roll Lifestyle (Without The Money) by DandyRiots

CITIES I HAVE PLAYED IN:
Edinburgh
Glasgow
London
Newcastle
Manchester
Leeds
St Andrews
VIDEOS & VIDEO MINI MIXES:
TRACKS & REMIXS:
Chicks On Speed - Beat is Happening (Dandy Riots RMX) by DandyRiots
Dandy Riots - Looking Down But Sweet (DEMO) by DandyRiots
Dr Dre - Next Episode (Dandy Riots RMX) by DandyRiots
Dandy Riots - Rock 'n' Roll Lifestyle (Without The Money) by DandyRiots
SELECTED VISUAL CLIPS:
PROJECTS/ COLLABORATIONS:
I have been DJing, remixing and creating visuals for Young Fathers since November 2009. This has seen me performing with them live all over the UK.
http://www.myspace.com/youngfathers
CLIPS FROM DANDY RIOTS/ YOUNG FATHERS VISUALS/ AUDIO:
Dandy Riots Visuals - Young Fathers - Bring It Home from steven artwork on Vimeo.
Dandy Riots Visuals - Young Fathers - Dancing Mantaray from steven artwork on Vimeo.
Dandy Riots Visuals - Young Fathers - Crusader from steven artwork on Vimeo.
I was also involved in Unconvention this year: "As part of a larger event called Unknown Pleasures, celebrating the life of Ian Curtis on the 30th anniversary of his death, Un-Convention has been commissioned to develop a very special version of the event. Un-Convention have teamed up with the creators of iconic indie-rock footwear, Converse, to search for 300 of the UK’s most promising creative minds.
The event is a truly unique experiment where 8 bands, 60 music industry professionals and 300 participants will record, produce and release an album in a day."
The event is a truly unique experiment where 8 bands, 60 music industry professionals and 300 participants will record, produce and release an album in a day."
My part included DJing, visuals and being recorded live infront of an audience with Young Fathers for the album:
You can see photos of the event on the BBC website here:
CITIES I HAVE PLAYED IN:
Edinburgh
Glasgow
London
Newcastle
Manchester
Leeds
St Andrews
SOME OF THE DJ INSTALLATIONS:
This was the DJ installation @ COME [The Brand New Ritual] with 23 TVs and a 4x5m projection. The TVs were set up in groups: 20 small TVs arranged as a stage in the middle of the dance floor; 3 large TVs arranged like a cross at the bottom of the alter; and the large projection above the alter. Each group played one of the three The Brand New Ritual videos (you can view these on my Artwork blog)
We initially used the COME arcade machine for showing promotional videos. I decided to convert it so we'd be able to DJ on the dance floor with it.


SELECTED IMAGES FROM PERFORMANCES:
INTERACTIVE INSTALLATIONS
Interactive light installation above dance floor @ COME [With The Lights On]. This installation involved lots of different lighting around the club which the viewer could change the settings of. Control buttons to each set of lighting was discretely placed around the room. This was a successful way to get the audience to interact but by the end of the night the audience were attempting to rip down the lights above the dance floor. There was no particular reason for doing this. Everyone just got very excited and feel open enough to do as they please with the installation. For me, that is a form of success.
THE ROYAL BANK OF COME
The Royal Bank Of COME was a performance I did as part of the Festival of Total Art on George IV Bridge. I set up an bank office with props (table, phone, typewriter, chair, signs, etc), dress as a banker and interacted with passers by in character. As people walked past I would offer them a free blank cheque to do with as they pleased. The reason for this being the theme of the festival was "free" and in the time of the recession many people would like a free blank cheque. When people asked for a cheque I would take them to my office and ask how much they would like and what they would spend it on. After that the performance was improvised and taken down any route the situation created.


I got positive reactions to everyone involved. I feel this is as successful as the performance could have been: to create something positive and fun for free in a difficult economic climate. I was also featured on the BBC new website: "Performer turns heads at Edinburgh Festival" with a picture of a man turning back to look at me at my desk.