ĀKRITI
Assured Knowledge & Reasoning In Topological Inference
Modern topological data analysis for Python.
Compute persistence diagrams, vectorise them, classify, compare, and certify — in two lines of code. Built on GUDHI, integrates with scikit-learn and PyTorch Geometric. Apache-2.0, open source, contributions welcome.
About
A modern Python library for topological data analysis.
Akriti is a Python library for topological data analysis — persistence, Mapper, topological deep learning, and topological signal processing. It computes diagrams, vectorises them, measures distances, classifies, compares two samples, and ships per-prediction certificates as a free upsell. Practitioner-friendly verbs at the top, mathematical authority underneath.
A distinguishing feature: every method choice in the AutoML pipeline — filtration, scale, landmark grid, descriptor — is fixed analytically from your training data, with provable guarantees. No held-out validation. No held-out anything.
GUDHI for persistence computation and integrates with the scientific Python ecosystem (scikit-learn, PyTorch Geometric, AnnData, scanpy). It does not replace existing tools; it makes them easier to use together.
What Akriti does
A toolkit, not a single trick.
scipy.spatial.distance.Where Akriti fits
A thin smart layer above GUDHI.
Akriti doesn't replace GUDHI — it sits on top of it. GUDHI computes the persistence diagrams; Akriti decides what to compute, vectorises the result, classifies it, certifies it, and ships it to scikit-learn or PyTorch Geometric. The relationship is the one pandas has with NumPy.
| Akriti | GUDHI | giotto-tda | |
|---|---|---|---|
| Role in the stack | High-level toolkit | Persistence backend | sklearn-style wrapper |
| Persistence computation | delegates to GUDHI | C++ canonical engine | Python wrapper |
| Closed-form filtration & scale selection | ✓ | — | — |
| Per-prediction certificates | ✓ | — | — |
| Two-sample testing for diagrams | ✓ | — | — |
| sklearn estimators | ✓ | — | partial |
| PyTorch Geometric layers | ✓ | — | — |
| AnnData / scanpy interop | ✓ | — | — |
| GPU-batched embeddings | ✓ | — | — |
| Licence | Apache-2.0 | GPL-3.0 | AGPL-3.0 |
Three gaps prompted Akriti:
- No existing library picks the filtration and scale for you, closed-form, with provable bounds.
- None ship per-prediction correctness certificates — only Lipschitz upper bounds on the embedding.
- The closest analogue, giotto-tda, is AGPL — which most US industry legal teams won't allow into production.
GUDHI is the persistence backend we depend on; we ship our work as a complement, not a replacement.
In Python
Two-line answers to topological questions.
No filtration choice. No scale choice. No held-out calibration. Pick a verb; Akriti does the rest.
import akriti # ── Detect cycles in a point cloud ──────────────────────────────── result = akriti.cycles(X) result.plot() # ── Compare two biological samples topologically ────────────────── test = akriti.compare(sample_A, sample_B) print(test.p_value, test.certificate) # ── Train a certified classifier ────────────────────────────────── clf = akriti.classify(X_train, y_train) preds = clf.predict(X_test) # per-prediction certificates included
Founding team
Founding research
The papers behind the library.
Akriti is grounded in four research papers from the founding team. Each contributes a layer of the library; akriti.core is the integration substrate.
Built on
Akriti delegates persistence computation to GUDHI (INRIA) and builds on the landmark embedding of Mitra & Virk (2024). We are grateful to the broader topological data analysis community — giotto-tda, persim, ripser.py, and the many vectorisation and stability results that the library stands on.
A "Publications using Akriti" section will appear here as case studies are published.