The Distributed Interactive Virtual Environment (DIVE) is an experimental platform for the development of virtual environments, user interfaces and applications based on shared 3D synthetic environments. DIVE is especially tuned to multi-user applications, where several networked participants interact over a network. Dive is based on a peer-to-peer approach with no centralized server, where peers communicate by reliable and non-reliable multicast, based on IP multicast. Conceptually, the shared state can be seen as a memory shared over a network where a set of processes interacts by making concurrent accesses to the memory.
Consistency and concurrency control of common data (objects) is achieved by active replication and reliable multicast protocols. That is, objects are replicated at several nodes where the replica is kept consistent by being continuously updated. Update messages are sent using multicast so that all nodes perform the same sequence of updates. The peer-to-peer approach without a centralized server means that as long as any peer is active within a world, the world along with its objects remains ” alive”.
Since objects are fully replicated (not approximated) at other nodes, they are independent of any one process and can exist independently of the creator. Users navigate in 3D space and see, meet and collaborate with other users and applications in the environment. A participant in a DIVE world is called an actor, and is either a human user or an automated application process. An actor is represented by a ” body-icon” (or avatar), to facilitate the recognition and awareness of ongoing activities. The body-icon may be used as a template on which the actor’s input devices are graphically modeled in 3D space.
A user `sees’ a world through a rendering application called a visualizer (the default is currently called Vishnu). The visualizer renders a scene from the viewpoint of the actor’s eye. Changing the position of the eye, or changing the ” eye” to another object, will change the viewpoint. A visualizer can be set up to accommodate a wide range of I/O devices such as an HMD, wands, data gloves, etc. Further, it reads the user’s input devices and maps the physical actions taken by the user to logical actions in the Dive system.
This includes navigation in 3D space, clicking on objects and grabbing objects etc. In a typical DIVE world, a number of actors leave and enter worlds dynamically. Such applications typically build their user interfaces by creating and introducing necessary graphical objects. Thereafter, they ” listen” to events in the world, so that when an event occurs, the application reacts according to some control logic DIVE CHARACTERISTICS The characteristics of Distributed Interactive Virtual Environments (DIVE) are those applicable for Distributed Interactive Simulation (DIS) applications.
The DIS standards provide application protocol and communication service standards to support DIS inter-operability. The DIS characteristics that apply to DIVE are: “ Interaction delay”: any action issued by any participant in the Distributed Interactive Virtual Environment must reach the other participants within 100 ms . If the network delay is more than 100 ms, the received action (mainly encoded in an application data unit, or ADU) is considered as late and not used by the application. “ Large number of participants”: the DIVE application can be played by several users connected via a network such as the Internet.
The number of participants should be unlimited to allow everybody to enter the virtual world. “ Interactive data are short (few tens of bytes) and frequent”: This characteristic differs from other multimedia application data like audio and video. Each simulation object can transmit its local state that, in the worst case, represents a small amount of information (less than hundred bytes). “ High level of dynamicity in group structure and topology”: Participants join and leave the session dynamically. In this context, the IP multicast model is particularly convenient.
“ Information is continuous”: In most of the cases, the behavior of an Avatar at a given time T+1 is an evolution of its behavior at time T (for example the displacement of an avatar). The Distributed Interactive Virtual Environment (DIVE) is an experimental software platform for the development of multi-user virtual reality applications. A large number of users and applications can participate and interact with each other in the same virtual environment even though they may be geographically dispersed.
Several user-related abstractions have been introduced to ease the task of application and user interface construction. The work concentrates on the following topics: the peer-to-peer distribution model enables the construction of multi-user, multi-application environments, different from many client/server approaches; user-related `higher level’ concepts, such as vehicles, visors and object behaviors-given these tools, application designers may easily construct interactive VR applications.
The DIVE software is a research prototype covered by licenses. Binaries for non-commercial use, however, are freely available for a number of platforms. DIVE supports the development of virtual environments, user interfaces and applications based on shared 3D synthetic environments. DIVE is especially tuned to multi-user applications, where several networked participants interact over a network. Dynamic behaviors of objects are described by interpretative Tcl scripts evaluated on any node where the object is replicated.
Scripts are triggered by events in the system, such as user interaction signals, timers, collisions, etc. DIVE reads and exports VRML 1. 0 and several other 3D formats. It is integrated with the World-Wide-Web and is HTTP/FTP/HTML/MIME compliant. DIVE is currently available on the following platforms: SGI Irix 5. 3 and 6. x, HP HPUX 10. 10, SUN Solaris 2. 4, Linux 2. X, and Windows NT. A virtual environment conference with three people simultaneously connected to the DIVE system. The people, represented by embodiments, interact, talk, and move in a shared environment.