Software for applied topology research

The applied topology field grows each day, and with this growth comes a variety of new tools. Our group has contributed to this effort, but we also appreciate the tools that others have created. This page is meant to serve as a resource for people to learn more about our work and to find additional tools that might be useful in their research.

Open Applied Topology

A noisy spherical point cloud with an embedded two-cycle representative, the Open Applied Topology icon

Open Applied Topology (OAT) is a library for fast, user-friendly algebra and topology. Developed by PNNL as an extension of our collaborative ExHACT project, OAT has:

  1. a fast backend written in Rust, called oat_rust
  2. a frontend for Python users, called oat_python
  3. tutorials published as jupyter notebooks

Additional tools

There is a tremendous amount of work going on in the computational topology community, so this page will be out of date shortly (and already misses plenty). Thus, this page is meant primarily to be a jumping-off point, not a comprehensive list. However, if you'd like me to add something, please let me know, and please don't be offended if you don't see something here -- all omissions are unintentional.

C++

  • CHomPShaun Harker
  • ChunkyEuler (also has python scripts)Teresa Heiss, Hubert Wagner
  • CubicalRipser (with python wrapper)Takeki Sudo, Kazushi Ahara, Shizuo Kaji
  • Cubicle (also has python scripts)Hubert Wagner
  • Dionysus and Dionysus 2Dmitriy Morozov
  • flagserDaniel Lütgehetmann
  • GUDHIClément Maria, Pawel Dlotko, Vincent Rouvreau, François Godi, Siargey Kachanovich, and David Salinas
  • giotto-tda (also Python)Umberto Lupo, Julian Burella Pérez, and Wojciech Reise (I believe - there may be more)
  • HeraMichael Kerber, Dmitriy Morozov, and Arnur Nigmetov
  • PerseusVidit Nanda
  • Persistence Landscape ToolboxPawel Dlotko
  • PHATUlrich Bauer, Michael Kerber, Jan Reininghaus, Hubert Wagner, and Bryn Keller
  • Ripser-live (browser) and RipserUlrich Bauer
  • Ripser++ (also Python, GPU)Birkan Gokbag, Ryan DeMilt, and Simon Zhang
  • SimBa and SimPerTamal K Dey, Fengtao Fan, Dayu Shi, and Yusu Wang
  • Topology ToolKitJulien Tierny, Guillaume Favelier, Joshua Levine, Charles Gueunet, and Michaël Michaux (I think?)

Python

  • DyNeuSRCaleb Geniesse, Manish Saggar, Rafi Ayub, and Jeff Mentch
  • Kepler MapperHendrik Jacob van Veen, Nathaniel Saul, David Eargle, and Sam Mangham (this is a guess based on their paper)
  • Python MapperDaniel Müllner and Aravindakshan Babu
  • ripser.pyChristopher Tralie and Nathaniel Saul

Julia

R

Java

  • JavaPlexAndrew Tausz, Mikael Vejdemo-Johansson and Henry Adams

Matlab

  • CliqueTop and PyCliqueTopA previous Chad Giusti.We include CliqueTop for historical reasons or Matlab-only applications. PyCliqueTop is a Python implementation of the same wrapper that uses the Ripser persistent homology solver and thus is dramatically more time- and memory-efficient. OAT does not currently implement the precise syntax or workflow of CliqueTop, but provides substantially more functionality than either alternative.