Information Technology Reference
In-Depth Information
The objects themselves can be loaded or unloaded from a scenegraph during a
visualization with the use of the DSO, blink . Using an accompanying program, a
user can issue shell commands to load or unload objects, or make them visible or
not visible in the scene. By individually loading pre-compiled dynamic objects,
a user has access to a wide variety of combinations of functionality useful for
desktop, laptop, and full immersive systems.
IV Collaboration Software. Scientists rarely work alone today. A glance
at any current scientific journal shows the extent of collaboration as well as
how geographically distributed scientific collaborators are. Scientists need to be
able to enter and leave the VL at will and discuss results in the VL regardless
of distance. Collaboration in virtual environments (VEs) occurs when spatially
separated participants interact in the same VE.
A variety of collaborative VE's have been built both for specific applications
and for more generic purposes. These systems include Crumbs [26-28], NICE [29,
30], LIMBO [31], Collaborative CAVE Console (CCC) [32, 33], and D Atomview
[34]. In the future, it is hoped that participation in device-independent collabo-
rative VEs will become as simple and commonplace as today's web browsers and
networked multi-user games. Challenges remain in the areas of standardization,
especially in the area of interface design, to minimize the learning curve for using
different VEs, and provide support for a plethora of hardware configurations.
At NIST we are building a framework for collaborative VE applications which
we hope will be a step towards this goal. Our work uses the DIVERSE VE library
and a modified and extended version of the collaborative tools currently available
with DIVERSE. DIVERSE was chosen because our group already has extensive
experience with this package, and DIVERSE's open source license allows us to
build on prior work on collaborative VEs. Our system will also be open-source,
available for free download from our web site.
Our collaborative VE system will support both synchronous and asynchron-
ous applications, using a central server to provide persistence. The server will
keep track of the state of the VE, but not the application itself. Network com-
munications will be based on the Jini/JavaSpace distributed computing infras-
tructure described earlier. Each participant will load a collaborative dynamically
shared object (DSO) to communicate with the server, and will load different sets
of DSOs for the application based upon whether they are using a stereo head-
tracked immersive CAVE, a workstation, or a standard desktop Linux system.
Our system will use SGI's OpenGL Performer as its graphics engine. Per-
former is designed to provide optimal graphics performance in a platform inde-
pendent manner. It uses a scenegraph data structure to represent its graphical
elements, easily allowing modeling transformations which affect an entire sub-
tree. Since Performer and DIVERSE are written in C++, new classes have been
built to provide a data-driven graphical capability. For example, a node in a
scenegraph might contain a transformation matrix. A DIVERSE class can read
shared memory every graphics frame and update the matrix in the node based
on changes to the shared memory. In this way a simulation, or the collaborative
server, can directly modify the VE by merely updating data in memory. In fact,
Search WWH ::




Custom Search