The Virtual Reality Modelling Language (VRML, an ISO standard) evolved from VRML1 through "Moving Worlds" to VRML2, and finally VRML97. It is a standardised file format designed, with the Internet in mind, for representing dynamic 3-d data; as such, it provides great opportunities for the presentation of information about caves and karst. Most VRML1 can be converted into VRML97, sometimes transparently by the browser, alternatively by a converter. Soon after XML burst on the scene proposals were made to change the syntax to the new paradigm and we now have X3D which is sometimes treated as a basis for conversion back into VRL97 for viewing, sometimes as a executable in itself. There are also subsets of VRML97 executable by Java applets which were for a time referred to as X3D without actually using XML at all.

Whilst there are many other 3D scene description and display formats (DXF, Lightship, ....) they are mainly proprietary and/or binary formats, usually aimed at static displays. For a short time Microsoft included a VRML browser in its Windows distributions, and Netscape also distributed a VRML plugin, but these were both discontinued and early enthusiasm for 3D evaporated. However, little trumpeted, use and development has continued as shown here.

Some of the possibilities are demonstrated here by presenting some of the work done by the Oxford University Cave Club in the western (Cornion) massif of the Picos de Europa in Northern Spain from 1961 to date.

In brief, VRML/X3D allows the creation of model worlds for presentation in 3-D, albeit usually via a 2-D computer screen; further, it allows both the view of the model, and even the content of the model itself,  to be manipulated by the user; and it enables linking to any information which can be supplied from the Internet.

Here's the Picos - viewed (appropriately) through a VRML Fog in from a plan Viewpoint:

Plan view: grid, 3d orientor, line surveys, locations, labels

 

A grid (the UTM kilometer grid in this example) is useful for locating sites and orienting yourself; there is also a compass/vertical indicator which is associated with a Script which allows it to move with the model, but stay stationary in location on the screen in the manner of a pilot's head up display - it can also be relocated by dragging with the mouse. The surface representation is a mixed blessing; it gives a general idea of the topography, but is tedious to define in detail and hides the cave detail below, except that it can be made as transparent as we want, or we can make it disappear by defining what 'level of detail' (LOD) we want to display at different ranges. The surface is derived either from a regular rectangular ElevationGrid of heights, or from from an IndexedFaceSet of arbitrarily located heights with connecting edges. Smoothing and surface Appearance characteristics are adaptable for colour, pattern, texture, reflectivity, and transparency. The examples here are transparent enough to see through to the caves below - useful if not realistic!

Moving in, colours appear and we can see rivers (blue), dye traces (fluorescein green), and caves (black, of course, unless you want to differentiate them by explorers, date of exploration, etc). Important locations can be labelled, or photographs located. The labels and photographs can be set up either as Billboards which always move so as to be visible, or as realistically oriented vistas:
 
Perspective view: surface, line surveys, photos, locations, labels
 different viewer
 
Closer again, individual entrances can be identified, using symbolic Shapes derived from the UIS standards for caves, potholes and hydrological sites, and moving the cursor (not captured in the image) over one flashes up its name in the bottom status bar:
 
 Photos, hydrological links, rivers, special site, label

The cave, river, and trace lines are either IndexedLineSets or seperate VRML models in their own right. These were actually created in Walls, a free American survey management program, and are mainly in VRML1, the older standard which does not allow as much interactivity as VRML2 (but did define an orthographic presentation in addition to the perspective viewing which the present standard uses).
 
Most objects can be defined as Anchors which will act as links to other resources on your PC or any url on the Internet. Thus, a survey line could be made to link to a full survey of that cave, or an entrance could link to a cave description or entry in an area guide, optionally in a seperate window. The guide could, itself, link back to a particular Viewpoint in a VRML world.

Linked web page; inlined VRML1 surveys




PredefinViewpoints allow particularly useful or interesting views to be defined, and enable the lost to return to the planet. They can also be used, rather like blocking out a spreadsheet, to include entirely seperate locations, such as a key, information, or help page:
 





Displaying caves as survey lines is adequate but not as impressive as fleshing them to impress the claustrophobic with their volume or the agrophobic and larger-boned with the tight bits. There are two ways of doing this: uIndexedFaceSet nodes or use Extrusion nodes. The Tunnel program, closely related to Survex (for which it effectively provides an editor), takes the first approach which divorces the skeleton from the skin: a special editor is used to define and orientate cross sections which are then linked up. This is a very flexible approach, but quite awkward to implement well. I have used a Script node to wrap a skin around the skeleton: This is a quick and easy way to get a solid survey which can then be tweaked to get more complicated effects. The most complicated surveys would probably benefit from a mixture of the two approaches: IndexedFaceSets for complicated junctions and sculptural details of chambers, with Extrusions for the more uniform passages.

Pozu Jultayu; showing Extrusion tubes; description
,

If any of this looks or sounds interesting, why not try it out? You need a computer and a VRML viewer (usually a plugin to a WWW browser); an Internet connection will be useful (but is not essential as the files can also be transferred and run from disk). I have used a moderately specified PC and found the CosmoPlayer viewer in Netscape to be best. Here are my observations on the current main contenders, in the light of development of these models:
 
 

Type

Pro

Con

Summary




or
here (all)

  • Netscape plugin 
    (W9x & Unix) 

  • IE plugin

  • Mac

  • Irix

  • Intuitive navigation 

  • Undo/rewind 

  • Fast 

  • Syntax tolerant

  • Multi platform

  • Syntax tolerant

  • Doesn't display WorldInfo

Still (Jan 2002) the best# 

Nexternet/Pivoron

  • Standalone Windows MDI

  • IE plugin

  • Netscape plugin

  • Multi-document standalone

  • Same navigation controls as Cosmo

  • Automatic VRML1->VRML2 conversion broken

  • Minor differences in rendering to Cosmo (no transparency; anchor text doesn't appear in status bar)

  • Some documentation still refers to Cosmo

  • Smaller toolbar: less easy to use than Cosmo's and doesn't scale down into small windows

This Korean company bought the CosmoPlayer codebase (Windows only?) in mid 2001 and have rebranded it as part of a "multimedia integration platform" which they are actively developing.

GLView

  • Standalone

  • Fast

  • Displays and allows modification of full scene graph

  • Loads of options

  • Site has extensive links to VRML content

  • Loads of options

  • Minor bugs and unimplemented options

  • Slightly awkward navigation

Excellent for development, except for some scripting problems

BS Contact VRML (was BlaxxunContact)

  • Netscape plugin

  • ActiveX

  • Fast 

  • Displays WorldInfo 

  • Vertex display

  • A little pedantic (faces don't render in Jultayu model - unclear why)

  • Slightly awkward navigation

Intended for chat use, but very competent.

Developed from GLView

Cortona

  • Netscape

  • IE

  • Looks good

  • Under active development

  • Interesting demos (eg Lenin's tomb)

  • Slow and resource hungry with spasmodic response and disk thrashing on the Picos area model, but OK on others

  • Doesn't display any of the Text nodes

One to watch

Xj3D sample VRML97Player

  • Standalone

  • Includes an editor

  • Limited navigation

  • Incomplete

  • No xxxxscript support

Implemented in Java3D

Orbisnap

  • Windows, Mac, Linux, Solaris standalone for VRML2 or X3D

  • Limited navigation

Flux Player

  • Windows plugin for VRML2 or X3D

  • Limited navigation

Implemented in Java3D

Octaga Player

  • Windows, Mac, and (experimental) Linux versions

  • Standalone (and plugin on Windows)

Intervista WorldView 2.1 

  • ActiveX

  • Netscape plugin

  • Looks good

  • Slow 

  • Pedantic

  • was used as Microsoft's VRML offering (to discredit VRML?) ...

  • bought by CAI (along with Cosmo) ...

Good intentions, but ...

Sony Community Place

  • Netscape plugin

  • Standalone

  • Viewpoint in title bar

  • Slow 

  • Pedantic 

  • Awkward navigation

  • No xxxxscript support

  • Buggy?

  • No longer publicised...

Intended for chat use

OpenWorlds Horizon

  • Standalone for Windows,SGI,HP,Sun versions

  • Appears to be under enthusiastic development in association with X3D Task Group

  • Good examples

One to look to for the future

IBM Hotmedia (not clear if this is now part of Websphere - probably lost?)

  • Java applet

  • Predictable output as there is no dependency on which plugin is installed

  • Very limited range of VRML2 nodes allowed ; no animation, text, or anchors

May be a good compromise solution to deliver basic 3D reliably to more users until most browsers are 3D capable

X3D viewers

  • Java applet

  • Predictable output as there is no dependency on which plugin is installed

  • Limited ranges of VRML2 nodes allowed

May be a good compromise solution to deliver basic 3D reliably to more users until most browsers are 3D capable

X-Smiles

  • Standalone Java application

  • An X3D viewer

  • Uses Java3D

  • VRML must be converted

  • Very limited navigation built in

The future?

# You may find the OpenGL rendering option is better than Direct3D.

Other plugins may be found at the VRML repository. (NB some will be defunct and some experimental, but this is a good source of non Wintel stuff). The comp.lang.vrml newsgroup is a good source for latest hints, information, and tips.

Sony provide(d?) a useful plugin chooser for Netscape; there is no equivalent for easily swapping ActiveX component registrations, although specific ActiveX ids can be specified in html pages.
 

If you do look at the source, you will  find it written in plain text with a liberal sprinkling of brackets and rather odd looking repetition of keywords with changes in the use of Capital letters. The book of the specification explains this, with an initial Capital identifying a 'node' - ie an object in the scene, not necessarily visible, and lower case an attribute of a node. The other things to look out for are the coordinate system and scale units. VRML uses a right handed Cartesian system, with vertical defined as the y axis; this only coincides with the common cave survey coordinates if you equate x to E, y to height (or negative depth), and z to S (opposite of N); this comes in useful if you want to display a horizon, shade backgrounds, and use gravity to help align your views.
 

Different browsers display differently, and have different navigation tools. This one also has different rendering options, and more..
Different rendering in GLView


Notes on the image hot spots


Last updated (mm/dd/yy)