Purpose of X3D - Display

This is the fifth in a series discussing the next generation of X3D and addresses the needs and requirements for X3D for the display of 3D, AR, and VR content in the current ecosystem of display devices and environments. The 3D content is displaying in a larger ecosystem of including the user’s computer, browser, Internet, and originating server. As such it needs to work cooperatively within the environment and with other content already displaying in that environment.

The current browser environment is HTML5 (including WebGL) with Document Object Model (DOM), Cascading Style Sheets, JavaScript, and a number of existing libraries and server interactions. The DOM is the application programming interface (API) [1] for all browser managed content. In order to cooperatively exist in a browser, X3D content needs to integrate itself into the existing DOM.

By using the DOM for the API, all aspects of the X3D scene can be accessed, manipulated, and controlled in the same manner as the other content in the document. This provides a single unified access mechanism and handling of events throughout the entire HTML+X3D+other document. Not using the DOM forces developers of X3D content into a mode of cognitive dissonance in managing interactions from and between various parts of the document.

Running in the browser environment means that X3D needs to conform to the HTML standard. This includes simple things like case-insensitivity of elements (X3D nodes) and attribute names (X3D fields). It also means that existing HTML elements must supersede anything used by X3D – only Script generates this conflict. Since the script element in HTML is very well defined and used, it cannot be replaced by X3D’s definition of Script. As a result code X3D events cannot be ROUTEd to HTML JavaScript. Event listeners can be used to capture state changes in X3D nodes and process the appropriate data.

When properly implemented X3D content in HTML will present web developers with a unified interface to all content in the document and allow those developers to easily create an integrated user experience across all of the technologies available within the document.

[1] What is the Document Object Model? W3C Recommendation, https://www.w3.org/TR/DOM-Level-2-Core/introduction.html. 2000-11-13, Accessed on 2016-11-01.