Note: This documentation is for the development version of X3DOM. Released versions: 1.5, 1.4, 1.3, 1.2.

Release notes

Version 1.5.1

Maintenance release, with lot of bug fixes. Recommended upgrade for 1.5 users.

Version 1.5

We are proud to announce the release of X3DOM 1.5. This most recent installment of our popular Declarative3D polyfill shines with lots of new features and a wagon load full of bugfixes.

With version 1.5, X3DOM also overcomes some limits of the scenegraph structure by using new internal structures for culling and fast rendering, decoupled from the frontend graph inside the DOM, which, however, still remains intact as usual.

New Features

  • Generally improved traversal and rendering performance with a new transformation and volume caching infrastructure

  • Culling techniques for large model rendering (some of them still experimental) - check the video, or see the tutorial

  • Improved experimental binary geometry container and encoding
    • BinaryGeometry with more compact encoding that only uses 7 Bytes per triangle (see example) and works nicely on mobile devices
    • POPGeometry for progressive streaming and LOD - see the paper and project page here, or directly check some examples
  • Experimental BVH Refiner node, for rendering of large, regular data sets with dynamic LOD (see example)

  • Shadow support for large scenes and all lights types (see tutorial for more information or click here or for a demo)

  • CADGeometry component (not part of the HTML profile)

  • Extrusion (and many more geometric 3D primitives in additional Geometry3DExt component, also not part of the HTML profile)

  • Convenience object ‘Moveable’ for object manipulation

  • Additional X3D component plugins (not part of the HTML profile and x3dom.js package)
    • CADGeometry component
    • Geometry3D component (e.g. Extrusion, missing level 4 nodes)

Fixes and Improvements

  • Many internal improvements and bugfixes
  • Route removal implemented
  • Improved picking functionality to enhance trade-off between precision and number of possible ids
  • Fullscreen convenience method x3dom.toggleFullScreen()
  • RenderedTexture extensions for rendering normal buffer or stereo (currently only for Oculus Rift)

For a detailed list of changes refer to the CHANGELOG file.

Grab the frozen 1.5.0 version here:

Version 1.4

Welcome to X3DOM 1.4!

After almost one year in the making we are proud to announce a new X3DOM release. With this latest installment of our defacto standard JavasSript library that marries HTML with declarative 3D content, we provide many fixes and enhancements.

New in 1.4

  • Experimental geometry nodes that externalize vertex data in binary containers:
    • ImageGeometry (which holds vertex attributes in images),
    • BinaryGeometry (which holds vertex data in binary files, where attributes can have - besides standard 32-bit - 8-bit and 16-bit precision),
    • BitLODGeometry (which also holds vertex attributes in external files, though here the containers can consist of variable bit precision for JPEG-like effects)
    • Tutorial for image and binary geometry generation (Analyzing and optimizing your model for the 3D Web)
  • OrthoViewpoint and Viewfrustum

  • Basic support for VolumeRendering component (VolumeData node, OpacityMapVolumeStyle, MPRVolumeStyle)

  • Programmatic documentation API (API)

  • MultiTouch integration now supporting iOS devices, Chrome, and Mozilla

  • Added attribute setters, viewpointChanged event, helicopter mode etc.

Enhancements and Fixes

  • Enhanced picking with a max. of 65,535 objects, while the corresponding mouse or touch event also provides the picked position with 16-bit precision and the object normal at this position

  • More rendering features like the sortKey/sortType Appearance fields for defining the rendering order, or the DepthMode (App. child) to define if an object shall be readOnly

  • Multiline Text support per specification
    • changed FontStyle size field to X3D default behavior
  • Enhanced JavaScript runtime API now with a plenthora of additional methods (API)

  • Lots of Flash backend fixes (e.g., LOD now also in Flash renderer supported)

  • Many more bugfixes in IndexedFaceSet, skybox background node etc.

For a complete and exhaustive list of changes, please refer to the CHANGELOG file or GitHub Issue Tracker.

You can get the this X3DOM release from:

Version 1.3

  • Our participation at the W3C was officially launched
  • We have moved from SF to GitHub
  • We have added some unit tests
  • We have renewed our documentation and added some tutorials
  • We have added component support for X3DOM to hold the core tight and allow (non-)standardized extensions
  • With the release of Flash 11 we are now able to use a non-beta API for the Flash fallback
  • `<x3d src='foo.x3d' />` support allows integration of 3D content like native images. Note: this will not behave like including images and only work in a client/server environment due the fact that we have to use the XMLHttpRequest functionality
  • We have redesigned our multitouch support. It now works on iOS devices and multitouch setups with Mozilla. For Android and Firefox there seem to be some bugs in the android implementation and this should work only after these bugs are closed
  • We worked on the WebGL-backend, reducing the shader complexity to run on mobile hardware. The shaders are now chosen using a cabs-like system.
  • Added support for billboards
  • Redesigned our build system
  • We have implemented functionality for reflecting inlined scenes into the namespace of parent scenes. With this it is now possible to access elements from the parent scene to address elements within the inlined scene. Due to the lack of supporting such a concept in the X3D and HTML standard we have made use of a custom extension (see field nameSpaceName)
  • Inline support in a flash renderer
  • Support for a `<param>` tag. This allows to configure the framework runtime at a single point
  • Extended triangulation for generating triangles out of concave geometry
  • New components
  • Various fixes & new features

With the new component model we have added the first two optional components:

  • 2D primitive support for the use of elements like rectangles, discs, lines, etc.
  • Initial support for some GEO referencing elements from the X3D specification

Version 1.2

After many months of work, we’re proud to announce the release today of X3DOM 1.2. There’s plenty of cool stuff we have worked on since the last release. You can also swing by the downloads page to grab a copy of the release package:

The new version supports an additional render-backend. The system now looks for a Flash11 plugin if the browser does not provide a SAI-Plugin or WebGL interface. This enables the user to view X3DOM pages, with some restrictions, using the Internet Explorer 9 browser. It utilizes the Adobe Flash MoleHill 3D-API for GPU-Accelerated rendering. To use Adobe Flash-based X3DOM you need the latest Adobe Flash Player Incubator build (11.01.3d).

Our x3dom.swf must either be placed in the same folder as your xhtml/html files, or you can specify a path with the swfpath-Parameter of the X3D-Node. With the X3D-Nodes backend-Parameter you can set Flash as default backend.

At the moment the Flash-backend is still in an early beta state with most of base nodes working. Special features like multiple lights, shadows, CommonSurfaceShader, etc. are being worked on

  • Internal reorganization of sources. Node type have now their own submodule (src/nodes) and are split into groups.
  • Text node is partially working now. You can use any font available to the browser. This includes WebFonts of CSS3.
  • Added system to pass parameters to runtime. The use attributes with the X3D element will be deprecated in 1.3. Currently supported parameters
  • Partially working MT support with on Firefox beta. Experimental.
  • It is now possible to directly apply CSS styles to the X3D element.
  • Fixed display problem with textures which have dimensions not to the power of two.

Verison 1.1

Second stable release after almost 7 month.

Most features from the 1.1. milestone are implemented:

  • Unified HTML/XHTML encoding
  • HTML5 <canvas>, <img> and <video> as texture element supported
  • CSS 3D Transforms
  • Shader composition framework
  • multiple lights and support for Spot-, Point- and DirectionalLight
  • Fog
  • LOD
  • Support for large meshes
  • Improved normal generation
  • Follower component
  • WebGL compatibility
  • The proposed HTML profile is almost implemented
  • The fallback-model has changed a bit. We partially support X3D-SAI plugins now and removed O3D as technology.

Recently there have been several changes in the WebGL-API (e.g. interface changes in texImage2D() method, replacement of old WebGL array types with the new TypedArray specification, enforcement of precision modifiers in shader code, and changed behavior of NPOT textures). This leads to incompatibilities with previous versions, why the 1.0 X3DOM release does no longer work together with recent browser versions.

Version 1.0

First stable release of the framework.

All initially planned features are implemented:

  • HTML / XHTML Support
  • Monitoring of DOM element add/remove and attribute change
  • JS-Scenegraph synchronizer
  • ROUTEs
  • DEF/USE support
  • External Subtree (via X3D Inline)
  • Image (Texture), Movie (Texture) and Sound (Emitter) support
  • Navigation: Examine
  • WebGL Render backend
  • The proposed HTML profile is partially implemented.

Full release note

Table Of Contents

Related Topics