Fork me on GitHub

X3DOM 1.7.2 Released

19.12.2016 Release


As every year, we are happy to announce our special Christmas release of X3DOM! This release mainly contains fixes and corrections since the last release, but also improvements and fundamental changes.

We would like to thank all users and, of course, all the contributors, that make X3DOM such a great project since so many years!

New Features

  • Secure X3DOM delivery over HTTPS
  • Added basic glTF Binary (GLB) support to the ExternalShape-Node [Example] (thanks to: skluge)
  • New GeoLOD-Node (thanks to: andreasplesh)

Fixes, Improvements and Changes

  • New RequestManager for all X3DOM related downloads
  • Stopped Flash support and removed the Flash-backend
  • General Navigation and Turntable improvements (thanks to: skluge)
  • Exposed canvas event handlers (thanks to: DimitarIlievCenterMine)
  • Added compatibility with python 3 and 2 for (thanks to: aarbelaiz)
  • Many small fixes and enhancements by the X3DOM core team and the X3DOM community.

Get It!

Grab the frozen 1.7.2 version here. The cutting-edge development version (nightly build of git head) can be found here.

X3DOM 1.7.1 Released

18.12.2015 Release

As a special holiday gift, we are happy to announce the release of X3DOM 1.7.1! This release mainly contains fixes and corrections since the last 1.7.0 release. We would like to thank all users and, of course, all the contributors, that make X3DOM such a great project.


New Features

Fixes and Improvements

  • Improved text quality (Thanks to andreasplesch)
  • Move the ammo.js from x3dom-full.js to the new x3dom-full-physics.js to reduce the download size.
  • many small fixes and enhancements by the X3DOM core team and the X3DOM community.

Grab the frozen 1.7.1 version here. The cutting-edge development version (nightly build of git head) can be found here.

X3DOM 1.7 Released

17.06.2015 Release Technical

We are proud and glad to announce the release of X3DOM 1.7 – as always, thanks to all contributors that made this great achievement possible!


Besides our new, fresh home page, these are the most important changes:

  • CommonSurfaceShader now also supports object-space normal maps (in addition to already available tangent-space normal maps) – demo here
  • ExternalGeometry node now has a multi-field for the data URL (of type MFString), multiple URLs can be specified as fallback. This is fully backwards compatible with old scenes that specify only a single string.
  • Basic TriangleSet implementation, interesting for testing non-indexed rendering (thanks to Yvonne Jung, Fulda University of Applied Sciences)
  • alphaClipThreshold attribute in Appearance node to adapt the threshold for X3DOM’s alpha test (for textures with transparency)
  • Improvements in geospatial components (support for easting_first, thanks to Andreas Plesch, Harvard University).
  • If a viewpoint gets transformed, its center of rotation now gets transformed accordingly (thanks to Andreas Plesch, Harvard University).
  • Runtime documentation made available (see here)
  • New tutorial about runtime configuration (see here)
  • New tutorial about the experimental SSAO implementation (see here)
  • Some smaller documentation updates
  • Several fixes (thanks to Ander Arbelaiz, Andreas Plesch and Yvonne Jung)

X3DOM 1.6.2 Released

18.12.2014 Release

As a special holiday gift, we are happy to announce the release of X3DOM 1.6.2! We would like to thank all users and, of course, all the contributors, that make X3DOM such a great project.


New Features

    • Add SplinePositionInterpolator
      Thanks to ankit1089, Toshiba Corporation
      Example here



Fixes and Enhancements




    •  CORS improvements
      Thanks to sharian


  • … plus a lot of smaller fixes and enhancements by the X3DOM core team and the X3DOM community 

Grab the frozen 1.6.2 version here. The cutting-edge development version (nightly build of git head) can be found here.

X3DOM 1.6.1 Released

24.07.2014 Release

X3DOM 1.6.1 Release

We are proud to announce a 1.6.1 release of X3DOM. This release mainly contains some new features, fixes and corrections since the last 1.6 release. It is a maintenance update and recommended for all 1.6 users.


  • ClipPlane support
    • Example available here and documentation here
  • TwoSidedMaterial support
    • Example available here and documentation here
  • SphereSensor support
    • Documentation available here

Fixes and Enhancements

  • Improved GeoOrigin support
  • Multi-touch support for TURNTABLE navigation
  • Fixed shader removing from appearance
  • Moved fog application to the correct place
  • Fixed ElevationGrid setAttribute
  • Increase X3D compliance: don’t encode urls at sight
  • Fixed calculation of bounding box for Flash backend
  • Added fog to the Flash backend
  • Fixed normal transformation for the Flash backend
  • Fixed the check for enabled double-click
  • and more…

Grab the frozen 1.6.1 version here. The cutting-edge development version (nightly build of git head) can be found here.

X3DOM 1.5.1 Released

23.10.2013 Release

This month, X3DOM celebrates its 4th anniversary!
As a little “present”, we are proud to announce a 1.5.1 release of X3DOM. This release mainly contains fixes and corrections since the last 1.5 release. It is a maintenance update and recommended for all 1.5 users.

Most notable are the fixed bind behavior for transformed Viewpoint nodes, Viewfrustum matrix corrections, basic multi-touch support for other navigation types than examine, two new navigation modes, a beta version of DepthMode, BlendMode and ColorMaskMode, better normal map support in CommonSurfaceShader (if the “OES_standard_derivatives” extension is available), and last but not least support for 32-bit indices given that the new “OES_element_index_uint” extension is available. For a detailed list of changes please also refer to the CHANGELOG file.

Grab the frozen 1.5.1 version here. The cutting-edge development version (nightly build of git head) can be found here.

X3DOM 1.5

12.09.2013 Release

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 tutorial and example)
  • Shadow support for large scenes and all lights types (see tutorial for more information or click here or here for a demo)
  • Convenience object ‘Moveable’ for object manipulation
  • Additional X3D component plugins (not part of the HTML profile, i.e. not part of the x3dom.js package)

Fixes and Improvements

  • Many internal improvements and bugfixes
  • DOM/Scene update improvements (e.g 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 or fly with the cutting-edge development version here.

Online Model Converter

12.04.2013 Release Technical

Conversion Process

We have started a new project for online model conversion, which can be found on GitHub, too. It is an 3D model optimization and sharing service especially for the cultural heritage domain. The system is written in Python and allows optimization and conversion of 3D models for Web presentation and sharing these models on the Web. Its main features are:

  • Upload and conversion of 3D Models to X3DOM
  • Sharing of models on the web (permalinks to converted models)
  • Downloadable ZIP packages of converted models
  • Triangular Mesh optimization of models
  • Converted/Optimized models can be embedded in different templates
  • Asynchronous process
  • Server-Sent Events for fast status updates
  • Upload archives with many models and textures at once

This project was supported by V-Must, an EU-funded project that aims to provide the heritage sector with the tools and support to develop Virtual Museums that are educational, enjoyable, long-lasting, and easy to maintain. The developed code is open-source and you can just grab it from GitHub, where you also find everything to get started.

1.3 Release

23.12.2011 Release

X3DOM OneDotThree

So finally: 1 day before christmas we did it!

Here is our next stable release after half a year of development


We have worked on bug fixing and added some new features!

General work we did

Bug fixes & new Features

  • We worked much at our flash render backend. After Flash 11 was been released we now can make use of a non beta API and for this, which has made this implementation more stable.
  • #9: There is now <x3d src=’foo.x3d’ /> tag support. This allows integration of 3D content like native images. But be careful, this will only work in a client/server environment due the fact that we have to use the XMLHttpRequest functionality.
  • #15, #33, #50: 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.
  • #16, #27: 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.
  • #38: We have added support for billboards.
  • #41: We have redesigned our build system.
  • #45: 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).
  • #51: We also implemented functionality for inline support in a flash render setup.
  • #56: We added support for the the <param> tag. This allows to parameterize the framework at a single point.
  • We have extended our triangulation code for generating triangles out of concave geometry.

New components

With the new component model in X3DOM we have added the first two components, not natively included in our core profile


We wish you all a merry christmas, a happy new year and that we all make use of our good intentions.

1.2 Release

20.06.2011 Release

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.

Major Feature: Flash11/MoleHill Render backend

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

Additional Changes

  • 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.

1.1 Release

22.10.2010 Release

Second stable release after almost 7 month.


Most features from the 1.1. milestone are implemented:

WebGL compatibility

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.

HTML Profile

The proposed HTML profile is almost implemented:

Nodes and Components

Fallback model

The fallback-model has changed a bit. We partially support X3D-SAI plugins now and removed O3D as technology.

Next Release

Next release (V1.2) will focus on faster and better basic picking and collision methods to get more HTML-Events and the missing navigation modes (FLY, WALK, LOOKAT).

1.0 Release

25.03.2010 Release

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:

Nodes and Components

The fallback-model is also only partially implemented:

x3dom fallback model

Next release (v1.1) will focus on the following topics:

  • WebSG (Web Scene-graph, minimal GLSL-shader based profile)
  • CSS updates
  • Bindable stack and camera animation
  • Navigation: Walk, Fly and Examine
  • More Lights/Light-Types