3D Scene Manifest
Challenge
The International Image Interoperability Framework is extending the Presentation API for images and documents to support display of 3D content which can include content from cultural heritage and natural history. This API is largely used by academic libraries and museums to share and mix their content on the web. A rapid development environment is useful for specification writers to see concrete results of their proposals in an implementation.
Solution
The developers of the 3D extensions Presentation API of the International Image Interoperability have the challenge of writing a specification that will operate with the a wide variety of 3D viewers on the web and desktop. It is an aid to that development to provide rapid feedback with an example implementation of a 3D viewer that parses and display the exemplar manifests, collections of web annotations that generate 3d scenes.
Two features of the X3D runtime engine implemented in the X3DOM web based viewer support its use as a rapid development and prototyping tool. The first is that X3D standard defines allows a declarative definition of the scene-graph, and X3DOM allows this definition to be directly implemented in web standard DOM (Document Object Model) elements. This provides a direct conversion path from the Web Annotation Model, based on relations among resources, and a final expression in a rendered scene. For example, a web resource which describes a spotlight in a way interoperable among many 3d rendering engines, can, in X3D/X3DOM, be declared as an X3D Spotlight element; while in a imperative 3d viewer the spotlight resource must trigger a sequence of viewer API functions which create a spotlight in the rendering engine.
A second useful feature of the X3D/X3DOM development environment is that it allows integration between the features of the 3D rendering and the rest of the web page as expressed in HTML 5 functionality. This means that prototype interaction and dynamic features can be demonstrated using standard HTML input elements and debug and diagnostic information on the results of interpreting a draft scene can be reported in the web page alongside the 3D viewport implemented in X3DOM.
Finally, as a simple web page with javascript based rendering in WebGL, an X3D/X3DOM prototype for IIIF specification development is easily shared and demonstrated using common collaborative web development tools such as CodeSandbox.