X3D Compressed Binary Encoding
Request For Proposals (RFP)

Summary     Background     Requirements     Design Basis     RFP Process     Milestones


The Web3D Consortium's Extensible 3D (X3D) Working Group requests technology contributions for development of the X3D Compressed Binary Encoding.

Due date for submissions: 1 November 2003, sent by email to X3D Specification Team at x3d-binary-rfp@web3D.org.

This call was released 29 July 2003 at the start of SIGGRAPH 2003.


The X3D Working Group is developing the Extensible 3D (X3D) Graphics Specification as a componentized and extensible evolution of the Virtual Reality Modeling Language (VRML 97) standard.

The X3D Abstract Specification (IISO/IEC 19775-1) is now advanced as an ISO Draft International Specification. No further functional changes are allowed in this version of the specification, thus enabling significant optimization of corresponding compression algorithms.

X3D includes multiple encodings that consistently implement the same abstract-functionality specification. The Extensible Markup Language (XML) and Classic VRML encodings are currently defined. The forthcoming X3D Compressed Binary Encoding will also fully implement X3D capabilities.

In order to address needs of X3D user constituencies in the context of the above developments, the X3D Task Group has developed the following requirements and Request for Proposals (RFP).


The X3D Task Group has established the following overall requirements for binary encoding:

  1. X3D Compatibility. The compressed binary encoding shall be able to encode all of the abstract functionality described in X3D Abstract Specification.
  2. Interoperability. The compressed binary encoding shall contain identical information to the other X3D encodings (XML and Classic VRML). It shall support an identical round-trip conversion between the X3D encodings.
  3. Multiple, separable data types. The compressed binary encoding shall support multiple, separable media data types, including all node (element) and field (attribute) types in X3D. In particular, it shall include geometric compression for the following.
  4. Processing Performance. The compressed binary encoding shall be easy and efficient to process in a runtime environment. Outputs must include directly typed scene-graph data structures, not just strings which might then need another parsing pass. End-to-end processing performance for construction of a scene-graph as in-memory typed data structures (i.e. decompression and deserialization) shall be superior to that offered by gzip and string parsing.
  5. Ease of Implementation. Binary compression algorithms shall be easy to implement, as demonstrated by the ongoing Web3D requirement for multiple implementations. Two (or more) implementations are needed for eventual advancement, including at least one open-source implementation.
  6. Streaming. Compressed binary encoding will operate in a variety of network-streaming environments, including http and sockets, at various (high and low) bandwidths. Local file retrieval of such files shall remain feasible and practical.
  7. Authorability. Compressed binary encoding shall consist of implementable compression and decompression algorithms that may be used during scene-authoring preparation, network delivery and run-time viewing.
  8. Compression. Compressed binary encoding algorithms will together enable effective compression of diverse datatypes. At a minimum, such algorithms shall support lossless compression. Lossy compression alternatives may also be supported. When compression results are claimed by proposal submitters, both lossless and lossy characteristics must be described and quantified.
  9. Security. Compressed binary encoding will optionally enable security, content protection, privacy preferences and metadata such as encryption, conditional access, and watermarking. Default solutions are those defined by the W3C Recommendations for XML Encryption and XML Signature.
  10. Bundling. Mechanisms for bundling multiple files (e.g. X3D scene, Inlined subscenes, image files, audio file, etc.) into a single archive file will be considered.
  11. Intellectual Property Rights (IPR). All technology submissions must follow the predeclaration requirements of the Web3D Consortium IPR policy in order to be considered for inclusion.

Design Basis

Extensive work has gone into proving the concept of binary structure for the X3D scene graph. The NPS Cross-Format Schema Protocol (XFSP) has been developed as a general approach to binary serialization of XML documents. Yumetech and Media Machines have also developed prototyped X3D tokenized binary formats. The X3D Specification Team expects to use the results of these efforts, and others as appropriate, to provide the basis of a format definition for automatically serializing and deserializing scene graph structure, through X3D node and field tokenization. The technologies underlying these development efforts are well documented and are to be submitted on a Royalty Free (RF) basis.

For the forthcoming scene-graph serialization/deserialization algorithms, two open-source implementations in Java will be provided by Yumetech and NPS. A third open-source implementation in C++ will be provided by MediaMachines. Further private or public implementations are welcome.

Technical improvements to XFSP that specifically support X3D optimization will be performed during the conduct of this work. Additionally, should the World Wide Web Consortium (W3C) commence work to produce a formal recommendation for XML serialization, we will consider how to adapt to (or adopt) such work.

Of particular interest in this RFP are proposals for definition of default compression algorithms corresponding to each of the various X3D data types. Proposals that address only some of the data/node types, as well as proposals that address broad comprehensive approaches, and even alternative scene-graph serialization techniques, are all encouraged. Proposals not selected as default algorithms may yet remain suitable as alternative compression algorithms, since the compressed binary encoding will be extensible.

Scene-markup capabilities will also be provided for defining alternative compression algorithms, using mechanisms similar to those defined by the W3C Recommendations for XML Encryption and XML Signature.

RFP Process

All parties that hold relevant technology satisfying one or more of these requirements are invited to submit proposals for consideration by the X3D Specification Team and X3D Working Group. Submitting parties do not necessarily have to be members of the Web3D Consortium.

The X3D specification team accepts responsibility for considering and integrating diverse input contributions. We will produce an appropriate extensible binary compressed geometry encoding, and present that X3D solution back for further consideration, implementation and evaluation.

Due date for submissions: 1 November 2003, sent by email to X3D Specification Team at x3d-specification@web3D.org

Responses to the RFP should include specific information on the following:

In keeping with existing Web3D policy and practice, preference will be given to technologies without IPR encumbrances. Two implementations, including at least one in open source, will eventually be required for adoption.


Proposals and their implementations accepted for consideration by the X3D Specification Team and X3D Working Group will be rapidly advanced for evaluation as X3D "Phase 3: Implementation and Evaluation" submissions (see X3D Specification Process).

The ultimate goal of this effort is to submit the entire compressed binary encoding to ISO as part three of the X3D Encodings specification (ISO/IEC 19776).

July 2003
X3D Task Group and Web3D Consortium authorizes X3D Compressed Binary Encoding requirements and RFP
November 2003
Technology submissions received and considered
January 2004
Draft solution by X3D Specification Team offered for review and comment by X3D Contributors and Web3D Consortium
March 2004
One or more example implementations presented at Web3D 2004 Symposium
Milestone dates for ISO submission decided

Last revised: 18 August 2003.
Online at http://www.web3D.org/TaskGroups/x3d/X3dBinaryRFP.html