Introduction to VRML 97

Welcome to the Introduction to VRML 97 tutorial notes! These tutorial notes have been written to give you a quick, practical, example-driven overview of VRML 97, the Web's Virtual Reality Modeling Language. Included are over 500 pages of tutorial material with nearly 200 images and over 100 VRML examples.

To use these tutorial notes you will need an HTML Web browser with support for viewing VRML worlds. An up to date list of available VRML browsing and authoring software is available at:

What's included in these notes

These tutorial notes primarily contain two types of information:

  1. General information, such as this preface
  2. Tutorial slides and examples

The tutorial slides are arranged as a sequence of 500+ hyper-linked pages containing VRML syntax notes, VRML usage comments, or images of sample VRML worlds. Clicking on a sample world's image loads the VRML world into your browser for you to examine yourself.

Clicking on a sample world's file name, shown underneath the image, loads into your browser a text page showing the VRML code itself. Using these links, or text editor, you can view the VRML code and see how a particular effect is created. In most cases, the VRML files contain extensive comments providing information about the techniques the file illustrates.

The tutorial notes provide a necessarily terse overview of VRML. It is recommended that you invest in one of the VRML books on the market to get a more thorough coverage of the language. The book we recommend is one we co-authored:

    The VRML 2.0 Sourcebook
    by Andrea L. Ames, David R. Nadeau, and John L. Moreland
    published by John Wiley & Sons

Several other good VRML books are on the market as well.

A word about VRML versions

VRML has evolved through several versions of the language, starting way back in late 1994. These tutorial notes cover VRML 97, the latest version of the language. To provide context, the following table provides a quick overview of these VRML versions and the names they have become known by.



VRML 1.0
May 1995
Begun in late 1994, the first version of VRML was largely based upon the Open Inventor file format developed by Silicon Graphics Inc. (SGI). The VRML 1.0 specification was completed in May 1995 and included support for shape building, lighting, and texturing.

VRML 1.0 browser plug-ins became widely available by late 1995, though few ever supported the full range of features defined by the VRML 1.0 specification.

VRML 1.0c
January 1996
As vendors began producing VRML 1.0 browsers, a number of ambiguities in the VRML 1.0 specification surfaced. These problems were corrected in a new VRML 1.0c (clarified) specification released in January 1996. No new features were added to the language in VRML 1.0c.

VRML 1.1
In late 1995, discussion began on extensions to the VRML 1.0 specification. These extensions were intended to address language features that made browser implementation difficult or inefficient. The extended language was tentatively dubbed VRML 1.1. These enhancements were later dropped in favor of forging ahead on VRML 2.0 instead.

No VRML 1.1 browsers exist.

Moving Worlds
January 1996
VRML 1.0 included features for building static, unchanging worlds suitable for architectural walk-throughs and some scientific visualization applications. To extend the language to support animation and interaction, the VRML architecture group made a call for proposals for a language redesign. Silicon Graphics, Netscape, and others worked together to create the Moving Worlds proposal, submitted in January 1996. That proposal was later accepted and became the starting point for developing VRML 2.0. The final VRML 2.0 language specification is still sometimes referred to as the Moving Worlds specification, though it differs significantly from the original Moving Worlds proposal.

VRML 2.0
August 1996
After seven months of intense effort by the VRML community, the Moving Worlds proposal evolved to become the final VRML 2.0 specification, released in August 1996. The new specification redesigned the VRML syntax and added an extensive set of new features for shape building, animation, interaction, sound, fog, backgrounds, and language extensions.

While multiple VRML 2.0 browsers exist today, as of this writing, none are complete. All of the browsers are missing a few features. Fortunately, most of the missing features are obscure aspects of VRML.

December 1997
In early 1997, efforts got under way to present the VRML 2.0 specification to the International Standards Organization (ISO) which oversees most of the major language specifications in use in the computing community. The ISO version of VRML 2.0 was reviewed and the specification significantly rewritten to clarify issues. A few minor changes to the language were also made. The final ISO VRML was dubbed VRML 97. The VRML 97 specification features finalized in March 1997 and its explanitory text finalized in September 1997. This specification was ratified by ISO in December 1997.

Most major VRML 2.0 browsers are now VRML 97 browsers.

VRML 1.0 and VRML 2.0 differ radically in syntax and features. A VRML 1.0 browser cannot display VRML 2.0 worlds. Most VRML 2.0 browsers, however, can display VRML 1.0 worlds.

VRML 97 differs in a few minor ways from VRML 2.0. In most cases, a VRML 2.0 browser will be able to correctly display VRML 97 files. However, for 100% accuracy, you should have a VRML 97 compliant browser for viewing the VRML files contained within these tutorial notes.

How these tutorial notes were created

These tutorial notes were developed and tested on a PC with a Diamond Multimedia FireGL 1000 3D accelerator card, and on a Silicon Graphics High Impact UNIX workstation. HTML and VRML text was hand-authored using a text editor. In some cases Perl and C programs were used to automatically generate smooth surfaces and animation paths.

A Perl script, called mktalk, developed by John Moreland, was used to process raw tutorial notes text and produce the 500+ individual HTML files, one per tutorial slide.

HTML text was displayed using Netscape Navigator 4.04 on Silicon Graphics and PC systems and Microsoft Internet Explorer 4.01 on PC systems. Colors were checked for viewability in 24-bit, 16-bit, and 8-bit display modes on a PC. Text sizes were chosen for viewability at a normal 12 point font on-screen, and at an 24 point font for presentation during the tutorial. The large text, white-on-black colors, and terse language are used to insure that slides are readable when displayed for the tutorial audience.

VRML worlds were displayed on Silicon Graphics systems using the Silicon Graphics Cosmo Player 1.02 VRML 97 compliant browser for Netscape Navigator. The same worlds were displayed on PC systems using Silicon Graphics Cosmo Player 2.0 for Netscape Navigator and Microsoft Internet Explorer.

Texture images were created using Adobe PhotoShop 4.0 on a PC with help from KAI's PowerTools 3.0 from MetaTools. Image processing was also performed using the Image Tools suite of applications for UNIX workstations from the San Diego Supercomputer Center.

PDF tutorial notes for printing were created by dumping individual tutorial slides to PostScript on a Silicon Graphics workstation. The PostScript was transferred to a PC where it was converted to PDF and assembled into a single PDF file using Adobe's Distiller and Exchange.

Use of these tutorial notes

Can you use these tutorial notes for your own purposes? The answer is:

Parts of these tutorial notes are copyright (c) 1997 by David R. Nadeau, (c) 1997 John L. Moreland, and (c) 1997 Michael M. Heck. Users and possessors of these tutorial notes are hereby granted a nonexclusive, royalty-free copyright and design patent license to use this material in individual applications. License is not granted for commercial resale, in whole or in part, without prior written permission from the authors. This material is provided "AS IS" without express or implied warranty of any kind.

You are free to use these tutorial notes in whole or in part to help you teach your own VRML tutorial. You may translate these notes into other languages and you may post copies of these notes on your own Web site, as long as the above copyright notice is included as well. You may not, however, sell these tutorial notes for profit or include them on a CD-ROM or other media product without written permission.

If you use these tutorial notes, please:

  1. Give credit for the original material
  2. Tell us since we like hearing about the use of the material!

If you find bugs in the notes, please tell us. We have worked hard to try and make the notes bug-free, but if something slipped by, we'd like to fix it before others are confused by the mistake.

For bug reports, comments, and questions, please contact:

David R. Nadeau
San Diego Supercomputer Center
P.O. Box 85608
San Diego, CA 92186-9784

UPS, Fed Ex: 10100 Hopkins Dr.
La Jolla, CA 92093-0505

(619) 534-5062
FAX: (619) 534-5152