to X3D Resources
   

X3D Unified Object Model (X3DUOM)

    
to Web3D home page

The X3D Unified Object Model (X3DUOM) is a full set of object-oriented interfaces for all nodes, fields and statements in the X3D Architecture Specification.

Description | Design and Production | Glossary | Implementation and Evaluation | Java assets | Python assets | X3D Ontology assets | Future work: C, C++, C# assets and JavaScript assets | X3D 4.0 Architecture | Contact

Description

The X3D Unified Object Model (X3DUOM) is a full set of object-oriented interfaces for all nodes, fields and statements in the X3D Architecture Specification. Available source:

X3DUOM provides a validatable expression of X3D relationships that can be applied to implement various X3D file encodings and programming-language bindings.

Design and Production to top

X3D Unified Object Model creation process To build the X3DUOM, first the X3D XML Schema is annotated to include all object-oriented information for X3D nodes and fields. All fields are included regardless of accessType (initializeOnly, inputOutput, inputOnly, outputOnly). The schema is then read and converted into a simple XML file that fully lists the object-oriented characteristics of all X3D nodes, statements and attributes.

The availability of X3DUOM as a parsable XML file means that matching codebases in different programming languages can all be created for producing and manipulating valid X3D models.

X3DUOM source for all versions of X3D:

Also available: .json version (experimental).

This project was originally named Object Model for X3D (OM4X3D). It has been renamed as X3DUOM to better describe the unified nature of common X3D APIs across multiple programming languages.


Glossary to top

The X3D 4.0 Architecture is ISO/IEC International Standard (IS) ISO/IEC 19775-1 includes Clause 3 Definitions, acronyms, and abbreviated terms

Both acronyms and glossary terms have been codified and included in the X3D XML Schema and X3DUOM. Available at

We expect further conversions to support work by Metaverse Standards Register (MSR) Working Group at Metaverse Standards Forum (MSF).


Implementation and Evaluation to top

X3D Specification Relationships As described on the Web3D Consortium Recommended Standards page, Extensible 3D (X3D) Graphics provides a coordinated set of steadily evolving ISO standards.

Tandem work on Java, JavaScript and Python by Don Brutzman and John Carlson is expected to provide multiple implementation confirmations and possibly small revisions to multiple specifications including the governing ISO/IEC 19775-2 X3D Scene Access Interface (SAI) abstract specification.

Development efforts for each of the following programming-language bindings are providing the full capabilities of the X3D Architecture in language-specific ways. Once complete, this body of work will provide unparalleled breadth and portability for export and utilization of Web-based 3D graphics.

Java assets to top

Python assets to top

X3D Ontology assets to top


Future work

We plan to continue these multiple-language library generation techniques to make open-source X3D software libraries even more broadly available.

Please see the X3D Graphics Standards Relationships figure to see how a common X3D Architecture can be implemented with consistent semantics for X3D scene graphs.

Future efforts under consideration follow.

C, C++, C# assets to top

JavaScript (ECMAScript) assets


Contact to top

Available online at https://www.web3d.org/specifications/X3DUOM.html

Discussion regarding X3D Unified Object Model (X3DUOM) takes place on x3d-public at web3D.org mailing list (subscribe).

Questions, suggestions, additions and comments about this X3D Unified Object Model (X3DUOM) page are welcome. Please send them to Don Brutzman (brutzman at nps.edu).

Version control of these assets is maintained at https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/specifications/X3DUOM

Updated: 2 February 2024