OLD: Develop and Deploy X3D
Let's look at the various workflows for building and deploying X3D content:
Building Web3D Worlds can be considered as a three-step process:
- 3D Modelling: Generate 3D models and assets, compose scenes
- Processing: Optimize content for Web publication
- 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 publish to.
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.
-
X3D + HTML5 + Javascript + WebGL + WebXR
- X3DOM (*open source javascript) - X3DOM.org provides many tutorials and X3DOM examples for authors from beginner to advanced as to how to include interactive X3D natively in HTML5. The source of these pages can be used as templates and guidance for new projects. For starters, substitute your url for an Inline model or paste your model source code into the scene!
- WebVR + X3DOM
- See Rift, Leap, Gamepad pages and source examples from Virginia Tech
- Oculus Rift and Leap Motion: install the SDKs, turn on WebVR, and then use the IGD templates here (Oculus) and here (Oclulus + Leap)
- Advanced features such as Shaders, Shadows, advanced culling, model compression, and picking are illustrated in the X3DOM examples; there is a nice virtual catalogue tutorial here; also here is an Augmented Reality tutorial
- There is an X3DOM CAD Viewer project (github); the example online part-tree is here
- Volume data, such as medical scans and radar + GIS can be visualized in X3DOM
- BulletPhysics and H-Anim integration in X3DOM (ragdoll examples)
- WebVR + X3DOM
- Here is a useful presentation titled "Creating 3D Scenes for the Browser". The presentation contains screen shots of a lot of high-quality X3D example scenes delivered to multiple devices; links to the displayed content are included on each slide. "Add X3D on Your Webpage" - is a short blog post with a 3-step instruction to adding X3D to an existing webpage via X3DOM
- "Web3D Mobile How-To" - Descriptions and links on publishing X3D and working with mobile devices and Google Cardboard based on X3DOM
- X_ite (*open source javascript) X_ite examples page
- X3DOM (*open source javascript) - X3DOM.org provides many tutorials and X3DOM examples for authors from beginner to advanced as to how to include interactive X3D natively in HTML5. The source of these pages can be used as templates and guidance for new projects. For starters, substitute your url for an Inline model or paste your model source code into the scene!
-
Industrial-Strength X3D VR
- You have a full-featured X3D engine installed on your system and want to take advantage of its full power
- Fraunhofer IGD provides several excellent tutorials for using Instant Reality's advanced VR features like immersive displays and devices from Oculus (in this tutorial you may substitute "OculusRift2"), eMagin, Leap, spacemouse, Wii, and kinect (MS, OpenNI) connect a device to your live IR scenegraph like this through the easy web interface... then you can develop your own 3DUI by writing only javascript!
- These videos from Virginia Tech show X3D being used in their VisCube (CAVE) and for Cancer genome analysis (Microsoft)
- There is a great book and website called X3D Graphics for Web Authors, which includes slides, videos, and X3D examples from the Naval Postgraduate School's (NPS) Masters class in virtual environments
- The Extensible 3D (X3D) ISO/IEC 3.3 standard specifications can be found here
- Here are links to our favorite X3D Engines:
- InstantReality * see the extensive device support (kinect, leap, game controllers, and trackers!)
- H3D (plus Python and Haptics!) (*open source)
- Octaga VS
- Castle Game Engine (*open source)
- FreeWRL (*open source)
- Xj3D (Java) (*open source)
- Bitmanagement Contact
- Titania (Linux) (*open source)
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.
Applications
- 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:
Applications
- Blender - imports and exports X3D along with many other formats like OBJ, Collada, FBX (*open source)
- There is a project to bring IFC (BIM data) into Blender
- 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
- X3D Geospatial Tutorial (From Web3D 2015)
- Medical Tutorials (Web3D Wiki)