Introduction
VRML 1.0 was announced in 1995 as the first version of the Virtual Reality Modeling
Language. The language was taken from the ASCII file format of SGI’s Open Inventor
toolkit, with web links added (WWWAnchor and WWWInline). A
VRML 1.0 world is a static scene: there are no sensors, events, sound or scripts. Those
came with VRML97, which is not compatible with it.
Files are named .wrl like VRML97 files and are told apart by the header
line.
Structure
The first line is #VRML V1.0 ascii. The rest is a list of nodes. Unlike
VRML97 the nodes are not nested by what they own but run in order: a group node
holds a list of children written straight inside its braces, and a scene is drawn by
walking that list while keeping a state: the current transform, material,
coordinates, texture and so on. Nodes such as Material,
Coordinate3, Translation and Rotation change the
state; shapes such as IndexedFaceSet, Cube and
Sphere are drawn with the state as it is. A Separator saves the
state when it starts and restores it at its end, so its changes stay inside it.
#VRML V1.0 ascii
Separator {
Material { diffuseColor 0.9 0.6 0.3 }
Separator {
Translation { translation 0 1 0 }
Sphere { radius 0.5 }
}
Coordinate3 { point [ 0 0 0, 1 0 0, 0 1 0 ] }
IndexedFaceSet { coordIndex [ 0, 1, 2, -1 ] }
}
Values are written as in VRML97 (numbers separated by spaces or commas, strings in
double quotes, lists in square brackets) with two differences: enumerated values are
bare words (value PER_FACE) and a bit mask is a set of words in
parentheses (parts (SIDES | BOTTOM)). Names given with DEF can be
used again with USE.
In this reference
- Syntax and traversal – the header, comments, field types, DEF and USE, the state and the bindings
- Nodes – all 36 nodes with every field, type and default
Opening VRML worlds in the explorer
Drop a .wrl file on this site’s explorer. It reads VRML 1.0, VRML97 and the
X3D classic encoding, shows the nodes as a tree with each field described and checked
against the node’s definition, lists the problems it finds, and draws the shapes
(boxes, spheres, cones, cylinders, face and line sets, elevation grids and extrusions)
with their material colours. Textures, lighting, transparency, text and animation are not
drawn, and files named by the world (textures, inlined worlds) cannot be read because
a dropped file comes without its folder.
Not described
What this reference and the explorer leave out.
- Reference: written from memory of the VRML 1.0 specification and not checked against it. Extension nodes declared with a
fieldslist, and the exact rules for part and vertex bindings, are not described. - Viewer: draws the shapes with diffuse colours (overall, per face and per vertex). Normals, ambient, specular and emissive colours, transparency, textures, text, cameras and lights are not drawn, and WWWInline files are not read. Only three real VRML 1.0 files were available, none using bit masks or per-vertex binding.
Variants
- VRML 1.0 – the 1995 version, based on Open Inventor: a state machine of properties and shapes inside Separator nodes
- VRML97 – VRML 2.0, ISO/IEC 14772: a scene graph with PROTO, ROUTE, sensors and scripts
- X3D classic encoding – the same text syntax as VRML97, with PROFILE, COMPONENT and META statements (.x3dv)
Links
Software
- Castle Model Viewer – free viewer for VRML, X3D and other 3D formats (Windows, macOS, Linux)
- MeshLab – free open source mesh viewer and editor (Windows, macOS, Linux)
Reference
- Web3D Consortium – the standards body that keeps the VRML specifications