Topology ToolKit


Tutorials

Please find below a few video tutorials regarding:
  1. TTK installation
  2. TTK in action!
   ·  a) with scalar data
   ·  b) with bivariate scalar data
   ·  c) with uncertain scalar data
   3. 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
   4. TTK in-situ with Catalyst


1. 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.




2. 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.3.tar.gz
$ cd ~/ttk
$ tar xvzf ttk-data-0.9.3.tar.gz
$ rm ttk-data-0.9.3.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 just de-compressed.

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.3
$ paraview --state=states/dragon.pvsm


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.3
$ paraview --state=states/morsePersistence.pvsm

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.3
$ paraview --state=states/BuiltInExample1.pvsm

Interaction site 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 interaction site demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.3
$ paraview --state=states/interactionSites.pvsm

Viscous fingering 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 viscous fingering demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.3
$ paraview --state=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.3
$ paraview --state=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.3
$ paraview --state=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.3
$ paraview --state=states/oceanVortices.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.3
$ paraview --state=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.3
$ paraview --state=states/tribute.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.3
$ paraview --state=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 (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 demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.3
$ paraview --state=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.3
$ paraview --state=states/bivariateToyCspPeeling.pvsm

Mechanical 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 mechanical demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.3
$ paraview --state=states/mechanical.pvsm

c) With uncertain scalar data

Built-in example 3 (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 third built-in example demo by entering the following commands (omit the $ character):

$ cd ~/ttk/ttk-data-0.9.3
$ paraview --state=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.3
$ paraview --state=states/uncertainStartingVortex.pvsm




3. 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

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



4. TTK in-situ 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