xml3d.js is a XML3D implementation based on WebGL and JavaScript. The aim of XML3D is to make the development of 3D-Web applications as easy as developing web pages. Every web developer who knows how to use the DOM (or jQuery) should also be able to use XML3D.
XML3D is also an evaluation platform of the W3C Community Group Declarative 3D for the Web
Download the library and include it in your xhtml.
<script src="http://www.xml3d.org/xml3d/script/xml3d.js"></script>
If a standard navigation mode is sufficient for your web application, you can include the camera controller that comes with xml3d.js:
<script src="http://www.xml3d.org/xml3d/script/xml3d.js"></script>
<script src="http://www.xml3d.org/xml3d/script/tools/camera.js"></script>
We have an extensive test suite and some known issues.
You will need node.js. Then install grunt:
npm install -g grunt-cli
Clone a copy of the main xml3d.js git repo by running:
git clone git://github.com/xml3d/xml3d.git
Enter the xml3d.js directory and run the build script:
cd xml3d.js && npm run build
The built version of xml3d.js will be put in the build/output/
subdirectory. Alternatively you have several grunt tasks that you can run directly (e.g. grunt min
). Run grunt --help
to get a list of available grunt tasks.
We have an overview documentation in each subfolder of the project:
- build - The build system of xml3d.js.
- src - The actual source code of the xml3d.js library
- tests - The test suite
- tools - Several tools that can be used optionally with xml3d.js
4.9 - 31.03.2014
- External Xflow Operators - demo, doc
- IE 11 Support
- Grunt build system now based on Browserify
- Source Mapping for the xml3d-dev build
- Bugfixes: 37, 73, 87, 88, 92, 98, 100, 104
4.8 - 18.12.2014
- Recursive Assets - demo, doc, issue
- Load Events - doc
- iOS 8 Support
- New build system based on grunt
- Improved texture filtering - doc
- Draw multiple line strips in a single mesh
<mesh>
- demo, demo, doc - Bugfixes: 9, 46, 56, 74, 75, 76, 77, 79, 82
4.7 - 17.10.2014
- Assets / Configurable Instances - demo, slides
- shade.js integration (beta) - demo, slides
- Shadow Maps - demo
- More options for texture filtering
- Bugfixes: #69, #71
4.6 - 15.04.2014
- Custom RenderTrees and the RenderInterface
- Added Screen-space Ambient Occlusion to standard render pipeline
- Added system to set renderer-specific options
- Infrastructure for WebCL-based Xflow operators
4.5 - 14.11.2013
- Full support for HTML encoding, all demos in HTML now
- Set data values efficiently using TypedArray - demo, doc
- Override shader attributes on a per-object basis - demo
- Improved Error Messages
- Reuse of Xflow graphs using new
<dataflow>
element - demo, doc - Many performance improvements, e.g. Frustum Culling and Paging
- Support for mult-touch events
- Dynamic near/far clip planes that adapt to scene size
- #24: WebWorker support for MeshLoader plug-ins - demo
- #25: Smarter handling of cached resources
4.4 - 23.04.2013
- Image Processing with Xflow (also as standalone library) - demo
- Transformations as Xflow sink
- Augemented Reality (AR) - demo
- Keyframe animations
- Generalized resources for meshes, shaders, etc.
- Xflow API: Observer Xflow graph from JavaScript
- Canvas resizing demo
- Issues: Fixed #2, Fixed #3
4.3 - 18.12.2012
- Xflow support, including
- External references in XML format - demo
- 'onload' event for <xml3d> element
- Support for video textures - demo
- Support to use a webcam stream as video texture via WebRTC API - demo
- Support of spot lights - demo
- Support of CSS 3D Transforms in style attribute - demo
- Improved debug output
4.2 - 14.09.2012
- Hardware accelerated object picking expanded to 16,7 mio objects
- Emissive texture map support in diffuse and phong shader - demo
- Specular map support in phong shader - demo
- New mechanism for custom shaders - demo
- Support of directional lights (finally) - demo
- Support of external data resources in JSON format - demo
- New mechanism to register loaders for external formats - demo
4.1 - 19.07.2012
- Initial release on GitHub