| Distributed
Interactive Virtual Environment
|
INTRODUCTION
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 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).
<<back |