Here at the Interaction Consortium, we don’t just make great websites, we also build the occasional interactive artwork. Greg, for example, played a major role in setting up Beta_space at the Powerhouse Museum, and developed a number of artworks that were exhibited there, including George Khut’s Cardiomorphologies, which then took off to tour the world. Both Julien and I did our time as technical managers of Beta_space, supporting a colourful variety of interactive artworks, many of which were in turn built by Alastair. And if you wandered past the At the Vanishing Point gallery in Newtown last month, you’d be treated to the lovely Spring and Asura, Alastair’s latest collaboration with Chris Bowman.
The most recent artwork we had a hand in building was Our House, by Julia Burns. As with many art projects, the schedule was hectic, and we coded almost the entire thing in the 11th hour in one all-night session at Julia’s house. Nonetheless, the end result was beautiful, and most importantly, fun to interact with. In fact, we wrapped up the code about three hours before Julia’s flight out to the States, and spent the last hour before it had to be packed playing with it. Mind you, not testing, but playing. Once it made its way to the States, Our House was exhibited at the Creativity and Cognition conference in Berkeley, and will soon go on tour, perhaps to a location near you.
On the surface, Our House is simply a wooden model of a row of houses, a screen with a photo of the houses, and a live Twitter feed. When the door of a house is opened, a light comes on inside it, and the house on the screen comes alive with a video of the people inside, visible through the windows and doors. However, underneath it all, there is nothing simple about it. The videos feature more than 20 different actors, whom Julia directed against a green screen, then meticulously peppered the FLV files with cue points that trigger a tweet every time an actor types on their phone. The wooden model was masterfully wired by Isaac, who also devised an ingenious pulley and magnet mechanism for the door action.
As for the software, it was coded by myself (Aram) and Doreen Ee, an occasional IxC collaborator. We built it using Adobe Flex, which made it particularly easy to show videos and read cuepoints, but particularly hard to interface with the hardware wired to the house. The hardware in question was a Velleman K8055 USB board, and if there’s one thing I can say to anyone who wants to use one in conjunction with a Mac, it’s don’t. Even with the special system extension designed to prevent this very problem, there was at best a 20% chance of the board being recognised correctly when plugged in, and every once in a while it would take 30 minutes of plugging it in and out and restarting the machine before it was recognised. I should note that the board worked flawlessly with a Windows machine (and presumably a Linux one too), but we didn’t have the option of switching away from a Mac.
For the actual communication with the board, my first attempts were to do it via libusb 0.1.12 (legacy) and libk8055, then using libusb 1.0 and my own C++ code, all of which were fruitless. The high point of these attempts was when I was able to read the board inputs exactly twice before it required unplugging and plugging back in. I then took the approach taken by these guys, and wrote a bit of C++ using their k8055 library, compiled into a console app using g++ with the IOKit framework. This, conversely, was very fruitful.
The next step was to get the board inputs from the resulting application into our Flex app. Since Flash doesn’t allow local executable calling, this required the following scenario: every 300 milliseconds, the Flex app would send an HTTP request to the local machine, which would be received by Apache, which would call a tiny Bash script, which would call the C++ executable, which would request the inputs from the USB board, parse them, then send output values to it to control the house lights, then put the input values into a JSON file, pass it back to Apache, which would pass it back to the Flex app, which would decode it and show or hide videos inside the virtual houses based on the board input values.
For any non-technically-inclined person who braved to read this far, a set-up like this is nothing out of the ordinary, but every once in a while, I like to marvel at how a multitude of standalone components can work together seamlessly for a common purpose.
In conclusion, this was a very exciting project to be involved with, and the final artwork was received very well by everyone, including Creativity and Cognition attendees (and food-and-drink-serving staff, apparently). Projects like this add a refreshing variety to our work, and we’re really looking forward to our next one, which will be in collaboration with DJ Spooky and Annie Kwon. This will definitely be one to look out for, so stay tuned for updates. And finally, I’d be remiss if I didn’t mention that most of the artworks we’ve worked on were curated by our good friend Deborah Turnbull over at New Media Curation, so drop her a line if you need something curated.
