Topology ToolKit


Topological Data Analysis Made Easy with the Topology ToolKit, What is New?

IEEE VIS 2020 Tutorial
Monday, October 26, 8:00am-11:25am (MST)
IEEE VIS, Salt Lake City, UT, USA (online event)
Free registration:
 · Tutorial pre-registration
 · IEEE VIS 2020 registration

Online resources:
 ·  IEEE VIS Virtual conference site
    · Free registration to IEEE VIS required
 ·  Youtube live stream
 ·  IEEE VIS discord server
 ·  Add to calendar

Please see our Events page for all tutorials in this series.

Note to attendees

 ·  Our online TTK tutorial will be available at the following Youtube live stream.
 ·  During the tutorial, the organizing team will be available for live discussions on Youtube's live stream chat window as well as on the IEEE VIS discord server (the two chats will be automatically synchronized). These chats will be the main interaction media between the tutorial organizers and the attendees. Please do not hesitate to send us questions!
 ·  The tutorial will be organized in 3 sessions (program below). Slots of 15 minutes will be available for informal discussions in between sessions.
 ·  The tutorial will take place on October 26, at 8:00 am (Mountain Standard Time). To avoid timezone confusion, add our tutorial to your calendar!
 ·  We view our tutorial as a social event for the entire TTK community, which we try to capture in pictures (2018 gallery, 2019 gallery). To keep this social tradition going despite the pandemic restrictions, we kindly ask you to take a picture of yourself in front of your screen during the tutorial (with a webcam capture or a smartphone selfie) and to post it to the tutorial Google photo album or to send it to us by email. Thanks!
 ·  We kindly ask potential attendees to optionally pre-register at in order for us to reach out to them ahead of the tutorial with information updates (for instance, last minute updates, instructions for the download of the tutorial material package, etc.)
 ·  If you plan to attend this tutorial, we invite you to install TTK on your system before the tutorial. Several installation alternatives are available:
    · building TTK from source (default, link below, takes approximately 1 hour);
    · installing TTK binary packages for Ubuntu (link below);
    · downloading a pre-installed Linux virtual machine containing all the necessary software packages (link below);
    · installing our TTK docker image (link below);
    · installing our TTK anaconda package (link below, for a python usage only).
 ·  Please do not hesitate to reach out ahead of the tutorial if you experience any issue installing TTK:

Resources and Materials

 ·  Instructions for building TTK from source
 ·  TTK binary packages for Ubuntu:
    · ttk-paraview-ubuntu:
       ·  20.04 (ex: sudo apt-get install ~/Downloads/ttk-paraview-ubuntu-20.04.deb)
       ·  18.04 (ex: sudo apt-get install ~/Downloads/ttk-paraview-ubuntu-18.04.deb)
    · ttk-ubuntu:
       ·  20.04 (ex: sudo apt-get install ~/Downloads/ttk-ubuntu-20.04.deb)
       ·  18.04 (ex: sudo apt-get install ~/Downloads/ttk-ubuntu-18.04.deb)
    · Then add the following lines to your ~/.bashrc file:
       ·  export PV_PLUGIN_PATH="/usr/lib/paraview-5.8/plugins/TopologyToolKit/"
       ·  export LD_LIBRARY_PATH="${LD_LIBRARY_PATH};/usr/lib/x86_64-linux-gnu/ttk/"
 ·  Pre-installed virtual machine with TTK (Ubuntu 20.04, requires VirtualBox, password: ttk)
 ·  TTK docker image installation instructions
 ·  TTK anaconda package installation instructions (python API only)
 ·  Tutorial data package
 ·  Detailed tutorial submission document


This tutorial presents topological methods for the analysis and visualization of scientific data from a user’s perspective, with the Topology ToolKit (TTK), an open-source library for topological data analysis. Topological methods have gained considerably in popularity and maturity over the last twenty years and success stories of established methods have been documented in a wide range of applications (combustion, chemistry, astrophysics, material sciences, etc.) with both acquired and simulated data, in both post-hoc and in-situ contexts. This tutorial aims to fill a gap by providing a beginner’s introduction to topological methods for practitioners, researchers, students, and lecturers. In particular, instead of focusing on theoretical aspects and algorithmic details, this tutorial focuses on how topological methods can be useful in practice for concrete data analysis tasks such as segmentation, feature extraction or tracking. The tutorial describes in detail how to achieve these tasks with TTK. In comparison to the last two iterations of this tutorial, this iteration emphasizes the features of TTK which now appear to be the most popular, as well as the latest additions to the library. First, we provide a general introduction to topological methods and their application in data analysis, and a brief overview of TTK’s main entry point for end users, namely ParaView, will be presented. Second, we will proceed to a hands-on session demoing the main features of TTK as well as its most recent additions. Third, we will present advanced usages of TTK, including the usage of TTK with Python, the development of a new module for TTK as well as the integration of TTK into a pre-existing system. Presenters of this tutorial include experts in topological methods, core authors of TTK as well as active users, coming from academia and industry. A large part of the tutorial will be dedicated to hands-on exercises and a rich material package will be provided to the participants. This tutorial mostly targets students, practitioners and researchers who are not necessarily experts in topological methods but who are interested in using them in their daily tasks. We also target researchers already familiar to topological methods and who are interested in using or contributing to TTK. We kindly ask potential attendees to optionally pre-register at the following address, in order for us to reach out to them ahead of the tutorial with information updates (for instance, last minute updates, instructions for the download of the tutorial material package, etc.): .



  1. 8:00am Preliminaries
  2. 9:15am Hands-on Exercises
  3. 10:30am Advanced Usage



 ·  General introduction (Julien Tierny)

 ·  Introduction to topological methods for data analysis (Attila Gyulassy)
This talk will present the core tools in topological data analysis (the Persistence diagram, the Reeb graph and its variants, annd the Morse-Smale complex ). In particular, it will detail how these tools can be used for data segmentation and feature extraction.
 ·  Quick introduction to ParaView's user interface (Charles Gueunet)
This talk will provide a brief description of ParaView's main interface, in order to support its usage for beginners in the subsequent hands-on session. This will cover the usage of filters, pipeline design and view manipulation, state files backups and Python exports.

Hands-on Exercises

 ·  General usage of TTK (Julien Tierny)
This talk will briefly describe TTK's usage philosophy. It will briefly present how TTK can be used from ParaView, Python, VTK/C++ or C++.
 ·  Running TTK with Docker (Christoph Garth)
This talk will introduce TTK's usage with Docker.
 ·  Segmenting medical data with merge trees (Charles Gueunet)
This hands-on TTK/ParaView exercise will be a step-by-step tutorial showing how to extract individual bones in a medical CT scan interactively with merge trees.
 ·  Extracting filament structures with the Morse-Smale complex (Pierre Guillou)
This hands-on TTK/ParaView exercise will show step-by-step how to extract filament structures with the Morse-Smale complex on chemistry data.
 ·  Extracting contours associated with critical points (Christopher Kappe)
This hands-on TTK/ParaView exercise will show step-by-step how to extract relevant contours in the visualization, based on the extraction of salient critical points in the data.
 ·  Distances, barycenters and clusters of Persistence diagrams (Jules Vidal)
This hands-on TTK/ParaView exercise will show step-by-step how to efficiently compare and cluster data sets based on their persistence diagram.

Advanced Usage

 ·  Using TTK with Python (Lutz Hofmann)
This talk will present how to deploy (with its Anaconda package) and use TTK in a Python environment with simple examples.
 ·  Developing a new module for TTK (Jonas Lukasczyk)
This hands-on will present how to create in 2 minutes a new, running module in TTK. This presentation will also cover the main steps of a module creation.
 ·  TTK integration into Inviwo (Martin Falk)
This talk will provide a brief introduction on the concepts utilized in Inviwo like its network editor and the associated data flow paradigm. We then detail our approach of integrating TTK into the data flow within Inviwo, which involves transforming data structures from Inviwo to TTK and back. The seamless integration is demonstrated with a number of examples.
 ·  TTK as a teaching platform (Joshua Levine)
This talk will provide feedback about our experience in using TTK in our topological data analysis classes.
 ·  Concluding remarks (Julien Tierny)

Pictures of the tutorial

Additional Material

 ·  TTK overview video
 ·  TTK Technical presentation at IEEE VIS 2017 (for advanced users)
 ·  TTK Technical report (for advanced users)
 ·  TTK feature overview
 ·  TTK user forum
 · Using TTK in-situ with Catalyst: Online tutorial
 · Using TTK with Python: Online example - Online tutorial
 · Using TTK with VTK/C++: Online example
 · Using TTK with pure C++: Online example
 · Extending TTK with a new module: Online tutorial (computation of Betti numbers)
 · TTK developer documentation