Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

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 ! This is part of the BostonGFX (==Graphics for Everybody, #GFX4ALL) initiative.




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: Rotate the skull!
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