[back to main page]

VRML implementation status

This page collects information about implementation status of VRML constructs, with respect to VRML 1.0 and 2.0 specifications. It also collects some details about handling of some nodes. If you want to know what is supported besides the things required by VRML specifications, you should read the other page about VRML extensions implemented.

No limits: VRML 97 specification defines various limits that must be satisfied by VRML browsers to call themselves "conforming" to VRML specification. For example, only 500 children per Group have to be supported, only SFString with 30,000 characters have to be supported etc. My units generally don't have these limits (unless explicitly mentioned below). So any number of children in Group node is supported, SFString may be of any length etc. VRML authors are limited only by the amount of memory available on user system, performance of OpenGL implementation etc.

Contents:

  1. VRML 2.0 nodes implemented
    1. X3D features in VRML 2.0
  2. VRML 1.0 status
  3. Tests passed

VRML 2.0 nodes implemented

All nodes from VRML 2.0 specification are correctly parsed. The list below lists nodes that are actually handled, i.e. they do things that they are supposed to do according to "Node reference" chapter of VRML spec.

TODO for all nodes with url fields: for now all URLs are interpreted as local file names (absolute or relative). So if a VRML file is available on WWW, you should first download it (any WWW browser can of couse download it and automatically open view3dscene for you), remembering to download also any texture/background files used.

Nodes listed below are fully (except when noted with TODO) supported :

Prototypes (both external and not) are 100% done and working :) External prototypes recognize URN of standard VRML 97 nodes, i.e. urn:web3d:vrml97:node:Xxx (see also our extensions URN on Kambi VRML extensions).

TODO: Some general features not implemented yet are listed below. They all are parsed correctly and consciously (which means that the parser doesn't simply "omit them to matching parenthesis" or some other dirty trick like that). But they don't have any effect on the scene. These are:

X3D features in VRML 2.0

Although X3D support is not implemented at all (we even deliberately don't support X3D files in classic encoding, I want to improve VRML 97 support first), we already have some X3D-specific features implemented. For now they are available for VRML 97 authors, that is: we support VRML 97 with some X3D features "backported". As a reference, I used X3D specification with amendment 1 and revision 1, that is: the newest X3D specification as of this writing (2007-12).

X3D bits implemented are:

VRML 1.0 status

I consider VRML 1.0 status as "almost complete". All nodes and features are handled, with the exception of:

Tests passed