{"id":1982,"date":"2026-06-10T20:00:05","date_gmt":"2026-06-11T00:00:05","guid":{"rendered":"https:\/\/people.clas.ufl.edu\/henry-adams\/?page_id=1982"},"modified":"2026-06-17T11:43:53","modified_gmt":"2026-06-17T15:43:53","slug":"appliedtopologysoftware","status":"publish","type":"page","link":"https:\/\/people.clas.ufl.edu\/henry-adams\/appliedtopologysoftware\/","title":{"rendered":"What applied topology software options do I have?"},"content":{"rendered":"\n<section class=\"fullwidth-text-block\"><div class=\"container px-0\"><div class=\"row align-items-start\"><div class=\"col-12\">\n<h2 class=\"wp-block-heading\">What applied topology software options do I have?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This list undoubtably has unintentional omissions; please email Henry with updates to this list!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This list was originally created to accompany the tutorial <a href=\"https:\/\/github.com\/henryadams\/Charleston-TDA-ML\">https:\/\/github.com\/henryadams\/Charleston-TDA-ML<\/a> for the NSF-CBMS Conference and Software Day on Topological Methods in Machine Learning and Artificial Intelligence.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mapper\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.ayasdi.com\/\">Ayasdi<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/giotto-ai\/giotto-tda\">giotto-tda<\/a> is a library combining applied topology software with machine learning algorithms.<\/li>\n\n\n\n<li><a href=\"https:\/\/mapperinteractive.github.io\/\">Mapper Interactive<\/a>. A web-based framework for interactive analysis built upon the Mapper algorithm.<\/li>\n\n\n\n<li><a href=\"https:\/\/kepler-mapper.scikit-tda.org\/\">Scikit-TDA: Kepler Mapper<\/a>. A flexible Python implementation of the Mapper algorithm.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/paultpearson\/TDAmapper\">TDA Mapper<\/a>. An R package for using the Mapper algorithm.<\/li>\n\n\n\n<li><a href=\"http:\/\/danifold.net\/mapper\/index.html\">Python Mapper<\/a>. A python implementation of the Mapper algorithm.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Persistent homology\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/shizuo-kaji\/CubicalRipser\">CubicalRipser<\/a>. Adaptation of Ripser (below) for cubical homology.<\/li>\n\n\n\n<li><a href=\"http:\/\/chomp.rutgers.edu\/\">CHomP<\/a>. Computational Homology Project. C++; Cubical homology.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/DIPHA\/dipha\">DIPHA<\/a>. A Distributed Persistent Homology Algorithm; C++.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.mrzv.org\/software\/dionysus\/\">Dionysus<\/a> and <a href=\"https:\/\/mrzv.org\/software\/dionysus2\/\">Dionysus 2<\/a>. Dionysus is a C++ library for computing persistent homology, equipped with python bindings. It provides implementations of the following algorithms: persistent (co)homology, vineyards, zigzag persistence, etc.<\/li>\n\n\n\n<li><a href=\"http:\/\/gregoryhenselman.org\/index.html\">Eirene<\/a>. Julia platform for computational topology.<\/li>\n\n\n\n<li><a href=\"http:\/\/appliedtopology.github.io\/javaplex\/\">Javaplex<\/a>. Java and Matlab code, equipped with a <a href=\"https:\/\/drive.google.com\/file\/d\/1iB8WJyjaG_c4BL8qrfV7CxZa3vOHDwFp\/view\">tutorial<\/a> with real-life data examples.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/giotto-ai\/giotto-tda\">giotto-tda<\/a> is a library combining applied topology software with machine learning algorithms.<\/li>\n\n\n\n<li><a href=\"http:\/\/gudhi.gforge.inria.fr\/\">GUDHI<\/a>. The GUDHI library is a generic open source C++ library, with a Python interface, for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding. The library offers state-of-the-art data structures and algorithms to construct simplicial complexes and compute persistent homology. The library comes with data sets, demos, examples and test suites.<\/li>\n\n\n\n<li><a href=\"http:\/\/people.maths.ox.ac.uk\/nanda\/perseus\/index.html\">Perseus<\/a>. A C++ software project for the rapid computation of persistent homology. Includes cubical and simplicial complexes.<\/li>\n\n\n\n<li><a href=\"https:\/\/pythonhosted.org\/phat\/\">PHAT<\/a>. C++ code.<\/li>\n\n\n\n<li><a href=\"https:\/\/cran.r-project.org\/web\/packages\/TDA\/index.html\">R-TDA<\/a>. Tools for the statistical analysis of persistent homology and for density clustering. For that, this package provides an R interface for the efficient algorithms of the C++ libraries GUDHI, Dionysus, and PHAT. This package also implements methods for analyzing the statistical significance of persistent homology features.<\/li>\n\n\n\n<li><a href=\"https:\/\/scikit-tda.org\/\">Scikit-TDA<\/a>. A home for Topological Data Analysis Python libraries intended for non-topologists. This project aims to provide a curated library of TDA Python tools that are widely usable and easily approachable. Contains Ripser.py as one subcomponent.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Ripser\">Ripser<\/a>: efficient computation of Vietoris-Rips persistence barcodes. It is possible to run a <a href=\"http:\/\/live.ripser.org\/\">beginner&#8217;s version of Ripser in your html browser<\/a>, for which no installation is required.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/simonzhang00\/ripser-plusplus\">Ripser++<\/a>: a GPU-accelerated version of Ripser<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rivetTDA\">Rivet<\/a>. Extends the usual persistent homology pipeline for topological data analysis to the two-parameter setting.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.cs.purdue.edu\/homes\/tamaldey\/SimBa\/Simba.html\">SimBa<\/a>. C++ software for approximating Rips filtration persistence via simplicial batch-collapse.<\/li>\n\n\n\n<li><a href=\"https:\/\/pytorch-topological.readthedocs.io\/en\/latest\/\">torch_topological<\/a>. Topological machine learning with pytorch.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Vectorizations of persistent homology\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.math.upenn.edu\/~dlotko\/persistenceLandscape.html\">Persistence Landscape Toolbox<\/a>. Code for computing persistence landscapes.<\/li>\n\n\n\n<li>Persistence Images\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/scikit-tda.org\/\">Scikit-TDA: PerSim<\/a>. A Python package for many tools used in analyzing Persistence Diagrams, including persistence images, bottleneck distance, sliced Wasserstein kernel, and then heat kernel.<\/li>\n\n\n\n<li><a href=\"https:\/\/gitlab.com\/csu-tda\/PersistenceImages\">CSU-TDA: PersistenceImages in Python<\/a>. A Python package for persistence images.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/CSU-TDA\/PersistenceImages\">CSU-TDA: PersistenceImages in Matlab<\/a>. A Matlab package for persistence images.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/chronchi\/PersistenceImage.jl\">PersistenceImage.jl<\/a>. A Julia implementation of persistence images.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Other\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/nebneuron\/clique-top\">CliqueTop<\/a>. Topological data analysis tools for cross correlation matrices and neuroscience.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/TDA-Jyamiti\/fzz\">FastZigzag<\/a>. For zigzag persistence.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/luetge\/flagser\">Flagser<\/a>. Computing homology of directed flag complexes (based on Ripser).<\/li>\n\n\n\n<li><a href=\"https:\/\/pypi.org\/project\/hera-tda\/\">Hera<\/a>. Contains fast C++ code for distances between barcodes.<\/li>\n\n\n\n<li><a href=\"https:\/\/gitlab.msu.edu\/TSAwithTDA\">Time series analysis with TDA<\/a>. Also contains python wrappers to various persistent homology software packages.<\/li>\n\n\n\n<li><a href=\"https:\/\/topology-tool-kit.github.io\/index.html\">Topology ToolKit<\/a>.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/lmcinnes\/umap\">UMAP<\/a>. Uniform Manifold Approximation and Projection.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>In September 2019 I gave a survey talk on the above software available at the time; see the <a href=\"https:\/\/cofc.mediasite.com\/mediasite\/Play\/d15219b314084df29b80b291034db1291d\">video<\/a> and my <a href=\"https:\/\/drive.google.com\/file\/d\/1R32b34FZcVcvtol1dYDCyQCM81g_Ht73\/view?usp=drive_link\">slides<\/a>.<\/li>\n\n\n\n<li>Similar software lists are kept by <a href=\"https:\/\/people.clas.ufl.edu\/peterbubenik\/software\/\">Peter Bubenik<\/a>, <a href=\"https:\/\/www.chadgiusti.com\/software.html\">Chad Giusti<\/a>, and this <a href=\"https:\/\/link.springer.com\/article\/10.1140\/epjds\/s13688-017-0109-5\">survey paper<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You may also be interested in this <a href=\"https:\/\/www.aatrn.net\/related-activities#h.cqfwvf3e8gq\">partial list of applied topology book options<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Navigation: <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/\">Home<\/a> &#8211; <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/teaching\/\">Teaching<\/a> &#8211; <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/research\/\">Research<\/a> &#8211; <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/talks\/\">Talks<\/a> &#8211; <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/advising\/\">Advising<\/a> &#8211; <a href=\"https:\/\/people.clas.ufl.edu\/henry-adams\/curriculum-vitae\/\">CV<\/a><\/p>\n<\/div><\/div><\/div><\/section>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1319,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"featured_post":"","footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-1982","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/pages\/1982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/users\/1319"}],"replies":[{"embeddable":true,"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/comments?post=1982"}],"version-history":[{"count":5,"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/pages\/1982\/revisions"}],"predecessor-version":[{"id":1991,"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/pages\/1982\/revisions\/1991"}],"wp:attachment":[{"href":"https:\/\/people.clas.ufl.edu\/henry-adams\/wp-json\/wp\/v2\/media?parent=1982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}