AGOCG logo
Graphics Multimedia VR Visualisation Contents
Training Reports Workshops Briefings Index
 

Introduction to VRML

Introduction

One aspect of multimedia which has received a great deal of attention recently is Virtual Reality. There are a number of technologies associated with Virtual Reality, from full immersive environments to three dimensional representations on a standard monitor. This paper will provide a brief overview of just one of these technologies, VRML.

The Virtual Reality Modeling Language (VRML, often pronounced 'vermal') was designed to allow 3D 'worlds' to be delivered over the World Wide Web (WWW). VRML files are analogous to HTML (hypertext markup language) files in that they are standard text files which are interpreted by browsers. Indeed, the original name suggested was the Virtual Reality Markup Language. Like HTML, VRML has been designed to be platform independent and to work over low bandwidth (i.e. low speed) connections. While HTML files describe a 2D page containing various text constructs, such as paragraphs and headings, VRML files describes a 3D space, or 'world'. Using a VRML browser the user can explore this world, zooming in and out, moving around and interacting with the virtual environment. This allows fairly complex 3D graphics to be transmitted across networks without the very high bandwidth that would be necessary if the files were transmitted as standard graphic files. VRML can also include multimedia elements, such as texture images, video and sounds.

VRML filenames end in ".wrl", ".wrl.gz" or ".wrz", the latter two denoting that the files have been compressed (by a program called gzip), often being only 1/10th their uncompressed size. Most browsers, once correctly configured, will automatically uncompress the files.

A VRML world is made up of lots of simple shapes, such as cones and spheres, grouped together to form objects. The more shapes in the file, the more detailed the world, but at a cost of increasing the file size and the time taken by the browser to display the world. One reason why VRML in particular, and virtual reality in general, has become more accessible recently is the increasing availability of relatively low cost, fast graphics cards and 3D accelerator chips, which allow complex worlds to be drawn quicker.

History

VRML has its origin in Silicon Graphics Inc.'s (SGI) Open Inventor 3D graphics programming language. After a session at the First WWW Conference, the VRML 1.0 draft was created, with Mark Pesce, Anthony Parisi and Gavin Bell being the prime movers. The VRML 1.0 specification was first published in May 1995, and the first VRML browser embedded in a HTML browser (a 'plug-in'), WebFX, was introduced in August 1995. Although work began on version 1.1 later that year, it was later abandoned, and a request for proposals issued for a VRML 2.0 standard. SGI's "Moving Worlds" proposal was finally accepted as the VRML 2.0 standard in August 1996. VRML 2.0 was renamed VRML 97 and formally accepted as an ISO standard in December 1997.

The biggest difference between VRML 1.0 and 2.0 is the degree of interactivity, where VRML 1.0 produced static worlds, VRML 2.0 can produce dynamic, multimedia worlds. Sound and video clips can be incorporated within the world, objects can be programmed to move and react automatically or to user input or the passage of time. To achieve this many new nodes were introduced, and most existing ones modified in some way

The Language

VRML files consist of collections of objects, called nodes. Nodes can be grouped into three main types:
  • Shape - e.g., cube, cone, ASCIIText
  • Property - e.g., texture2, rotation, scale, which can be used to modify other nodes.
  • Grouping - these contain other nodes (child nodes) e.g., separator, which ensures that the modifying effects of any property nodes it contains are only applied to other nodes within it. WWWAnchor is also a grouping node allowing hyper-linking.
Various parameters, called fields, are described for each node, e.g., a sphere may have a radius, a texture2 node may have a filename field, containing the name of an image to be used as the texture.
For example, the following VRML code describes a tree trunk:
#VRML V2.0 utf8            the header -  the first 
                           line of every VRML file.

Separator {                start of grouping node

Texture2                   property node within the
                           group 
{filename "bark.jpg"}      the image file to be used as 
                           a texture 
Cylinder {                 shape node, which will be 
  parts   ALL              modified by the texture2
  radius  0.5              node
  height   4
    }
  }	 

The comments in italics on the right should be removed before trying to load this example. Comments can be included in a VRML file by starting the line with #, as in the header line. Other nodes are also defined which do not fit into the three main categories. These include nodes which define the light source and viewpoints, allowing the user to select different views, for example from the 'front' or 'back' of the scene.

Browsers

There are many VRML browsers available. Most of these are plug-ins which display the scene and provide user interface controls within your Web browser window. A few, however, are separate 'helper' applications. Most browsers allow you to move through a VRML world in several ways:
  • examine: rotate the object or move it in relation to the viewpoint
  • fly: move through the scene
  • walk similar to fly, but the viewpoint follows the terrain
VRML browsers supporting VMRL 97 include:
  • Cosmo Player (http://cosmosoftware.com) Originally developed by SGI, now owned by Platinum. Version 2.1 is available for Windows and PowerMac machines.
  • Sony's Community Place (http://vs.spiw.com/), available as a stand- alone browser or 'plug-in' for Netscape under Windows 95 or NT.
  • VRwave (http://www.iicm.edu/vrwave) - the successor to VRWeb. This browser is being developed in JAVA at Graz University, Austria. Full source code for the browser is available.

Authoring Tools

To produce simple worlds, a text editor and a knowledge of the VRML specification is all that is required. However, as worlds become more complex, there are additional tools which can help. These fall into two categories, modelers or 'world builders' and conversion or translation programs.

Modelers

A VRML modeler is a 3-D drawing application which can be used to create VRML worlds. Some examples include:
  • Cosmo Worlds (http://cosmosoftware.com/), a standalone tool which can use existing programs, such as Photoshop, to incorporate additional functionality. Currently available under IRIX and Windows 95
  • Simply 3D (http://www.micrografx.com/simply3d/) from Micrografx. A 3D modeler which can save as VRML 2.0. Available for Windows 95 or NT, it comes with a large library of 3D objects.
  • Caligari's trueSpace4 (www.caligari.com) is a full 3D authoring tool which includes support for VRML 2.0 output and an in built VRML browser. A trial version is available for download.(Windows 95 and NT).

Conversion programs

Conversion programs take output from other packages and convert it to VRML. Common formats which can be converted to VRML 1.0 and/or 2.0 include:
  • AutoDesk AutoCad
  • SoftImage
  • 3D Studio
  • POV Ray
  • Pixar Renderman
  • Mathematica 3D graphics
It is also possible to convert from VRML 1.0 to 2.0.

For links to many VRML sites, news updates and related reports see the VRML and Java 3D Information Centre at http://www.scs.leeds.ac.uk/vrmljava3d/

VRML in use

VRML has been put to a variety of uses in higher education, from architecture through to medical applications, and indeed could be used anywhere where there is a need to view 3D objects. A few examples are given below to illustrate this wide variety of uses. For more examples of VRML in use see http://www.vrmlsite.com/resource/anchor.html

The Future

A number of working groups hosted by the Web 3D consortium (formerly the VRML Consortium) are looking at many different aspects of VRML. These include:
  • VRML Streaming
  • 3D Integrated Media
  • MPEG 4 Integration
  • Java 3D and VRML
  • Compressed binary format

Further Information

  • Java 3D Information Centre (www.scs.leeds.ac.uk/vrmljava3d/)
  • This site includes Neil Ashdown's A Guide to VRML 2.0 and an Evaluation of VRML Modeling Tools
  • The Web 3D Consortium (www.web3d.org), including the full specifications for VRML 1.0 and 2.0
  • The VRML Repository, maintained by the San Diego Supercomputer Center (SDSC). (Swiss Mirror site - http://www.vrml.ch/)
See also the Technical Reports section

Glossary

Avatar
originally an earthly incarnation of a Hindu god, in virtual reality it refers to a user's graphical representation within a virtual world.
Bandwidth
An indication of how fast information is transferred across a computer network. A low bandwidth application is one which transmits a relatively small amount of data.
Browser
An application which allows the user to view HTML documents, and/or VRML worlds.
HTML
HyperText Markup Language
JAVA
Sun Microsystems's programming language, widely used in conjunction with the WWW and VRML
Node
The basic building block in a VRML file.
Plug-in
Software that extends the capabilities of another program. Many WWW browsers use plug-ins to handle audio and video files.
VRML
Virtual Reality Modeling Language

Graphics     Multimedia      Virtual Environments      Visualisation      Contents