After a bit of a delay version 5.2 of XML3D was released today!

The main focus of this release was on adding Web Component support. Web Components are a relatively new web technology that lets you define your own custom HTML elements based on a template and a JavaScript prototype. For example, you could define a <xml3d-teapot> element that simply draws a teapot, or something more complex like a <xml3d-boundingbox> element that draws the bounding box of any other XML3D element. Check out both of these examples in our XML3D Examples repository.

We think Web Components are a powerful new way to create and share your own objects, tools or features between XML3D scenes. For a better idea of what steps are involved in creating your own component we’ve added a page in our GitHub wiki that re-creates the <xml3d-boundingbox> component step by step.

Besides that we’ve added support for CSS transitions to the transform property. This makes it possible to use libraries like jQuery Transit to animate the CSS transforms of your XML3D elements. We’ve added a small demo of this to our examples repository.

Lastly, materials can now change certain WebGL states during rendering. This isn’t part of the XML3D specification, since it’s very specific to the WebGL implementation, but we feel it’s a very useful feature to better control how your objects are rendered. Using this you can, for example, disable depth testing for certain materials, or change the blending mode on a per-object basis. You can find an example of this in our examples repository and a wiki page detailing what WebGL states can be changed.

As always, the above changes are detailed in the updated 5.2 specification.

That’s all for now!



Today we released version 5.1! This release focused mainly on the loading of resources. We now have a system based on Promises and the new Fetch API that allowed us to improve the FormatHandler interface for writing custom mesh loaders, which is detailed in a new wiki article.

The new resource system also comes with a way to set custom HTTP headers for requests through our new onRequest interface. This can be useful if your models are password protected and require an Auth header, for example. Using the same interface you can also disable document caching for certain requests, change their priority or even cancel them altogether. This makes it much easier to control how your scene is loaded by XML3D.

Finally, you can now use the CSS z-index property to change the rendering order of objects in the scene regardless of how they’re positioned. We’ve created an example of the z-index property in action and as always the details can be found in our updated specification document.



We reached our next milestone for XML3D, version 5.0! This version includes some general clean-up that was necessary after nine (!) subsequent 4.x releases with more and more features, but also includes changes motivated by great community feedback.

With 5.0 also comes a brand new specification slash API document that will be kept up to date from now on. Besides describing the API and structure of XML3D it contains many examples, notes and descriptions of the concepts that XML3D uses, such as the generic data model (Xflow) and CSS integration.

The 5.0 version of XML3D is not backwards compatible, meaning your existing scenes will need to be adapted to work with 5.0. We tried to ease the migration for you and created a migration script for Node.js that automates most of this as well as a list of breaking changes in our Github wiki.

As always the change log for this release can be found in our Github repository. The compiled scripts are already up at and the xml3d-examples repository has been updated as well. New 5.0 versions of the Blender exporter and assimp2xml3d will be released in the coming days. The standard camera controller (tools/camera.js) has also been overhauled to be a little more useful and up to date.

That’s all for now!

cebitAt this year’s CeBIT, there are two XML3D-based demonstrators:

  • XML3D and eHealth,  (Halle 9, F43)
    We show how a serious game developed based on XML3D technology can help to understand diseases and in the design of rehabilitation programs.
  • XML3DRepo, (Halle 9, E13)
    We show London’s Kings Cross station in the browser as part of a system to store and deliver versioned 3D data.

We are looking forward to see you at the booths!


ICT 2013More than 5000 researchers innovators, entrepreneurs, industry representatives, young people and politicians meet at ICT 2013 in Vilnius on 6-8 November. The main focus will be on presentations and discussions around the new  EU’s Framework Programme for Research and Innovation Horizon 2020. XML3D will present at two booths of the presentation:

  • In context of the VERVE project, where we will show a serious game 3D web application for patients that suffer from Parkinson. This application was developed in close collaboration with the Trinity College Dublin.
  • As part of the FIcontent project, where XML3D is one of the base technologies

Meet us in the exhibition hall to chat about XML3D and Declarative3D in the web!