Topology ToolKit

Efficient, generic and easy
Topological data analysis and visualization


 ·  TTK 0.9.9 is out! Download it and check it out :) [Dec. 21, 2020]
 ·  We had an awesome tutorial at IEEE VIS 2020. Videos are now available here! [Oct. 27, 2020]
 ·  Join us online at IEEE VIS 2020 (October 26) for a half-day TTK tutorial! [Oct. 7, 2020]
 ·  Check out our introduction to TTK on the Applied Algebraic Topology Network ! [May 21, 2020]

The Topology ToolKit (TTK) is an open-source library and software collection for topological data analysis and visualization.

TTK can handle scalar data defined either on regular grids or triangulations, in 2D, 3D, or more. It provides a substantial collection of generic, efficient and robust implementations of key algorithms in topological data analysis. It includes:
 · For scalar data: critical points, integral lines, persistence diagrams, persistence curves, merge trees, contour trees, Reeb graphs, Morse-Smale complexes, topological simplification, topology-aware compression, harmonic design;
 · For bivariate scalar data: fibers, fiber surfaces, continuous scatterplots, Jacobi sets, Reeb spaces;
 · For uncertain scalar data: mandatory critical points;
 · For ensemble scalar data: Bottleneck and Wasserstein distances between persistence diagrams (exact Munkres-based computation or fast Auction-based approximation), Wasserstein barycenters and clusters of persistence diagrams (fast progressive algorithms), distance matrices (Lp norm, Wasserstein distances), contour tree alignment;
 · For time-varying scalar data: critical point tracking, nested tracking graphs;
 · For high-dimensional / point cloud data: dimension reduction, persistence-based clustering;
 · and more!
If you need to robustly analyze your data, you may want to use TTK.
> Check out our gallery page for some TTK eye candy!

TTK makes topological data analysis accessible to end users thanks to easy-to-use plugins for the visualization front end ParaView. Thanks to ParaView, TTK supports a variety of input data formats.
> Check out our video tutorials to see TTK in action!

TTK is written in C++ but comes with a variety of bindings (VTK/C++, Python) and standalone command-line programs. It is modular and easy to extend. We have specifically developed it such that you can easily write your own data analysis tools as TTK modules.
> Check out our developer documentation

TTK is open-source (BSD license). You can use it at your convenience, for open-source or proprietary projects. You are also welcome to contribute.
> Check out our contribution page