Topology ToolKit

Efficient, generic and easy
Topological data analysis and visualization


 ·  TTK 1.2.0 is out! Download it and check it out :) [Jul. 11, 2023]
 ·  Aussies and others: don't miss the next IEEE VIS TTK Tutorial in Melbourne! [Jun. 20, 2023]

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

TTK can handle scalar data defined either on regular grids or triangulations, in 1D, 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) and merge trees, principal geodesic analysis of persistence diagrams and merge trees, 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, persistent cycle extraction;
 · and more!
If you need to robustly analyze your data, you may want to use TTK.
> Check out the new TTK Online Example Database for some TTK eye candy!

TTK makes topological data analysis accessible to end users thanks to easy-to-use plugins for the data analysis and visualization application 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