V-eye : A Large Scale Virtual Environment


Overview :

V-Eye (for Virtual-Eye) is a 3D virtual world application over the Internet in which a large number of participants can move and interact with each others by sending and receiving multimedia flows. The aim of this tool is to experiment on a real application, scalability of multicast transmission protocols and optimization of multimedia transmission over very heterogeneous environments. V-Eye also handles audio and video flows, and text messages. In addition, a DV-compliant movie theater is located at the center of the world, each participant can watch the movie.

V_Eye currently uses the SCORE Large Scale Virtual Environment (LSVE) architecture developed in our project. Each participant in a LSVE interacts with a limited number of participants and so is interested in receiving a sub-part of the overall flows. Scope was implemented on top of both ASM (Any Source Multicast) and SSM (Single Source Multicast).
Our filtering approach is done at the transport-layer, using multiple multicast groups and multiple agents. Our approach involves the dynamic partitioning of the virtual environment into spatial areas and the association of these areas with multicast groups (see Interactive Multi-users Applications ).

Bibliography :

Talks

Architecture :

The overall architecture is detailed in the papers quoted above. Let us just outline that the management of user groups and related communication services are handled in the SCORE component, that was implemented for both ASM and SSM.
The audio and video communication between participants in a given group are implemented through a modified version of the Rat (Robust Audio Tool) and Vic (VIdeoConferencing tool) application from UCL. We also take advantage of the MBus protocol that comes with these two tools, for implementing local IPC.

Implementation :

Binary distribution of V-Eye for linux, win32 and zaurus/linux are available at ftp://ftp-sop.inria.fr/rodeo/veye
The development is done on Fedore Core 2, and the binary linux distribution should work on most current linux distributions. Special care might be needed for proper installation of some drivers, especially the NVIDIA linux driver and the Philips Webcam. See Installation instructions for more details.
V-eye has been tested on a real-scale network within the VTHD++ network on INRIA and France Telecom R&D, on linux and windows hosts. Users-scalability was tested with automated fake avatar generators provided within the distribution.
Please note that the zaurus distribution relies on kathrin release . The compiled application is fully functional but in practice cannot support 3D world rendering, due to lack of hardware-based 3d rendering and poor cpu capabilities. For working around this issue, a 'tracker' mode was implemented so that one can virtually 'follow' another participant in the world; under this mode only the video and audio tools are involved, but the multicast group logics is still relevant.

V-eye is written in C and C++. It heavily relies on tcl/tk for vic and rat. In addition, 3D rendering is based upon OpenGL and the portable toolkits Glut (openGL Utilility Toolkit) and Glui (GL User Interface).

System Requirements

  • Linux (Redhat 8,9, fc2, Mandrake 8, ...)
  • and Oss audio card for rat, or ALSA with OSS-compatibility enabled
  • or Windows xp
  • For faster 3d rendering a graphic card is recommanded (nvidia)
  • Philips Webcam for vic

Snapshots

a view of the v-eye application
A view of the v-eye application : the virtual world with virtual movie, upper left sub-windows are vic video tool and RAT audio tool
a view of the v-eye agent when many participants are launched
A view of the v-eye agent when many (fake) participants are launched

More v-eye images are available here

Acknowledgements

The major part of the software developement was done by Alexis Gourdon
This work is supported by the French ministry of industry in the context of the national project RNRT VTHD++ within the Planete Project-Team, at Inria Sophia-Antipolis