Data distribution is achieved by transparent replication of a shared scene graph among the participating processes of a distributed application.
A sophisticated group communication system is used to guarantee state consistency even in the presence of late joining and leaving processes. The familiar dataflow graph found in modern stand-alone 3D-application toolkits extends nicely to the distributed case.
Many toolkits for the development of stand-alone VE applications exist today. They provide the programmer with a high-level interface to represent complex geometry in a scene graph and to render that scene graph. The programmer is shielded from the details of dealing with low-level graphics and system APIs, and can concentrate on the development of the application itself.
AVANGO provides programmers with the concept of a shared scene-graph, accessible from all processes forming a distributed application. Each process owns a local copy of the scene graph and the contained state information, which is kept synchronized.
Our object-oriented framework allows the creation of application specific classes, which inherit these distribution properties. Furthermore, the shared scene-graph is augmented with a distributed dataflow graph. This provides the same evaluation characteristics in distributed applications as in stand-alone applications, and effectively supports the development of distributed interactive applications.
In contrast to similar systems like Repo-3D (MacIntyre:1998) we focus on high-end, real-time, virtual environments like CAVEs (Cruz-Neira:1993:SSP) and Workbenches (HKP:Krueger94,HKP:Krueger95), therefore the development is based on SGI Performer (Rohlf:1994:IPH).
With AVANGO, we provide a framework that combines the familiar programming model of existing stand-alone toolkits with built-in support for data distribution that is almost transparent to the application developer.