The X Toolkit: WebGL™ for Scientific Visualization
- XTK is easy, lightweight and fast !
- Native reading of a variety of scientific file formats (see File formats)
- Volume rendering, thresholding and cross-sectional slicing of 3d image data
- Label maps, color tables and surface overlays are supported, as well as Constructive Solid Geometry
- CDash + Google Closure driven build and test system
CS460 at the University of Massachusetts Boston
XTK is being taught as part of the CS460 Computer Graphics course at UMass Boston. All lectures and videos are available at https://cs460.org ! This is part of the BostonGFX (==Graphics for Everybody, #GFX4ALL) initiative.
Demos
KneeAtlas |
FiberAtlas |
Aneuriskweb |
BrainAtlas |
Mindboggle |
Slice:Drop |
Lessons
Lesson 00: Hello cube! The most simple XTK lesson displays a white cube. |
Lesson 01: Skin the cube and rotate it! This one adds a texture to the cube and activates spinning. |
||
Lesson 02: Constructive Solid Geometry is fun! Mesh primitives can be combined using boolean operations. |
Lesson 03: We need more cubes! One thousand objects are rendered in a single scene. |
||
Lesson 04: The magic Porsche! This lesson loads a mesh from a .STL file and shows off the magic mode. |
Lesson 05: Rotate the skull! A visualization of a mesh loaded from a .VTK file. |
||
Lesson 06: Connectivity! Load and render brain fibers from a .TRK file. |
Lesson 07: One renderer is not enough! Here multiple 3D renderers are showing the same object with different camera positions. |
||
Lesson 08: Surf free! Loading freesurfer meshes and brain fibers at the same time. |
Lesson 09: Points to Spheres! Point data is loaded from a .VTK file and each point is displayed as a sphere. |
||
Lesson 10: Slice it! Load a .NRRD single-file DICOM volume and a segmentation mesh from a .VTK file. |
Lesson 11: Slice it with colors! This one loads a .NRRD single-file DICOM volume and the corresponding segmentation as a label map colorized using a color lookup-table. |
||
Lesson 12: Curvature! Here we load a freesurfer mesh (.SMOOTHWM) and different curvature (.CRV) values as an overlay. |
Lesson 13: I want 2D! This lesson links three 2D renderers to one 3D renderer and loads a .NRRD single-file DICOM and a label map. |
||
Lesson 14: Is it a cube? Zoom in to see the particles and some great effects! |
Lesson 15: D-I-C-O-M! Here we visualize a brain MR scan read from DICOM files. |
||
Lesson 16: 10 PRINT 3D A 3D version of the excellent 10 PRINT pattern showcasing advanced XTK object generation. |
Lesson 17: (RE)Slice it! New arbitrary reslicing capabilities. Everything is happening in Real Time! Leap Motion Ready! |
Download
Get it right here: xtk.js or include it like this:
<script type="text/javascript" src="https://get.goXTK.com/xtk_edge.js"></script>
Example Usage
// create a new 3d renderer
var r = new X.renderer3D();
r.init();
// create a mesh from a .vtk file
var skull = new X.mesh();
skull.file = 'skull.vtk';
// add the object
r.add(skull);
// .. and render it
r.render();
Check out the live version!
API Documentation
The full documentation of the API is available here.
More information...
...is available at Project X, the X Toolkit wiki system.
Need help?
We use http://stackoverflow.com/questions/tagged/xtk for user support. Please ask and tag ([xtk]) your question there!
Contribute?
Yes, please! See the Developer's Heads Up and the X:Future page.
License
Copyright (c) 2012 The X Toolkit Developers <dev@goXTK.com>
The X Toolkit (XTK) is licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
Publications
- Hähn D, Rannou N, Ahtam B, Grant PE, Pienaar R: Neuroimaging in the Browser using the X Toolkit. NeuroInformatics, September 2012. Abstract and Poster.
- more..