"parab0xx": a light-controlled musical interface
On 3rd of November 2007, AlgoMantra Labs hosted its first public demo for an exclusive audience (viz., after Cellphabet) of parab0xx. Please watch the accompanying YouTube video to see the installation as it was shown to about 25 people. It's a little dark, but you'll be able to see what's going on, and the sound is clear. We couldn't get better quality since the installation needed dim lighting to work.
After we made it to Wired News, I have released the source code (zip) under a GPL license! Have fun.
What parab0xx is
The parab0xx is a software prototype that shows how you can interact with virtual images projected on a simple living room table, using a webcam. You can play games, make music, or even edit videos. In short, it is a kind of primitive computer that obeys the instructions of a simple LED (light-emitting diode). Alternately, you can use a luminous phone screen, a candle's flame, or even a piece of white paper as a cursor.
Hardware Equipment & Setup
We used a Compaq Laptop running Windows XP, an old Intel webcam (probably Chinese too), and a regular data projector. The projector and camera were tied to a wooden slab which supported the roof and the image was projected vertically on a waist-high black table on the ground. The webcam was aligned to read the image from the projector, as it fell on the table's surface. The setup works only after nightfall and in a dim, bar-like environment.
The whole thing was made in Python 2.5, running on Windows XP. We will provide the source code as soon as it is agreed upon internally to do so.
The ten orange boxes are programmed to bounce off the edges, and move perpetually slowly in a straight line. Apart from this, they do nothing unless somebody messes with them. The blue box follows any singular source of light closely, and if there are multiple sources, it sits at the place where their geometric average falls.
Everytime the blue box touches any yellow box once, a 4-5 second sample of tabla is triggered and the orange box that was hit changes its direction(bounces off). Normally, if the blue box is also moving, you will end up triggering it multiple times (direction also changes that many times in a second). The way to trigger the sample only once is to put the blue somewhere in the path of any yello box, take away or switch off the light, and wait for one of the orange box to arrive. This system allows us to create an endless number of rhythms and beats from a very small, single sample.
You can even program this arrangement to behave in preditable ways, by placing pieces of white paper on the black table. When the orange boxes pass over any paper periodically, they start behaving as a source of light themselves! You can create some funky feedback patterns using this, and play a game of prediction and strategy, besides creating complex tabla rhythms.
What we have made is a type of human-computer interface, and the applications can therefore be in any industry where humans need ways of interacting intuitively with computers - aerospace, surgery, gaming and music are the obvious ones.
Why we made it
If you've seen the movie Minority Report, you'd remember Tom Cruise uses light-emitting gloves to control a screen while searching through data. We thought that wasn't really science-fiction and could be achieved today itself. Morever, we wanted to explore the costs involved in simulating technologies used by interactive surfaces like Microsoft Surface & the reacTable (used by Bjork in her Volta tour).
Of course, we did not have a touch-screen and millions of dollars in research funding, but decades of slavery to the QWERTY keyboard (thump! thump!) and Engelbart's ridiculous mouse was enough to motivate us. If Brian Eno wants more Africa in computers, so that they can interface with the whole human body (not just fingertips), we tried to put a bit of India into computing - the country of light and sound.
On that note, Happy Diwali & Season's Greetings!
For more information or business/media queries, write to: algomantra (((AT)) gmail.com