Topology ToolKit


Tutorials

For the IEEE VIS TTK Tutorial series, please visit our Events page.

Please find below a few video tutorials regarding:
  1. Global overview of TTK
  2. TTK installation
  3. TTK in action!
   ·  a) with scalar data
   ·  b) with bivariate scalar data
   ·  c) with uncertain scalar data
   ·  d) with time-varying scalar data
   ·  e) with ensemble scalar data
   ·  f) with high-dimensional / point cloud data
   ·  g) misc features
   4. TTK in-situ
   ·  a) Cinema features
   ·  b) TTK with Catalyst
   ·  c) Compression
   5. TTK development
   ·  a) with Python
   ·  b) with VTK/C++
   ·  c) with pure C++
   ·  d) extending TTK with a new module
   ·  e) extending TTK with a new module: an introduction with Betti numbers


TTK's user forum: ENTER.

1. Global overview of TTK

This talk gives a global overview of TTK. After introducing the main concepts behind TTK's usage, we demo how to use it with simple examples in ParaView and Python. Then, we present an overview of TTK's capabilities, going from simple critical point extraction to more advanced features (Reeb graphs, Morse-Smale complexes, distances and barycenters of persistence diagrams, etc) as well as TTK's current capabilities for processing point cloud data.




2. TTK installation

This video shows how to install TTK on a fresh new install of Ubuntu Linux 16.10. Please see our installation page to read the detailed instructions.




3. TTK in action!

In the following, we assume that you successfully installed TTK (see the above video and our installation page). We will also assume that you downloaded the TTK data tarball from our download page (for instance, into your ~/Downloads/ directory). From there, enter the following commands under Linux (omit the $ character) to decompress the data tarball:

$ mkdir ~/ttk
$ mv ~/Downloads/ttk-data-0.9.9.tar.gz ~/ttk/
$ cd ~/ttk
$ tar xvzf ttk-data-0.9.9.tar.gz
$ rm ttk-data-0.9.9.tar.gz

You can now proceed with the following videos to see how to reproduce the examples shown in the gallery section with the example data-sets you have just de-compressed.

Note to Python users
Note that, for each of the following examples, once in ParaView, you have the possibility to export the example into a python script (that you can later edit according to your own needs) by clicking on File, then Save State... and by selecting the Python state file (*.py) extension as described in the overview video above (see also the following page for further information regarding TTK's usage with Python).

Now, let's see TTK in action!

a) With scalar data

Dragon demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Dragon demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/dragon.pvsm


Update: as of version 0.9.6, there is no need to check the box "UseInputOffsetField". Input offsets are now automatically retrieved from the data, if present. To force the usage of a specific field as vertex offset (advanced usage), check the box "ForceInputOffsetField".
Update: as of version 0.9.3, the TTK module "Contour Forests" is marked as deprecated, in favor of a newer module, "Merge and Contour Tree (FTM)", implementing a recently introduced algorithm using task-based Fibonacci heaps. Performances should be greatly improved. When using this module, to smooth the contour tree skeleton, please use the "Geometry Smoother" module on the "Skeleton Arcs" output and check the box "Use Input Mask Field" to constrain the location of the skeleton critical nodes.

Morse persistence demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Morse persistence demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/morsePersistence.pvsm


Update: as of version 0.9.6, there is no need to check the box "UseInputOffsetField". Input offsets are now automatically retrieved from the data, if present. To force the usage of a specific field as vertex offset (advanced usage), check the box "ForceInputOffsetField".

Built-in example 1

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the first built-in example demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/BuiltInExample1.pvsm


Update: as of version 0.9.6, there is no need to check the box "UseInputOffsetField". Input offsets are now automatically retrieved from the data, if present. To force the usage of a specific field as vertex offset (advanced usage), check the box "ForceInputOffsetField".

Interaction site demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the interaction site demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/interactionSites.pvsm

Viscous fingering demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the viscous fingering demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/viscousFingering.pvsm

Morse molecule demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Morse molecule demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/morseMolecule.pvsm

Tectonic puzzle demo (video to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the tectonic puzzle demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/tectonicPuzzle.pvsm

Ocean vortices demo (video to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the ocean vortices demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/oceanVortices.pvsm

Contour around point demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Contour around point demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/contourAroundPoint.pvsm

CT bones demo (video to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the CT bones demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/ctBones.pvsm

Tribute to Edelsbrunner and Harer's book (video to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the tribute to Edelsbrunner and Harer's book demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/tribute.pvsm

Image processing demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the image processing demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/imageProcessing.pvsm

Harmonic skeleton demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Harmonic skeleton demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/harmonicSkeleton.pvsm

Morse-Smale quadrangulation demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Morse-Smale quadrangulation demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/morseSmaleQuadrangulation.pvsm

b) With bivariate scalar data

Built-in example 2

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the second built-in example by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/BuiltInExample2.pvsm


Note

In order to execute this demo, you need to have patched the ParaView source tree, as described in the installation instructions (step 4).

Bivariate toy demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the bivariate toy demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/bivariateToy.pvsm

Bivariate toy CSP peeling demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the bivariate toy CSP peeling demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/bivariateToyCspPeeling.pvsm

Mechanical demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the mechanical demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/mechanical.pvsm

c) With uncertain scalar data

Built-in example 3

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the third built-in example demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/BuiltInExample3.pvsm

Uncertain starting vortex demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the uncertain starting vortex demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/uncertainStartingVortex.pvsm




d) With time-varying scalar data

Time tracking demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the time tracking demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/timeTracking.pvsm

Nested tracking graph demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the nested tracking graph demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/nestedTrackingGraph.pvsm




e) With ensemble scalar data

Persistence diagram distance demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence diagram distance demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceDiagramDistance.pvsm

Persistence diagram clustering demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence diagram clustering demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceDiagramClustering.pvsm

Contour tree alignment demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the contour tree alignment demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/contourTreeAlignment.pvsm




f) With high-dimensional / point cloud data

Persistence clustering gallery demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering gallery demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClusteringGallery.pvsm

Persistence clustering0 demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering0 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClustering0.pvsm

Persistence clustering1 demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering1 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClustering1.pvsm

Persistence clustering2 demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering2 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClustering2.pvsm

Persistence clustering3 demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering3 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClustering3.pvsm

Persistence clustering4 demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence clustering4 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceClustering4.pvsm

Karhunen-Love Digits 64-Dimensions demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the Karhunen-Love Digits 64-Dimensions demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/karhunenLoveDigits64Dimensions.pvsm

One-manifold learning demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the one-manifold learning demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/1manifoldLearning.pvsm

One-manifold learning circles demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the 1-manifold learning circles demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/1manifoldLearningCircles.pvsm

Two-manifold learning demo (video tutorial to come)

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the two-manifold learning demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/2manifoldLearning.pvsm




g) Misc features

Manifold checks

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the manifold check example demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/manifoldChecks.pvsm




4. TTK in-situ

a) Cinema features

This series of tutorials describes the usage of the Cinema features available in TTK.



Geometry approximation

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the geometry approximation example demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/geometryApproximation.pvsm

Cinema Darkroom

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the cinema darkroom demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview --state=states/cinemaDarkroom.py




b) TTK with Catalyst

This tutorial describes how to install, configure and use TTK in-situ with Catalyst. In particular, it details a computational fluid dynamics use-case with Code_Saturne.
> TTK in-situ with Catalyst tutorial

c) Compression

Persistence driven compression demo

Assuming you properly installed TTK and decompressed the TTK data tarball as described at the beginning of this section, you can now reproduce the persistence driven compression demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.9
$ paraview states/persistenceDrivenCompression.pvsm




5. TTK development

Please find below a few video tutorials showing how to use TTK from your own code (in Python, VTK/C++ or pure C++) as well as how to extend TTK with a new module.

a) With Python

See the following online example for a simple illustration of TTK's usage with Python.
See also this detailed tutorial for a more advanced illustration of TTK's usage with Python.

Also, note that each of the above demos (*pvsm state files) can be turned into an independent Python script. Once in ParaView, enter the following menus: File, Save state... and in the dialog window, select the entry Python state file (*.py) for the field Files of type.

b) With VTK/C++

Update: as of version 0.9.3, TTK's usage from third party code has been made even simpler. Now developers can simply use the CMake call find_package to leverage all of TTK's features!
See the following Online example.

c) With pure C++

Update: as of version 0.9.3, TTK's usage from third party code has been made even simpler. Now developers can simply use the CMake call find_package to leverage all of TTK's features!
See the following Online example.

d) Extending TTK with a new module

Update: as of version 0.9.1, TTK's module management scripts are located in the directory scripts/ of the source tree. These scripts, to be run from the root of the source tree, will now directly create, delete or release custom TTK modules within the main source tree. Your custom TTK modules will then also be compiled during the main build of TTK (see the top CMakeLists.txt). For example, to create a new module named "HelloWorld" (as showcased in the video below), you should now enter the following command from the root of the TTK source tree:

$ scripts/createTTKmodule.sh HelloWorld


For further information about new modules in TTK, please see our detailed development guidelines.

e) Extending TTK with a new module: an introduction with Betti numbers

This tutorial provides a brief introduction to TTK/ParaView, a step by step introduction for the write-up of TTK modules and some cool exercises about the homology groups of PL 3-manifolds in R3.
> Extending TTK with a new module: an introduction with Betti numbers
For further information about new modules in TTK, please see our detailed development guidelines.