Topology ToolKit


TTK needs you!

TTK is an open-source initiative and needs voluntary contributors to be developed and maintained. If you are interested in and/or want to learn more about 3D graphics, geometry and topology, and C++ coding, then you may want to consider contributing to TTK.

Even if you are not a programmer, your help is welcome. We will always have some workload to share, for instance regarding the documentation, the tutorial videos, the website, the testing, etc.

If you are yourself an expert in topological or geometrical data analysis and you are looking for a powerful, efficient and generic software platform to disseminate your own research code, we believe TTK may be what you are looking for. In that case, we would be very happy to help port your code into TTK.
We specifically designed TTK with this purpose in mind, to ease and speed up the development of topological and geometrical data analysis algorithms and to help developers write powerful, generic and efficient analysis codes. We believe TTK will really make your life easier.

Contributing code

To contribute code to TTK, start by cloning our public Github repository to access the latest source tree:

git clone

Next, if you have not done so already, you may want to look at our installation, usage and development tutorial videos on our tutorial page.

TTK has been designed with a modular architecture, which should facilitates the development of new features. Moreover, TTK ships with various bash scripts that will help you generate new TTK modules by automatically creating all the required files. See our documentation for more details. If you need assistance at this point, just ping the dev-team by sending an email to

Once you have finished the development of a new TTK module, please consider sending us a pull request. We would be happy to include it in the next release of TTK!

To be considered for inclusion in the next release of TTK, your contributed module must adhere to the TTK design principles: templatized core processing functions located in base-code classes only, no data copy, no third-party dependencies (when applicable), etc. See our documentation page for further details. Obviously, your module must build properly without warnings with a stable release of gcc.
Also, for visibility purposes, please provide to the dev-team (
 · An example data-set;
 · A ParaView state file using the above data-set and using your TTK module;
 · A tutorial video illustrating the execution of the above ParaView state file as well as its step-by-step from-scratch reproduction (for the tutorial page);
 · A full-size screen-shot of your TTK module in action in ParaView (for the gallery page).