Introduction to VRML

Martin Heller

VRML, the Virtual Reality Modeling Language, is a file format for describing interactive three-dimensional objects and worlds. Here a world is a model of a 3D space, which can contain 3D objects, lights, and backgrounds; in other 3D systems this is often called a scene. Objects can be built from solid shapes, from text, or from primitive points, lines, and faces. Objects have optical material properties which affects how they interact with the lights in the world; they can also have textures (2-D patterns) applied to them.

Objects can be grouped into more complex objects, used multiple times, translated, and rotated. Objects can trigger events, which can be routed to other events or to scripts written in JavaScript or Java. Within VRML you can trigger sounds, move objects along paths, and link to HTML or VRML targets. In JavaScript or Java you can manipulate VRML object properties programmatically and even generate new objects.

The experience for someone browsing a VRML world can be active or passive, depending on how you've scripted the world. VRML can be used to create interactive 3D games, simulations of real or imagined devices and buildings or even cities for walk-throughs, interactive visualizations of scientific data, advertising banners, art, music, and much more. VRML is a system- and device-independent language, so one VRML world can be viewed on any VRML viewer of the correct vintage.

The current VRML specification is VRML97, which is an ISO and IEC standard. VRML97 is essentially the same as VRML 2.0, which in turn is essentially the SGI "Moving.Worlds" proposal. VRML 1.0 is pretty much obsolete at this point, although most VRML 2.0 browsers will automatically convert VRML 1.0 worlds.

It's entirely possible to create VRML worlds with nothing more than the VRML specification, a text editor, and a VRML-enabled browser (all of which are free), if you're a programmer with a good grasp of 3D computer graphics concepts. On the other hand, a VRML modeling program or world builder can take a lot of the pain out of the process, and make 3D world creation accessible to non-technical designers.

If you don't have a VRML browser or plug-in, you can download Cosmo Player.

Note: As of this writing, VRML is considered to be one part of Web3D, along with Java3D and X3D.

VRML Language Basics

Advanced VRML Capabilities

Sample VRML "Worlds"

VRML Links

Up to Martin Heller home

Last edited 02/27/01