Exploratory Programming of Distributed Augmented Environments
Abstract
Augmented reality is a form of virtual reality that uses see-through displays to enhance the
world with computer-generated material. When combined with more traditional displays,
a powerful augmented environment emerges in which two and three dimensional information
can be presented to a user simultaneously on a combination of displays. Prototyping
these environments is challenging both because they are highly distributed, interactive systems,
and because of the exploratory nature of building systems for new interaction paradigms.
We have developed a testbed for exploratory programming of distributed augmented environments,
called Coterie. A single programming model is used for both single and multiprocess
programs by building applications as groups of threads communicating via shared
objects. The distributed programming model is distributed object memory (DOM), an
object-based approach to distributed shared memory. Coterie?s DOM presents the programmer
with both client-server and replicated distributed objects.
Both interpreted (Repo) and compiled (Modula-3) languages present the application programmer
with similar DOM programming models. Modula-3?s replicated objects are
implemented using Shared Objects, an object replication package that is tightly integrated
with the Modula-3 object system and designed to be flexible and easy-to-use. Repo is
implemented using the Shared Object package, and presents the programmer with an
interpreted language that supports both client-server and replicated objects uniformly
across its entire type system. The final important component of Coterie is Repo-3D, a
high-level, distributed graphics library, built using the Shared Objects package and tightly
integrated with Repo. By making all graphical objects extensible and transparently distributable,
programmers can use Repo-3D scene graphs as the basis for their application data
structures, allowing complex distributed graphical applications to be created in a straightforward
manner.
Numerous stand-alone and distributed augmented environment systems have been developed
using Coterie, and demonstrate its usefulness. These include an architectural anatomy
system for viewing the support structures inside the walls of a building, a
construction assistant for space frame buildings, a maintenance and repair task for telephone
crossboxes, an augmented reality tour guide, and a number of interface concepts for
the National Tele-Immersion Initiative.
Full Reference:
MacIntyre, Blair. "Exploratory Programming of Distributed Augmented Environments" PhD Thesis, Columbia University, 1999.