Reactive Video:

Sculpting with Light – Richard “Dr” Baily

Groundbreaking computer animator Richard “Dr” Baily was a leader in particle based computer animations. He worked on movies such as Tron, Superman Returns, Blade and The Matrix, but he is probably best known for the beautiful animations for the movie Steven Soderbergh’s Solaris.

Bailey referred to what he did as “Sculpting with Light”, rather than animation, something that really resonated with me.

Bailey produced over 60,000 frames of atmospheric planet animation using his own particle system – called SPORE – developed in C++. You can see a few of the planet animations here in the trailer:

Of SPORE Bailey, commented: “[It's] a system that’s sort of a continuum between order and chaos. Some images reside firmly in the world of order, with the particles animated in a fairly straightforward way. Other images that look really twitchy and electric reside in the world of chaos.

Ultimately, the goal was to build a living system that will breed and evolve designs and animations that I would never have dreamed of, and could not produce by any other means.”

j2.627.26.720 j101.265.26.720
r1-v5-900.0002 r1-v1-900.0505

Bailey died in 2006. See more of his work at http://www.imagesavant.com

Projected fashion onto semi-naked girls

Chilean Lumina Motion have done some nice stuff here – a tridimensional video projection mapping the work of fashion designer Loreto Correa onto models and surrounding walls.

How much is that doggy in the window?

That doggy’s not for sale. Her name is Sniff. One of the better reactive video installations I’ve seen in a long time. A projected 3D dog reacts to passersby. The – simple, playful and engaging.

The level of engagement and the formation of an emotional is really what interests me here. Often reactive video is sluggish, too abstract or has some kind of learning curve. Using a familiar paradigm – approaching a strange dog is an apprehensive experience for both you and the dog, creates an emotive virtual experience. And everyone loves puppies.

Sniff was created by Karolina Sobecka and Jim George using a combination of Open Frameworks and the Unity 3D game engine; using an infra-red camera for motion tracking. Here’s how the tracking works:

Sniff system from karolina sobecka on Vimeo.

Hand from Above by Chris O’Shea

More playful stuff from Chris O Shea where pedestrians are tickled, stretched, flicked or removed entirely in real-time by a giant deity.

Magnetic Ink

One of my favourite creative coders Robert Hodgin aka Flight 404 created this beautiful sound reactive piece in Processing.

Read more about it here: http://www.flight404.com/blog/?p=101 and some great screenshots here: http://www.flight404.com/blog/?p=106

Daniel Rozen’s Weave Mirror

weavemirror

weavemirrorside

Lots of other good stuff on his site.

Processing Blinds

processing blinds

Another oldish sketch I dug up. The idea was to project it onto a store window, and then a passerby would need to pull open the blinds to see in the store.

It used to be quite processor heavy, so reworked the motion detection code to try and speed it up. By pre-calculating the grid positions on the screen I managed to achieve a significant speed increase.

UPDATE: Just noticed some other places where code can be speeded up. Will update the code when I get time.

View the sketch here.

Here’s the motion detection part of the code:


import processing.video.*;
Capture myCapture;
color newPixel;
color[] prevFrame;
float speed = 10;
float sensitivity = 0.64;
float targetX, targetY, myX, myY, avX, avY;
int cxLoc, cyLoc;
int counter=0;
int totalBlocks=0;
int[] cX= new int[5000];
int[] cY= new int[5000];
// precalculating the grib
void precalc(){
for(int y = 0; y < 30-1; y++){
for(int x = 0; x < 40-1; x++){
cX[counter] = x*(width/40);
cY[counter] = y*(height/30);
counter++ ;
}
}
totalBlocks=counter;
}
void initVid () {
String s = "IIDC FireWire Video";
myCapture = new Capture ( this, width, height, 4);
prevFrame = new color[width*height];
}
void captureEvent ( Capture myCapture ) {
myCapture.read();
}
void motion () {
avX = 0;
avY = 0;
counter = 0;
for(int i = 0; i < totalBlocks; i++){
if(motionTest(i,width/40,height/30)==true){
avX += cX[i];
avY += cY[i];
counter ++;
}
}
if (avY<=0) avY=myY;
if (avX<=0) avX=targetX;
if (avY>0 && avX>0 && counter>0){
targetX=width-avX/counter;
targetY=avY/counter;
}
myY += (targetY-myY)/speed;
myX += (targetX-myX)/speed;
}
boolean motionTest(int j,int tw, int th){
int dc=0; // counter to track number of differences
//print(j);
// ave. out a square
for(int y=0;y for(int x=0;x // int srcPos=((srcY+y)*width)+(srcX+x);
int srcPos=((cY[j]+y)*width)+(cX[j]+x);
// int srcPos=cY[j]*(width)+cX[j];
newPixel = myCapture.pixels[srcPos];
if(abs(red(newPixel)-red(prevFrame[srcPos]))>25) dc++;
prevFrame[srcPos]=newPixel; // update prevFrame w/ current pixel clr
}
}
if(dc>(sensitivity*(tw*th))){ return true; } else{ return false; }
}

iPhone Graffiti wall

A graffiti wall that is controlled via the iphone from http://tangibleinteraction.com

Reactive Video: Peter Saville Tribute

saville

Dug up this old sketch I did – the Peter Saville Tribute, and added sound reactiveness.

Instructions:
Press ‘s’ to turn on sound reactive response.
Use up and down arrow keys to increase or decrease the grid.
Drag with mouse to change perspective.

View here. or download the application (mac/pc/linux).

Ali Demirel’s cube

2636582090_82e592f64b

Ali Demirel, who does the visuals for Minus records, is one of my favourite visual artists. With his help, Minus have consistently been pushing the boundaries in clubbing visuals.

The cube is a reactive RFID device, where club visitors with cards can approach the cube and wave their RFID card. The cube then identifies them sends the data to Ali to be displayed within the main dancefloor visuals.

Here’s the cube. You have to wait till pretty much the end of the video to see someone scan themselves in.

And here’s an example of the integration.

here’s some more loveliness:

psyk

His site is at http://www.magnetmus.net. And here’s his myspace.

Radarboy Reaktiv at Apple Store Tokyo

apple

Presentation of experimental motion and sound reactive work at the Apple Store in Ginza ,Tokyo.

3D Pixels

An oldish Processing reactive video project displays a person’s image as a set of 3d pixels.

You need a webcam to view. Instructions: Stand back from camera. Move around. Move slider to adjust block size. Turn on and off your video. Click on blocks for other presets.

View here.


The code can be found here: boxes_3d.pde boxes3d3.pde motion.pde scrollbar.pde

Publishing a Processing Webcam Applet on the web

I had a bit of trouble working out how to get a video stream into a Processing applet, so I thought I’d give a quick rundown here in case someone else needs to know. The information is adapted from processing hacks – how to sign an applet

Export your sketch as an applet.
Open a terminal program and navigate to the applet directory where your applet is located (a subdirectory of where your sketch is located). The easiest way to do this is type “cd ” in terminal, then just drag the applet folder onto terminal, and it will automatically insert the path name.

Then type the following in terminal. But most importantly:
- replace xxx with the name of your .jar file. Repeat this process for all the .jar files. Remember to sign ALL the .jar files, ie. your applet .jar, core.jar, and video.jar files, this was the confusing part that’s not explained properly on the hacks site.
- the password you should enter when prompted is ‘Password’

keytool -genkey -keystore pKeyStore -alias radarboy
keytool -selfcert -keystore pKeyStore -alias radarboy
jarsigner -keystore pKeyStore xxx.jar radarboy

Upload your applet and voila, you have a self-signed, working web applet.