VREng

(Virtual Reality Engine)

Current Release:

Summary

What is VREng ?

VREng (Virtual Reality Engine) is an Interactive and Distributed 3D Application allowing navigation in Virtual Worlds connected over the Internet using Multicast Technology and RTP/RTCP protocol.

Screenshots

What do you need to run VREng ?

What is required without MBone (local run) ?

What is required on MBone ?

What is recommended, but not required ?

Supported Platforms

- solaris2.x
- sunos4.1.x
- hp-uxB.10.20
- freebsd3.x
- linux-intel
- linux-sparc
- netbsd1.2-sparc
VREng has not been fully ported on other platforms yet, but any port will be welcome. For the moment VREng compiles on AIX and Alpha/Osf. Works to port VREng on Windows95 have begun (2nd quarter 1998) but this implementation it's not fully completed (and is not recommended!).

Downloading Software

Only VREng sources are available, not binaries.

The VREng sources are under GPL (GNU Public Licence) of FSF (Free Sofware Foundation) and are available at URL ftp://ftp.enst.fr/pub/mbone/vreng/vreng.tar.gz.
The latest known Release is , eg ftp://ftp.enst.fr/pub/mbone/vreng/vreng-.tar.gz.
The CHANGES and recent improvements can be read by clicking here. Bug Fixes for this release can be obtained by clicking here.

The Tiny-GL library, under licence of Patrice Bellard is free and available at URL ftp://ftp.enst.fr/pub/mbone/vreng/TinyGL-0.1.tar.gz

The binary of the incomplete port on Windows95 vrexe.zip and its dll dll_vreng.zip are available as-is without any guarantees and no work is planed to achieve this implementation, so we discourage to use it and sources will be not available.

Compiling

VREng is written in C language.

First, to create all Makefiles and the config.h, just type:

./configure For systems which support OpenGL natively like Solaris2.7 use: ./configure --with-lib-GL and then make or gmake

Testing

Just type: vreng/vreng If that works, then install.

Installing

Executables

Two executable files will be installed by default in /usr/local/bin. The first will be a script-shell named vre which is a wrapper to launch the real executable. The second is the real executable which can be either vreng or vreng.tgl (vreng using TinyGL) or vreng.ogl (vreng using OpenGL). To do this, type: make install or make install-strip

Sdr_plugins

You need also to copy the sdr_plugins in your ~/.sdr/plugins directory or in the common /usr/local/etc/sdr/plugins/ directory. Three sdr_plugins are supplied: The new media is "dvr" (Distributed Virtual Reality), the protocol is "rtp" and the format is "vre". The value of the payload type (PT) is 105.

Configuring

This step is not required to use vreng.

If you are on the MBone, or if you are familar with de Session Directory sdr, after installing the sdr plugin, you can use sdr to launch vreng clicking on the media "dvr", either "dis" or "games" for older versions.
VREng will retrieve automatically world files descriptions and textures by http from URL: http://www.infres.enst.fr/net/vreng/

To add your own pictural representation, build a Gif file of your face (eg. using xv or your favorite tool) and put it in the directory

~/public.html/vreng/yourfrontface.gif and update your .Xdefaults with something like that: Vreng.skinf: http://www.yoursite/~yourlogin/vreng/yourfrontbody.gif
Vreng.skinb: http://www.yoursite/~yourlogin/vreng/yourbackbody.gif
and make a xrdb -load ~/.Xdefaults

How Virtual Worlds are builts ?

Virtual Worlds are described in a Ascii configuration file with the suffix .cfg (eg. world.cfg, tarots.cfg, mythology.cfg, dax.cfg,...).
There is 2 types of lines, objects types and objects definition.

Each virtual world is bound to a Multicast group address, one per world. For the moment these multicast addresses are not dynamically allocated, because, at this time, we have not found any mechanism (except SAP/SDP) to allocate these addresses. These addresses are statically defined in the configuration file in the range reserved for DIS applications (224.252.0.0/14). We expect some issues from IETF Malloc Group to assign dynamically multicast addresses.

What happens, when you are launching VREng ?

At the initialization step, VREng downloads a configation file of the inital World in Unicast mode under reliable TCP from an HTTP server. Then all textures of this World are retrieved by HTTP and kept in the memory cache of the VREng application.
So, the first World you encounter is the "Interconnection World" or "Rendez-vous World" where you can find Gate boxes to go (or teleport :-)) into other worlds.

All other World's configuration files and textures are downloaded by the same way.

Requests to this server are multi-threaded if your operating system supports multi-threading POSIX compliant. This pre-loading can take a certain time over the Internet, but locally inside a site this operation take 1 to 5 seconds according to the network load and the amount of textures.

How to Navigate ?

Use the arrow keys on your keyboard. There are 6 spatial degrees of freedom for an avatar:
keys Movement
key_up to move forward
key_down to move backward
key_right to turn on your right
key_left to turn on your left
key_pageup to look up
key_pagedown to look down
key_insert to rise up
key_delete to land on the ground
key_home to stand up
key_end to accelerate movement
key_control to send a bullet
key_meta to send a dart
keypad_down zoom in
keypad_up zoom out
keypad_home zoom off
To identify objects, click on the or of the mouse, the name of the pointed object will appear, maybe with a pushdown menu containing buttons to activate an action on this object (for example open/close for a door).

Web objects can be displayed in a scene as an exhibition room and eventually be opened with a local browser to visit related Web pages.

How to Communicate between participants ?

There are different ways to communicate with other participants in a same world, either by chating text messages in the input/output text window under the 3D window, either using traditional MBone tools like vat, rat, fphone for audio, or wb, wbd for shared whiteboard. In this case you must switch on the corresponding button in the menu bar.

What are Objects and Actions ?

Existing objects and their actions are:
Objects Actions
user to get his name
wall  
earth  
door to open or close
step to climb up or down
lift to lift up or down
animator animate an object
cauldron to create new ball
ball to push, pull, shoot or destroy a ball
gate to teleport yourself in an other world
web to display an URL on the Web
host to connect to an host by telnet
board to write and draw in a whiteboard
vrml to display 3D objects with a VRML browser
cell to through an invisible border between 2 worlds
aoi to enters into an Area of Interest
doc to view or print PostScript/Pdf document
entry viewpoint when entering in a new world

How to launch VREng by the Web ?

Network Statistics

Item Average value
sent packets/s 8 pkts/s
received packets/s 8 pkts/s
packet size/s 50 bytes/s

Works in progress

Links to Related Works

Technical Reports (in french)

Authors, Contributors, Maintainer

VREng has been initially written by a group of students who are not very reachable, because they have left our organization since 1998.

Contacts

The mailing-list <vreng@inf.enst.fr> has been opened for any discussion concerning the VReng application and its evolution. To be added on this mailing-list, send a message to <vreng-request@inf.enst.fr>.

You can send Bug-reports and comments to the <vreng@inf.enst.fr> list.

Have fun!

-- Philippe Dax -- Last modified: Oct 13, 1999 --