Topology Guided Volume Exploration
Switch branches/tags
Nothing to show
Clone or download
Latest commit 8316aaa Oct 22, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
topo-volume actually just need msc for some reason Oct 21, 2018
.gitignore update gitignore Oct 22, 2018 License May 1, 2017 Update Sep 23, 2018
report.pdf dumping stuff May 1, 2017


topo-vol is a topology guided volume exploration and analysis tool, written for the final project in Bei Wang's Computational Topology Course. It is built on top of the Topology ToolKit and VTK for computation, and uses ImGui and a custom rendering system for the UI and 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