The Virtual Reality Modeling Language

ISO/IEC DIS 14772-1

4 April 1997

This is the VRML/ISO Draft for International Standard (DIS). This document will be submitted to ISO for a vote. A summary of changes is listed below. See for a Word document that lists most of changes made (warning: this is a very long document).


22Feb.................Publish Editor's Draft of VRML97 DIS [done]
22Feb-12Mar...........3 week review period (send comments to [done]
14Mar.................Freeze the draft (DIS) [done]
6April................Publish DIS and release ISO ballot
~Jul..................ISO vote
~Sept.................Finalize document and publish International Standard (IS)

This document is the official and complete specification of the Virtual Reality Modeling Language, (VRML), ISO/IEC DIS 14772.

Background Clauses Annexes
Foreword 1 Scope A Grammar
Introduction 2 Normative References B Java
3 Definitions C JavaScript
4 Concepts D Examples
5 Fields and Events E Bibliography
6 Nodes
7 Conformance

The Foreword provides background on the standards process for VRML. The Introduction describes the purpose, design criteria, and characteristics of VRML. The following clauses define the specifications for VRML ISO/IEC DIS 14772-1:

  1. Scope defines the problem area that VRML addresses.
  2. References lists the normative standards referenced in the specification.
  3. Definitions contains the glossary of terminology used in the specification.
  4. Concepts describes various fundamentals of VRML.
  5. Fields and Events specifies the datatypes used by nodes.
  6. Nodes defines the syntax and semantics of VRML nodes.
  7. Conformance describes the minimum support requirements for VRML implementations.

There are several annexes included in the specification:

  1. Grammar presents the BNF for the VRML file format.
  2. Java describes how VRML scripting integrates with Java.
  3. JavaScript describes how VRML scripting integrates with JavaScript.
  4. Examples includes a variety of VRML example files.
  5. Bibliography lists the informative, non-standard topics referenced in the specification.

Here are few helpful links:

Compressed archive (zip) of VRML97 DIS (coming soon...)

Compressed PostScript of VRML97 DIS (coming soon...)

Compressed PDF of VRML97 DIS (coming sometime...)

Summary of changes to the spec since August 4th 1996

(many minor editorial changes are not listed here)

[Note: Functional changes are in BOLD.]


  1. A large number of typos and document errors have been fixed.
  2. ISO document conventions were adopted throughout (due to the fact that this is an online HTML document, many of these conventions were ignored or interpreted).
  3. Field and Event Reference has been moved to Clause 5, and Node Reference has been moved to Clause 6.
  4. Examples annex has been moved from Annex B to Annex D.
  5. Consistent numbering of all sections, subsections, figures, and tables.
  6. Annexes (previously called appendices) have been labeled "normative" and "informative".
  7. Removed non-specification language (e.g., user tips) throughout.
  8. Moved all conformance discussion to Clause 7.

Clause 1, Scope

  1. This section has been rewritten.

Clause 2, Normative References

  1. Several new refererences were added.
  2. A few references were clarified.

Clause 3, Definitions

  1. Many new definitions were added.
  2. Many definitions were clarified.

Clause 4, Concepts

  1. This clause has been significantly revised. The order has been completely rearranged for better presentation. Several new sections have been added and many sections have been clarified.
  2. Two new diagrams were added.
  3. + and - chararcters are illegal first characters for DEF names.
  4. children exposedFields are order-dependent (previously this was undefined).
  5. Clarified ccw, solid, and creaseAngle fields.
  6. Prototypes have been significantly re-written for clarity. A variety of cases have been clarified (e.g., scope of DEF names within PROTOs).
  7. Lighting model: fixed redundant ambient term, attentuation term, and spotlight eqns.
  8. Clarified how to interpret various image file formats as texture maps.
  9. Field/event names in a ROUTE statement do not require the set_ and _changed prefix/suffix. If a field/event name (in a ROUTE statement) is not found (e.g. foo), browsers shall prepend the set_ prefix (set_foo) and append the _changed suffix (foo_changed) to the name in an attempt to check if the user is using the shorthand notation.

Clause 6, Nodes Reference

  1. Numerous small clarifications and fixes were made throughout.
  2. Backgorund: restrict groundAngle field from 0.0 to PI/2, not PI(this was an error).
  3. Cylinder: fixed error in top and bottom calculations (height/2).
  4. CylinderSensor: fixed error in defintion of disk rotation.
  5. ElevationGrid: fixed several errors in eqns and clarified all fields.
  6. Extrusion: fixed errors and major re-write (including a new figure).
  7. FontStyle: changed family field from SFString to MFString to support orderered list of choices; similar to URL fields.
  8. IndexedFaceSet: fixed errors in the figure.
  9. MovieTexture: changed duration_changed eventOut from SFFloat to SFTime to be consistent with AudioClip.
  10. NavigationInfo: new value for type field "ANY" (means browser can do whatever it wants. This was added because several browsers were doing this anyway (misinterpreting the spec) and thus we needed a mechanism to support the existing policy. This change implies that the other NavInfo types are now strictly enforced (see NavigationInfo).
  11. NavigationInfo: Clarified that NavInfo type is restrictive (unless "ANY").
  12. Sound: the text has been significantly rewritten for accuracy and clarity, and a figure has been added.
  13. Sound: clarified that the intensity field means audio volume or loudness, not the technical term audio intensity (which implies a perceptual logarithmic volume). Note that light intensity fields are also based on perceptual intensity not energy intensity--we have tried to design the VRML parameters to be perceptual controls in order to make authoring easier. Some VRML browsers may need to perform the log conversion before invoking their respective audio library.
  14. SpotLight: fixed errors in equations.
  15. TextureTransform: fixed (reversed) errors in matrix equations (note: that some browsers may be implemented this literally and must change).
  16. TextureTransform: allow scale values from -infinity to +infinity.
  17. Transform: clarified that negative scale is undefined.
  18. Transform: fixed errors in matrix equations.
  19. Transform: fixed typo that allowed zero scale, (scale must be > 0.0).
  20. Viewpoint: clarified jump = TRUE to mean an instantaneous hyperjump.
  21. Viewpoint: clarified jump transitions for Anchor, and loadURL().
  22. Viewpoint: fixed error in FOV text; uses minimum angle for FOV, not maximum.

Clause 7, Conformance and minimum support requirements

  1. This clause was re-written.
  2. A variety of additions and changes were made to Annex 7. Conformance and minimum support requirements; see Table 7-1.

Annex A, VRML Grammar definition

  1. + and - chararcters are illegal first characters for DEF names.

Annex B, Java Scripting Reference

  1. A variety of clarifications, fixes, and improvements have been made. See for some details.

Annex C, JavaScript Scripting Reference

  1. A variety of clarifications, fixes, and improvements have been made. See for partial list of changes.

Annex D, Examples

  1. Many errors have been corrected and links to valid .wrl files have been added.

Annex E, Bibliography

  1. Several new references were added.

Annex F, Index

  1. Nuked it.