Hack Web3D VR!

Let's look at the various workflows for building and deploying X3D content:

Building Web3D Worlds can be considered as a three-step process:

  1. 3D Modelling: Generate 3D models and assets, compose scenes
  2. Processing: Optimize content for Web publication
  3. Publication: Marshal scene content and Add features for device-specific display and interaction

Let's work backwards through the steps from what kind of device you want to hack for.


3] Publication

Consider the requirements of your application, especially what services are needed and what client platforms you are targeting. X3DOM works well with WWW technologies like the DOM, jQuery, WebGL, Node.js, and D3. Your webserver should be setup to recognize the standard MIME types. X3D and VRML models can be Inlined into other X3D and VRML scenes; basic X3D can be Inlined into X3DOM. Consider X3D is the full-featured VR superset of X3DOM and WebVR.


2] Processing

For some applications, 3D models may need to be optimized for web publication or network sharing. This could mean reducing the mesh for faster network transmission, multiple levels-of detail, testing for watertighness, or transcoding a model to a more compact encoding. Note Bene: the file.type and the encoding difference between equivalent X3D scenes. Situations can arise when there is not a direct export path for model assets; this requires an additional step of conversion. Be aware: often tools remove or add information along the way. 


  • AOPT is a command-line tool included with InstantReality.org engine that can optimize 3D models (this page and this page provide an introduction to the options); supports X3D, VRML, OBJ, FBX, input converted to X3D, X3DOM, and binarygeometry output; an simplified online version is here
  • MeshLab has lots of  processing tools for point clouds and meshes and supports several file formats including X3D and VRML; can be scripted as a server  (*open source)
  • The NIH 3D Print Exchange provides an online library and processing chain based on X3D and X3DOM
  • Castle Game engine has a conversion component called view3Dscene for several common formats (*open source)
  • Okino Polytrans Industrial-strength model conversion
  • Safe Software's FME supports conversion of tons of formats
  • Volume / Medical data is often image slices, which can be processed with ImageJ and/or Seg3D (*open source) for  loading in X3D


1] 3D Modelling

X3D files can be generated programmatically (i.e. scripts) or edited in a text editor, but often it is easiest to 'SAVE AS' or 'Export' directly from a GUI editing tool. Authoring tools vary widely as to what formats they import/export; VRML can be easily translated to X3D with tools listed below. Here is a list of links summarizing Web3D content authoring tools:


  • Blender - imports and exports X3D along with many other formats like OBJ, Collada, FBX (*open source)
  • Unity - there are two open X3D exporter projects under development in the Web3D community: Franke's and Arendash's
  • Titania is a full-featured X3D authoring environment / editor for Linux
  • X3D-Edit is a structured editor for X3D with XML support and ToolTips  (*open source)
  • Vivaty Studio is an older X3D/VRML authoring environment that also support H-Anim
  • 3D StudioMax - export X3D, VRML annd HTML5 with InstantExport
  • Maya exports VRML
  • Paraview - a scientific visualization package with X3D and VRML(.wrl) output (*open source)
  • Sketchup can export VRML format among others
  • ESRI's ARCScene can export VRML or GeoVRML models
  • BRL-CAD is a solid modeller that supports X3D, VRML and many CAD formats (*open source)
  • OpenCascade supports VRML and other CAD formats (*open source)
  • Molecules,Proteins and crystals can be exported as X3D, VRML, or X3DOM from tools like VMD or Chimera (*open source)
  • BS Contact Studio
  • Luxology's modo tool exports X3D
  • MatLab exports X3DOM of figures and connects to live scenes with Simulink



Full X3D-enabled web applications

    • STOQS (*open source) - X3D Geospatial with oceanographic data


Domain-Specific Tutorials