Cave6u: A VRML Browser in the CAVE

Cave6u is a VRML browser written in Performer that runs in the CAVE. Loading of the VRML worlds is asynchronous. The main world is first loaded in, and then the various inlines and image files are retrieved from over the web and appropriately added into the scene graph. In a 4-wall CAVE, the user has access to a web browser and thus can switch between VRML and HTML painlessly.

Features: The current capabilities of this browser rivals those of the numerous "3D" VRML 1.0 browsers available today, mainly 'cause of the 3D environment :-) Initialization files: The user has to specify atleast one world in a .agenda file which resides in the same directory as cave6u. He can also set preferences in a files named "Cave6u" located either in his home directory or the current directory. A sample file is located here

Setting up: Since the browser (cave6u) and Netscape communicate to decide who views which document, we'll have to muck around with the .mailcap files. Assume that Netscape is displayed on the 4th wall viz. wall1:1.0 and cave6u runs on zbox:0.0. Then, you'll have to go to Netscape: Options: General Preferences and change the type x-world/x-vrml to be handled by the application "your_path/cave6u -d zbox:0.0 -remote %s -URL %u". Or you could add a line in your .mailcap file thusly:

x-world/x-vrml: your_path/cave6u -d zbox:0.0 -remote %s -URL %u

Similarly for cave6u, the Netscape command string MOZ_COMMAND will have to be set to "specific_path/netscape"; the display Netscape is running on, MOZ_DISPLAY should be set to "wall1:1.0".

Caveats: Cave6u needs imgcopy to convert gif and jpeg images into sgi images. In addition, if you are retrieving gzipped files, make sure that gunzip is available in your path. If you want to talk to Netscape, make sure it is running on the specified display. You may also need to allow access by using xhost +.

Getting around: The handling of the wand buttons seems not to be intuitive. The middle button switches between various modes. In each mode the left and right button do different things. By pointing the wand at the fourth wall, the viewer can get control of the cursor. He/She can then click on urls and wrls and navigate. If a vrml file is clicked it is shown in the CAVE. By pointing the wand towards the front wall, the viewer can return to the CAVE.

Other Stuff: The browser is written using Performer 2.0 which has bugs in pfBuffer. The workaround is to merge buffers often and cross your fingers. You may core dump occasionally. If you are dumping core somewhere in nb_clean(), it's not my fault. Else, please tell me to fix it. cave6u however runs fine while using Performer 2.0.1 and IRs.

A side effect of using Performer is that you can view any files that has a loader written for it. For example, this browser is also an AutoCAD DXF viewer for the CAVE.

If you want to run the browser in standalone mode ( no talking to Netscape) run with the command line arguments -nox.

Pictures of photos coming soon!

I'm currently writing a browser which is VRML 2 compliant, in the course of which I am releasing a port of the vrmlscript parser to unix, which you can obtain by clicking here. The actual original untainted parser can be got from there