Animation on the web: a survey <s> X3DOM & X3DOM Binary Geometry (BG): <s> We present a scalable architecture, which implements and further evolves the HTML/X3D integration model X3DOM introduced in [Behr et al. 2009]. The goal of this model is to integrate and update declarative X3D content directly in the HTML DOM tree. The model was previously presented in a very abstract and generic way by only suggesting implementation strategies. The available open-source x3dom.js architecture provides concrete solutions to the previously open points and extents the generic model if necessary. The outstanding feature of the architecture is to provide a single declarative interface to application developers and at the same time support of various backends through a powerful fallback-model. This fallback-model does not provide a single implementation strategy for the runtime and rendering module but supports different methods transparently. This includes native browser implementations and X3D-plugins as well as a WebGL-based scene-graph, which allows running the content without the need for installing additional plugins on all browsers that support WebGL. The paper furthermore discusses generic aspects of the architecture like encoding and introspection, but also provides details concerning two backends. It shows how the system interfaces with X3D-plugins and WebGL and also discusses implementation specific features and limitations. <s> BIB001 </s> Animation on the web: a survey <s> X3DOM & X3DOM Binary Geometry (BG): <s> Augmented Reality is about enhancing video streams from the real world with dynamic, interactive, rich-media content. We propose that HTML5 browsers (the de-facto runtime-engines and viewers for dynamic, interactive, rich-media 2D environments) are becoming ideal AR engines ‐ when extended with support for dynamic and interactive 3D content as well as efficient image and computer vision processing. Early but fully functional prototypes have already been developed using our XML3D and Xflow technology and will be demonstrated. Modern Web technologies already provide native support for hardware-accelerated 3D graphics (WebGL) as well as access to cameras and many other sensors. Recently, JavaScript implementations in browsers became significantly faster (e.g. with asm.js) and upcoming extensions like WebCL (Khronos) or Parallel-Javascript/RiverTrail (Intel/Mozilla) promise to make massively parallel computing readily available within the browser as well. This enables efficient image processing, feature detection, and tracking, but also real-time animations and other compute intensive processing ‐ right within the browser. As a result, it is now becoming possible to design Web-based AR applications that completely run in any modern Web browser without extensions or plug-ins. Such AR applications can take full advantage of the browsers rich-media environment and benefit from the Webs huge ecosystem, such as cloud computing, service-oriented architectures, Open Linked Data, and many more. This would enable millions of Web Developers to easily integrate AR technology directly into their Web applications. Web browsers will provide AR at your fingertips: A single click on a URL can fully immerse the user in arbitrary AR experiences even on mobile devices. We show how XML3D, an extension to HTML5 for declarative 3D graphics, and Xflow, a declarative language for dataflow processing, provide a high-level framework to develop AR applications on the Web, while encapsulating and abstracting from low-level image and AR processing. Our approach does not provide functionality as a large, monolithic library, but rather as a collection of smaller building-blocks that can flexibly be combined and reused in many ways depending on the needs of applications and developers. We also show how AR operators can be accelerated in the browser with emerging Web technologies such as Parallel JavaScript (RiverTrail). <s> BIB002 </s> Animation on the web: a survey <s> X3DOM & X3DOM Binary Geometry (BG): <s> Given that physics can be fundamental for realistic and interactive Web3D applications, a number of JavaScript versions of physics engines have been introduced during the past years. This paper presents the implementation of the rigid body physics component, as defined by the X3D specification, in the X3DOM environment, and the creation of dynamic 3D interactive worlds. We briefly review the state of the art in current technologies for Web3D graphics, including HTML5, WebGL and X3D, and then explore the significance of physics engines in building realistic Web3D worlds. We include a comprehensive review of JavaScript physics engine libraries, and proceed to summarize the significance of our implementation while presenting in detail the methodology followed. The results obtained so far from our cross-browser experiments demonstrate that real-time interactive scenes with hundreds of rigid bodies can be constructed and operate with acceptable frame rates, while the allowing the user to maintain the scene control. <s> BIB003
X3DOM allows X3D documents to be easily embedded directly into web applications by integrating X3D into the DOM BIB001 BIB003 . X3DOM operates as a connector which is responsible for the synchronization of the browser frontends and the X3D backend, by monitoring DOM updates in the X3D code. The raw binary encoding of indices and vertex attributes are considered, along with lightweight structure description in the human readable format by packing them in a grid format such as in images and video. It is mainly possible because of the TypedArray [Ecma International 2013] specification of JavaScript, a recent addition to JavaScript to handle the binary data efficiently. TypedArray are like a slab of memory, more like how the array works in C, which allows downloading and manipulation of the binary data directly in a web page using JavaScript, and they can be transferred with zero copying overhead between a Web Worker [World Wide Web Consortium 2013] and the main thread and onto the GPU, thus minimalizing the CPU-GPU overhead. It does support animation and interaction to some degree without the low level flexibility. [X3DOM] XML3D: XML3D  ] is a minimal extension to HTML5 for interactive 3D content. It defines a small set of new elements to describe a scene graph with 3D geometry, surface shading, and lighting. In addition, it features the declaration of generic data structures as well as the declarative language. Xflow ] is used to perform vertex and images processing on the data. XML3D supports a wide range of 3D related features, such as skinned mesh animations and Augmented Reality BIB002 ] without adding a large amount of new DOM elements. [XML3D] glTF: glTF is created from a Collada [KHRONOS GROUP] digital asset exchange (.dae) files which became an ISO standard in 2013. Collada is widely supported as an export file type option across many types of 3D content creation software. Every glTF asset is comprised of various files, which is embedded in a JSON based description that references multiple binary files. The JSON description contains all information necessary to extract the embedded information inside the binary files. Using the JSON format for the scene hierarchy is practical because it is much more easily parsed than XML and is also more compact so will take less time to download as well. Textures are simply PNG, JPEG etc., hence there is no need for further modification as all the major browsers come with these decoders. The mesh binary data, is raw binary data meant to be passed directly into buffers. Optional Open3DGC encoding is available  which is designed for fast decoding in JavaScript or C++ using arithmetic algorithms. A common approach in XML3D, X3DOM and glTF are unstructured binary XHR using an additional document for structure information.