Exploring The Zeum
BeOS, Adamation Power Video Lab for Kids
Scot Hacker, 8/00Rising like a giant, mirrored corkscrew from the edge of San Francisco's Yerba Buena Gardens is a spiral-shaped building housing The Zeum, home to an ever-changing roster of interactive educational projects and art installations engineered for kids aged 8-18.
One of the Zeum's permanent installations is a long, sunlit room hosting a project called "The Production Lab." Four times daily, groups of 10-20 kids break into teams and create a movie practically from scratch in 30 minutes or less. One team is talent, another runs the camera, another handles video processing and chromakeying, another records audio tracks, and a fifth manages still backgrounds. One child is chosen to direct the whole production. Media components created by the kids at their respective workstations are assembled into brief movies, which are then displayed on monitors visible elsewhere in the Zeum. Some of the movies are presented on Zeum's web site.
What few visitors to the Zeum realize is that The Production Lab runs entirely on BeOS, and has done so for several years. Not only is The Production Lab one of the coolest and most complete BeOS-based installations I know of, it also puts to use some of BeOS' most sophisticated features, and is a stunningly elegant hardware hack to boot. After a recent tour of the Zeum and a sit-down chat with Executive Director David Dial, I had to wonder why this project is so rarely cited as an example of BeOS at work in the real world.
How It Works
The Production Lab consists of a series of networked desktop computers ("pods") running BeOS 3.2, laying on their sides in hidden compartments. Mice, keyboards, and pen input have been replaced with specially designed I/O controls such as large aluminum wheels on servo motors (salvaged from military tank navigation mechanims), custom-built sliders, and large, kid-friendly illuminated buttons, all of which are embedded in aluminum sheets which shield the computers below from prying hands. A monitor, speaker, microphone, MIDI keyboard, or pair of headphones is attached as necessary to the pods, which are assembled in groups of three (video, audio, and graphics/titling).
In the current version of the installation, each BeOS machine is stocked with components borrowed from Adamation's studioA (the professional video editing suite which pre-dates their consumer-level personalStudio package). Many of these components have been heavily customized by Adamation engineers for use in The Production Lab. Even one of Adamation's oldies-but-goodies -- AudioElements -- is used as an integral part of the process, as is Sum Software's BeCasso image editor.
Each software component is dedicated to a particular task, such as capturing audio or video, handling chromakey (blue screen) effects, adding titles, and allowing visitors to draw atop the video stream with a pen pad.
Of course, the kids don't know they're using BeOS to create their videos. Custom, full-screen user interfaces overlay the OS and applications below, and users see only the components they need to know about. None of the pods or screens display any Adamation or Be branding.
In a hidden control room live three additional BeOS machines, which function as servers to the process. As pods complete their tasks, media objects are transferred across the network to the servers, where a custom "TaskMaster" application assembles components into a finished video production.
When all media components have arrived and been inserted into the template, one of the taskmaster machines renders the finished project to a final movie, which is played back on a large screen in the Production Lab so the kids can watch the fruits of their labor. Some of the finished projects are rendered to QuickTime movies, and can be viewed on The Zeum's web site.
The whole process is made possible through the use of a custom BMessage implementation. As servers and clients complete their tasks, or request status reports from other machines, or do anything else, they send a BMessage across the network. Here's a brief snippet from the TaskMasterClient configuration file.
// these scripting messages will be executed in order after // the client launches the above applications BScriptingMessage="studioPlayer set Look of Window 0 to 20" BScriptingMessage="studioPlayer SET OpenCaptureSource of Window 0 to BT848Helper" ////BScriptingMessage="studioPlayer set DirectScreen of Window 0 to true"Even the digitization process is automated and fully networked. Here's a snippet from the TaskMasterServer config file (IP address has been changed for security).
// URL to send to the web digitizing server WebArchiveDigitizingURL=http://213.222.214.184/record.pl?instant=1
How Adamation Got the Job
Adamation and the Zeum found one another through SmashTV, who were then known as DigitalCircus. SmashTV's Zane Vella was consulted on implementation details, and told Dial that what he wanted to accomplish would be difficult, if not impossible, in other operating systems and with other video editing packages -- especially since Dial didn't want the installation to be staff-intensive. Vella was following BeOS closely at the time, and recommended that the company look into a BeOS-based solution. Vella arranged for a meeting between Dial and Adamation, a company called Membrane Media Arts was called in to create the BeOS TaskMaster client/server system, and Adamation took over from there.Between the modular nature of both Adamation's software and BeOS, the native scripting abilities inherent in BeOS and augmented by Adamation with custom hooks, the ability of BeOS to boot rapidly, and the real-time media processing capabilities of BeOS, all the stars were lined up nicely. The project moved forward.
In case you're wondering, Adamation's involvement with the project has been 100% voluntary, i.e. freely donated to the Zeum. According to Dial, Adamation engineers talk about their Zeum work as if it were a special treat -- the opportunity to do something amazing with the product they helped to create. "Without ther generosity, the whole project would be much more simplistic," Dial said. Of course, Adamation can also point to the Zeum as an example of what they're capable of, using the installation as a sort of strategic calling card.
I asked Adamation's Vice President of Software Development Mark Hall to comment on the relationship:
Upgrade Plans
As with any highly customized and complex solution, things haven't always been smooth sailing for The Production Lab. Until recently, the system has been running on an older, less-stable version of BeOS. The servers and clients do occasionally lock up, partially due to the fact that BeOS R3.2 was less stable than current versions. And because the system is custom-built and fairly complicated, it's sometimes difficult for the Zeum's volunteer staff to replicate bugs for reporting purposes.To keep things running, the system currently includes a central reset panel, which allows Zeum staff to reboot any of the machines remotely without opening pods. When a machine needs to be rebooted, it is capable of re-joining the project without losing synchronization (thanks to Be's journaled filesystem and the sophistication of networked BMessages). Of course, BeOS 3.2 didn't include R4's sophisticated Media Kit, which has meant Adamation had to write more of the plumbing on their own. Finally, the original Production Lab specifications called for 100BaseT networking, while R3.2 network drivers didn't support 100BaseT.
The central reset panel can reboot any machine in the studio remotely, if necessary. Click for full-size image.
Last summer, Adamation worked to stabilize the Production Lab and make sure that the process always runs to completion (if a production run ends without a finished video, Zeum staff have a lot of unhappy kids on their hands). The system is now running 98% to 99% of shows successfully, back to back, four times a day.
But that's not good enough, and Adamation has some big upgrade plans in the works for Zeum. In the next few months, all of the workstations and servers will be upgraded to BeOS 5.x, networking will be upgraded to 100BaseT (presumably running on BONE), and the studioA-based software components will be replaced with modified personalStudio components. The new system will use the Pegasus video codec, and will capture video at a much higher resolution for improved quality across the board.
Early testing of the new system is looking good. Not only is it faster and more stable, but it offers more flexibility as well. Whereas the current system requires media objects to be packaged in pre-specified lengths, the new system will allow audio or video clips to be of indeterminate length, and intelligently handled so that a cohesive movie is still created (you don't want 90 seconds of additional audio running over the end of the movie, for example).
To do this, the TaskMaster server will simply store a video project "template" defining the length and placement of segments, and including some basic, pre-fab video components. These templates can be thought of sort of like "Mad Libs" -- simple structures waiting to be filled in with specifics. Of course, Production Lab participants can't see the whole structure or story until the process is complete. Because personalStudio projects are always saved in XML format, the insertion process is as simple as matching media filenames to references in a waiting XML document.
The new system will also make it much easier for the Zeum staff to create movie templates. Rather than having to edit configuration files files or script transitions by hand, they'll be able to work directly in personalStudio, manipulating a movie template without limitations. The staff will be left with more time to spend creatively on new project templates, or helping the kids who visit to leave feeling empowered by technology.