The VuSystem is a programming system for the dynamic manipulation of
temporally sensitive data. It is is designed to run on any
general-purpose UNIX workstations running the X Window System,
requiring no special real-time facilities. The VuSystem includes
modules to read and write a variety of media file formats. Video
sequences can be captured and displayed using the X Window system.
Audio can be captured and displayed with AudioFile.
Some VuSystem applications are demonstrated on the TNS Technology Demonstrations page. Other
VuSystem applications not demonstrated include an office
monitor and a whiteboard recorder.
The office monitor records a small video fragment of a visitor
that drops by an office while the occupant is away. It works by
taking continuous video from a stationary camera in the office, and
only recording video whenever motion above some threshold is detected.
Upon return to the office, the occupant uses a video browser to view
videos of those who have dropped by while he was away.
The whiteboard recorder keeps a history of changes to an office
white board as its owner adds to it and erases from it. It works by
taking continuous video from a stationary camera pointed at the white
board. The program filters out persons moving in front of the white
board, and saves a minimum set of whiteboard history images by
analyzing changes to the board and by following some simple rules.
The Application Shell
VuSystem applications are all written in a shell program that
interprets a version of the Tool Command Language (Tcl) that has been
richly extended to support object-oriented programming. All
event-driven code, including all user-interface code, is written as
Tcl scripts. A Tcl interface to the Xt intrinsics and the Athena
widget set has been implemented for the graphical user-interface
Media processing modules are implemented as C++ classes and are linked
into the shell. Simple applications that use the default set of media
processing modules are written as Tcl scripts. More complicated
applications require linking in additional modules to the default
Device Interface Modules
To access audio and video devices unique to each particular brand of
workstation, special device interface modules were developed. Device
interface modules were developed for two specific workstation
platforms: the Sun SPARCstation 10/512 and the Digital Alpha AXP DEC
On the Sun SPARCstation 10/512, the Sun VideoPix is used for video
capture, and the Sun X server for video output. Sun's audio hardware
and software is used for audio input and output.
On the Digital DEC 3000/400 the Vidboard, our VuNet-based video capture subsystem, is used for
video capture. The Digital X server was used for video display.
Digital's audio hardware and AudioFile
software were used for audio input and output.
There are currently 8 users of the environment in the Telemedia, Networks, and Systems group,
four graduate students and four undergraduates. The students have
collectively implemented many applications for the VuSystem and are
extending the system's scope.
A rich set of modules has been developed by the users of the system.
Over 50 modules have been written, including filters that perform
image processing and machine vision functions as well as JPEG
compression and decompression. A Tcl library for user-interface
programming with over 50 script files has also been developed by the
users. We have found it easy to reuse these modules and Tcl scripts
in new applications.
The VuSystem Distribution
The VuSystem is still under active development, but snapshots of the
source tree are available to all via anonymous ftp. Currently
documentation is very poor, but if you are still curious about the
VuSystem, click here for
the VuSystem distribution directory on tns.lcs.mit.edu.