Fork me on GitHub

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.

X3DOM running on Sony Ericsson Xperia phones

22.12.2011 Showcase Technical

In the latest software upgrade for the 2011 Xperia Phones, Sony Ericsson included WebGL support. By doing so, Sony Ericsson is the first mobile phone manufacturer to support WebGL for the default (Android) web browser and standard HTML content.

Klas Hermodsson (and earlier Anders Isberg) from Sony Ericsson contacted us a few weeks ago and told us that they tried to run our examples and that unfortunately most of them didn’t work properly. To support our work Sony offered to send us a test device. We got this device (Sony Ericsson Xperia Pro) last Monday and it is really an incredible piece of hardware.

So Timo started immediately to rework our shader compositor to produce more compact shaders, which work better on mobile devices and now (almost) everything works fine. There are still some minor issues, but this should be fixed soon.

A lot of thanks again to Sony Ericsson for this great test device.

X3D Inline data reflected to the DOM


The current version of X3DOM extend the X3D Inline functionality with the possibility of reflection. If you include an external scene with the use of inline  into another scene, you can set the attribute “nameSpaceName”. This attribute causes the attached scene to be represented in the DOM. This feature makes it possible to access the elements inside the inlined scene with JavaScript.

This is an extension of the official specification, which does not yet include reflection.

If you inline a scene <inline nameSpaceName=’foo’ url=’someScene.x3d’ /> with a named element <Box id=’bar’ /> you can address this element with getElementById(‘foo__bar’).

2D Primitives Component as plugin


The x3d specification describes eight 2D Nodes:

  • Arc2D
  • ArcClose2D (“PIE”/”CHORD”)
  • Circle2D
  • Disk2D
  • Polyline2D
  • Polypoint2D
  • Rectangle2D
  • TriangleSet2D.

Recently you can use it to build you scene in X3DOM.

This component and those nodes are not part of the X3DOM core but provides by a extra component plugin.

You can use it with include the Geometry2D.js component

The Attributes of all these components you could change with javascript. For example, you could change the length of the radius of Arc2D as follows:

 document.getElementById(‘ArcID’).setAttribute(‘radius’, ‘1’);

External showcase with CSS Transformations

20.12.2011 Showcase

This example by Sandy Ressler demonstrates the use of CSS3 content filters to display and hide content. Some of that content is X3DOM.

X3DOM in presentation slides (external showcases)

13.12.2011 Showcase

These presentation slides by Sandy Ressler demonstrate the use of X3DOM in HTML presentations. Additionally these slides using the WebSlides project.

Triangulation of concave polygons

01.12.2011 Uncategorized

In the new version of x3dom it is possible to use IndexedFaceSet nodes with concave polygons.

To use this features you only need to add an attribut like convex=’false’ to the IndexedFaceSet  element.

This features is realized on the basis of the Ear Clipping  algorithm. This algorithm has two restrictions:

  • you should not use polygons with hole
  • and you should not use polygons with overlap.