Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


topo-vol is a topology guided volume exploration and analysis tool, written for the final project in Bei Wang's Computational Topology Course. It's built on top of the Topology ToolKit and VTK for computation, uses ImGui for the UI, and a custom rendering system for the volume rendering. By computing relevant topological structures (e.g. the contour tree) and classifying segments of data corresponding to the branches in this tree we can avoid occlusion issues with global transfer functions and create more useful, detailed renderings. See the report for more details.


In addition to VTK and TTK you'll need GLM and SDL2, these are likely available through your system's package manager if you're on Linux. We've only tested the program so far on Linux, however if you can build TTK on Windows or OS X you can likely build and run our program. OpenGL 4.3 is also required.

After getting GLM and SDL2 download and build VTK and follow the TTK installation instructions to build TTK. When running CMake you'll want to specify the location of the VTK cmake file if it's non-standard, and the path to TTKBaseConfig.cmake and TTKVTKConfig.cmake in TTK's install directory under lib/cmake/ttk. For example:

cmake -DVTK_DIR=<path to VTKConfig.cmake> \
      -DTTKBase_DIR=<path to TTKBaseConfig.cmake> \
      -DTTKVTK_DIR=<path to TTKVTKConfig.cmake> ...

If you're using the main repo of TTK, note that due to some issues with how TTK handles compiling packages depending on it as a library, our cmake will copy a modified ttk.cmake over the one in TTK's directory which will essentially build TTK into .lib files and accelerate compilation. After this you should be able to run make -j8 to build the program and make install to copy the shaders where the executable will look for them in the build directory. We recommend building the Release build for better performance.


topo-vol currently supports scalar-field VTI files with data type char, unsigned char, short, unsigned short or float. To get some data to test on you can load some of the raw files from the Open SciVis Datasets collection directly, or load them in ParaView and export them as VTI. If you built TTK with ParaView you can use that build to convert the data. Note that larger datasets will require much longer computation time and memory. When loading a raw file the file name must contain information about the dimensions and data type, in the format used by the Open SciVis Datasets collection. The format is:

<volume name>_<X dim>x<Y dim>x<Z dim>_<data type>.raw

Here's an example screenshot after performing separate classification of different segments in the contour tree on the Nucleon dataset. For an example of using the system for analysis see the video of a Tooth analysis session.

nucleon classification


Topology Guided Volume Exploration







No releases published


No packages published