| ## Object Model for X3D (OM4X3D) |

> Creation Process | Feedback | License | Products | References | Specification Prose | Contact

The Object Model for X3D (OM4X3D) defines a complete set of object-oriented interfaces for every node and statement in the X3D Abstract Specification.

Now available. OM4X3D Course Notes from Web3D 2017 Conference.

#### Creation Process

The X3D Abstract Specification provides thorough object-oriented definitions of all X3D nodes, with strong typing of contained fields throughout. Nevertheless these node declarations are somewhat informal since software-engineering correctness cannot be confirmed directly.

The Object Model for X3D (OM4X3D) given here provides a detailed object-oriented model that can be used to confirm correctness and completeness of the X3D Specification. It can also be used to create important software and data products that assist in the implementation of correctly structured X3D scene graphs.

Specifically, X3DObjectModel-3.3.xml is autogenerated from X3D XML Schema, and in turn is used to autogenerate other products such as Java SAI Library. The production process is illustrated in the following figure, Object Model for X3D: Creation, Autogeneration.

#### Products

Example simple conversion: AllX3dElementsAttributes3.3.txt and AllX3dElementsAttributes3.3.xml, produced by exemplar stylesheet AllX3dElementsAttributesTextTemplate.xslt. Either of these output files can easily be applied to create further derivative products that correspond to X3D definitions.

Java Scene Access Interface Library (X3DJSAIL) is produced from the OM4X3D and now released for use.

#### References

Web3D 2017 Conference Master Class: Object Model for X3D (OM4X3D) and Scene Access Interface (SAI) for X3D, including JSONLD and X3DJSAIL by Don Brutzman, John Carlson, Roy Walmsley. This class presents description and usage of the Object Model for X3D (OM4X3D) and Scene Access Interface (SAI). Current and potential work includes X3D Java SAI Library (X3DJSAIL), JavaScript and (draft) C++ implementations.

- Available: Abstract, OM4X3D Course Notes and X3D JSON Loader Tutorial.

#### Specification Prose

X3D Abstract Specification Section 4.4.2 Object model provides the authoritative definition of X3D scene graph structure and semantics. In particular, Section 4.4.2.3 Interface hierarchy lists all nodes and abstract interfaces.

The following prose is under consideration for improvement and addition to Section 4.4.2 Object model, perhaps appended to Section 4.4.2.1 Overview.

> A detailed definition of the Object Model for X3D (OM4X3D) is provided as Annex O of this specification. This XML file illustrates the object-oriented definitions found throughout the clauses of this specification, which remain authoritative.

#### Contact

Questions, suggestions and comments about these resources are welcome. Please send them to Don Brutzman and Roy Walmsley, X3D Working Group Cochairs (don.brutzman at gmail.com, roy.walmsley at ntlworld.com)

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

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

See the subversion archives for detailed records of OM4X3D updates. Contained assets are released following review and approval by Web3D Consortium members and the X3D Working Group.

Updated: 24 July 2025