The X Toolkit
Clone or download
Daniel Haehn
Daniel Haehn Merge pull request #192 from fogleman/fix-submodule
Update closure-library submodule URL
Latest commit f59beb2 Aug 3, 2016

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


      Knee Atlas
      Fiber Atlas
      Brain Atlas


lesson00 Lesson 00: Hello cube!
The most simple XTK lesson displays a white cube.
lesson01 Lesson 01: Skin the cube and rotate it!
This one adds a texture to the cube and activates spinning.
lesson02 Lesson 02: Constructive Solid Geometry is fun!
Mesh primitives can be combined using boolean operations.
lesson03 Lesson 03: We need more cubes!
One thousand objects are rendered in a single scene.
lesson04 Lesson 04: The magic Porsche!
This lesson loads a mesh from a .STL file and shows off the magic mode.
lesson05 Lesson 05: Give me skull, baby!
A visualization of a mesh loaded from a .VTK file.
lesson06 Lesson 06: Connectivity!
Load and render brain fibers from a .TRK file.
lesson07 Lesson 07: One renderer is not enough!
Here multiple 3D renderers are showing the same object with different camera positions.
lesson08 Lesson 08: Surf free!
Loading freesurfer meshes and brain fibers at the same time.
lesson09 Lesson 09: Points to Spheres!
Point data is loaded from a .VTK file and each point is displayed as a sphere.
lesson10 Lesson 10: Slice it!
Load a .NRRD single-file DICOM volume and a segmentation mesh from a .VTK file.
lesson11 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.
lesson12 Lesson 12: Curvature!
Here we load a freesurfer mesh (.SMOOTHWM) and different curvature (.CRV) values as an overlay.
lesson13 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.
lesson14 Lesson 14: Is it a cube?
Zoom in to see the particles and some great effects!
lesson15 Lesson 15: D-I-C-O-M!
Here we visualize a brain MR scan read from DICOM files.
lesson16 Lesson 16: 10 PRINT 3D
A 3D version of the excellent 10 PRINT pattern showcasing advanced XTK object generation.
lesson17 Lesson 17: (RE)Slice it!
New arbitrary reslicing capabilities. Everything is happening in Real Time!
Leap Motion Ready!


Get it right here: xtk.js or include it like this:

<script type="text/javascript" src=""></script>

Example Usage

// create a new 3d renderer
var r = new X.renderer3D();
// create a mesh from a .vtk file
var skull = new X.mesh();
skull.file = 'skull.vtk';
// add the object
// .. and render it

Check out the live version!

API Documentation

The full documentation of the API is available here.

More information... available at Project X, the X Toolkit wiki system.

Need help?

We use for user support. Please ask and tag ([xtk]) your question there!


Yes, please! See the Developer's Heads Up and the X:Future page.


Copyright (c) 2012 The X Toolkit Developers <>

The X Toolkit (XTK) is licensed under the MIT License:


  • 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..

Affiliations and Sponsors

Boston Children's Hospital Boston      Harvard Medical School