The WWW and its associated technologies are still in their infancy, and--as is well known--are currently undergoing technological evolution on a vast scale. In line with these developments, VRML is receiving rapid enhancements. Version 1.0 of the language defines essentially static, single-user 3D scenes, but it was originally conceived as a minimal starting point for a much larger vision of the implementation of interlinked, dynamic, multi-user 3D worlds as a means to organise information space and navigate through it.
In this section then, we discuss some of the drawbacks of VRML 1.0 with reference to this vision and, more prosaically, its use as a language for scientific visualisation, and show how these have led to the definition of version 2.0 of the language. Following a brief description of some of its features, we present a few example worlds written in this language.
One of the defining characteristics of VRML 1.0 was its simplicity. Whilst this proved popular, it led to some limitations in the types of worlds that it could describe. Apart from the lack of dynamics and multi-user support mentioned above, it has no support for curved surfaces (e.g., NURBS). A number of visualisation techniques have a requirement for these--for example, ribbons are used in the display of particle traces through vector fields, and also in the display of high-order structure in large molecules such as a protein. Current VRML 1.0 scenes are required to mimic such structures by using triangle strips, which is much less compact than the implicit parameterisation of the surface.
Another problem with VRML 1.0 is its poor support for prototyping new nodes. This is important for certain domain-specific scenes. For example, the visualisation of a molecule as a set of spheres (atoms) and cylinders (bonds) is not handled efficiently in vanilla VRML, where each element (sphere or cylinder) has to be represented explicitly [18]. This is because the file format stores and manages a collection of similar pieces of geometry in a very general fashion; what is required is some way of grouping these pieces together into (say) a set of spheres. This could be stored in a more compact form in the file, and knowledge about its contents could be used to minimise the overhead associate with such actions as rendering. Other workers have also investigated the possibility of creating these groups in VRML 1.0--specifically, for the display of vector fields [19]--but, as noted above, the support for prototyping these new nodes in VRML 1.0 (via the fields field and the isA keyword) is not ideal.
In contrast to the simplicity of VRML 1.0, VRML 2.0 [20] is a much larger and richer language. It is not a superset of the earlier language, although translators exist to upgrade from 1.0 to 2.0 (see below).
The chief design objective for 2.0 was the introduction of behaviour. Behaviour and logic are incorporated into the world through the inclusion of scripts which can be written in a programming language such as Java or JavaScript.
Other animation can be added to scenes through the use of a TimeSensor node and interpolators. A TimeSensor provides a `stopwatch' in the scene, with user control over the starting time, duration, and cycling behaviour. An interpolator can be used to change the value of elements of the scene such as positions, orientations, coordinates, normals, scalars or colours. Connecting a timer to an interpolator produces dynamic variation in the element; we present some examples below in SS4.3.
Further features of VRML 2.0 include sensors, which allow for interaction with objects and trigger events (based on options such as collision, proximity, touch, or viewpoint) and the addition of new geometry nodes such as Extrusion, which can be used to define curved surfaces. The language also provides support for sound in scenes, and incorporates the ability to prototype new nodes via a mechanism which is more extensive than the offering in VRML 1.0.
Because the language is comparatively nascent (and possibly also because it is more complicated) there are fewer resources available for VRML 2.0 at the moment. Once again, however, Silicon Graphics have developed a browser called Cosmo Player [21], which is (like WebSpace) freely available on the Web. The distribution contains translators to update scenes from VRML 1.0 to VRML 2.0. A VRML 2.0 authoring tool called Cosmo Worlds is also available from Silicon Graphics.
In this section, we present some examples of scientific visualisations which have been created in VRML 2.0. First, we briefly describe three simple examples which have been produced by IRIS Explorer and converted to VRML 2.0; extra features such as interpolators were then added by hand.
* Particle tracing. Here, the output from a particle tracer is animated through the interpolation of position. A sphere travels along the trace; its speed is proportional to the local velocity of the underlying vector field. The input to the interpolator is the set of points on the trace.
* Heat diffusion. The visualisation of heat flux in a flat plate is animated through the interpolation of coordinates and colour. The local temperature on the plate is mapped to displacement of the surface, and this changes dynamically. The input to the interpolators are the coordinates of the plate from three time steps, plus a colourmap.
* Isosurface morphing. One coloured isosurface (for some threshold value) morphs into another (for a higher threshold value) which surrounds the first. The input to the interpolator is the transparency of the second isosurface.
Next, we discuss two example worlds which we have found on the Web. We reiterate our comment above regarding the comparative paucity of VRML 2.0 resources on the Web, but note that these two present excellent examples of the possibilities of the use of VRML 2.0 for scientific visualisation.
Figure 2. The Normal Mode Visualisation page of Brickmann et al. The upper pane displays the vibrational spectrum of the molecule; clicking on a frequency downloads a dynamic 3D model illustrating the corresponding mode of vibration into the lower pane.
Brickmann et al have used VRML 2.0 to present the normal modes of molecular vibration for an example molecule. Molecules, like other rigid structures, can vibrate in distinct modes which are usually related to the stretching, bending and twisting of bonds. Each mode has an associated energy, and this can be used to characterise the molecule in terms of its infra-red adsorption spectrum. Since the molecule can be a complex 3D structure, the presentation of the distinct modes via static, 2D media (such as paper) can be challenging. The presentation as a dynamic 3D scene is much more insightful, since each mode can be stored in a VRML 2.0 file, with the mode encoded as a set of interpolations of coordinates and orientations. Once again, the delivery via VRML has advantages over its delivery as an animation, since the molecule can be rotated and zoomed by the user whilst it is vibrating. Finally, the periodic nature of the vibrational motion can be easily reproduced by making the TimeSensor node repeat its cycle.
The molecular vibration page [22] is shown in Figure 2. The user selects an energy from the upper pane, which is displaying the adsorption spectrum, and the corresponding mode appears in the lower pane. The interplay between the two panes leads to a rapid understanding of the different modes of vibration and their corresponding energies.
Casher has constructed a dynamic visualisation of the SN2 reaction mechanism [23]. This is exhibited by, for example, the following reaction
CH3Cl + Br CH3Br + Cl
which proceeds via a transition state whose formula is (CH3ClBr). The mechanism (that is, the way in which the atoms in the molecules are rearranged in the course of the reaction) is, once again, a complicated dynamic process in 3D which can only be represented on the printed page with some difficulty. However, as Casher's scene illustrates, its presentation as a dynamic 3D scene is much more illuminating, and provides a good example of the way in which VRML 2.0 can be used to add value to static scenes in the display and analysis of scientific data.
[19]. Ginis, R. and Nadeau, D. (1995) Creating VRML Extensions to support Scientific Visualisation, preprint submitted to VRML 95 Symposium.
[20]. Hartman, J. and Wernecke, J (1996) The VRML 2.0 Handbook: Building Moving Worlds on the Web, Addison-Wesley.
[21]. http://www.sgi.com/software/cosmo/player.html
[22]. http://ws05.pc.chemie.th-darmstadt.de/vrml/vib/
[23]. http://chemcomm.clic.ac.uk/rxnpath