ect: A Python Package for the Euler Characteristic Transform

ect: A Python Package for the Euler Characteristic Transform - Published in JOSS (2026)

https://github.com/munchlab/ect

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
  • Committers with academic emails
    2 of 3 committers (66.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

ect euler-characteristic-transform python tda tda-python topological-data-analysis visualization
Last synced: about 1 month ago · JSON representation

Repository

Python package for computing the Euler Characteristic Transform (ECT)

Basic Info
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Topics
ect euler-characteristic-transform python tda tda-python topological-data-analysis visualization
Created about 2 years ago · Last pushed about 1 month ago
Metadata Files
Readme License Codeowners

README.md

ect: A python package for computing the Euler Characteristic Transform

Python computation tools for computing the Euler Characteristic Transform of embedded complexes.

Description

The package provides fast tools for computing the Euler Characteristic Transform (ECT) on embedded cell complexes in any ambient dimension. You build a complex (vertices, edges, and optional higherdimensional cells), choose a set of directions and thresholds, and compute either the exact ECT or its smoothed/differentiable variants. Results come back as NumPy arrays with metadata, plotting helpers, and distance utilities, making it straightforward to visualize transforms and compare shapes. The core is implemented with NumPy and Numba, with optional validation of geometric and structural constraints when constructing complexes.

  • EmbeddedComplex: convert point clouds into complexes with vertices, edges, and higherdimensional cells with embedded coordinates.
  • ECT, SECT, DECT : ECT calculations along with the smooth and differentiable variants over sampled directions and transforms.
  • Directions: uniform, random, or custom directions (angles in 2D; vectors in any dimension)
  • Results as ECTResult: behaves like a NumPy array, with plotting and distance helpers
  • Optional geometric/structural validation when building complexes

For more information on the ECT, see:

Munch, Elizabeth. An Invitation to the Euler Characteristic Transform. The American Mathematical Monthly, 132(1), 15-25. doi:10.1080/00029890.2024.2409616. 2024.

Getting Started

Documentation and tutorials

Installing

Requires Python 3.10+.

Install from PyPI:

{bash} pip install ect

Alternatively, you can clone the repo and install directly

{bash} git clone git@github.com:MunchLab/ect.git cd ect pip install .

Quickstart

Compute an ECT for a simple embedded triangle and plot it.

```python from ect import ECT, EmbeddedComplex

G = EmbeddedComplex() G.addnode("a", [0.0, 0.0]) G.addnode("b", [1.0, 0.0]) G.addnode("c", [0.5, 0.8]) G.addedge("a", "b") G.addedge("b", "c") G.addedge("c", "a")

ect = ECT(numdirs=32, numthresh=128) result = ect.calculate(G) result.plot() ```

Authors

This code was written by Liz Munch along with her research group and collaborators. People who have contributed to ect include:

License

This project is licensed under the GPLv3 License - see the License file for details

Contact Information

Owner

  • Name: MunchLab
  • Login: MunchLab
  • Kind: organization

JOSS Publication

ect: A Python Package for the Euler Characteristic Transform
Published
April 24, 2026
Volume 11, Issue 120, Page 9691
Authors
Yemeen Ayub ORCID
Michigan State University, East Lansing, MI, USA
Elizabeth Munch ORCID
Michigan State University, East Lansing, MI, USA
Sarah McGuire Scullen ORCID
Pacific Northwest National Lab (PNNL), USA
Daniel H. Chitwood ORCID
Michigan State University, East Lansing, MI, USA
Editor
Prashant Jha ORCID
Tags
Topological Data Analysis Euler Characteristic

GitHub Events

Total
  • Delete event: 27
  • Pull request event: 46
  • Fork event: 1
  • Issues event: 29
  • Watch event: 2
  • Issue comment event: 10
  • Push event: 129
  • Pull request review comment event: 2
  • Pull request review event: 23
  • Create event: 30
Last Year
  • Delete event: 12
  • Pull request event: 18
  • Fork event: 1
  • Issues event: 18
  • Watch event: 2
  • Issue comment event: 4
  • Push event: 59
  • Pull request review comment event: 1
  • Pull request review event: 10
  • Create event: 13

Committers

Last synced: 3 months ago

All Time
  • Total Commits: 197
  • Total Committers: 3
  • Avg Commits per committer: 65.667
  • Development Distribution Score (DDS): 0.386
Past Year
  • Commits: 96
  • Committers: 2
  • Avg Commits per committer: 48.0
  • Development Distribution Score (DDS): 0.104
Top Committers
Name Email Commits
yemeen y****4@c****u 121
Liz Munch m****i@m****u 75
Sarah McGuire 6****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 month ago

All Time
  • Total issues: 22
  • Total pull requests: 43
  • Average time to close issues: 4 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 3
  • Total pull request authors: 3
  • Average comments per issue: 0.05
  • Average comments per pull request: 0.14
  • Merged pull requests: 33
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 12
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 16 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lizliz (16)
  • Yemeen (4)
  • yemeen (2)
Pull Request Authors
  • yemeen (17)
  • lizliz (15)
  • Yemeen (11)
Top Labels
Issue Labels
documentation (3) enhancement (2) question (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 233 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 20
  • Total maintainers: 1
pypi.org: ect

A python package for computing the Euler Characteristic Transform

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 233 Last month
Rankings
Dependent packages count: 9.4%
Average: 35.6%
Dependent repos count: 61.8%
Maintainers (1)
Last synced: about 2 months ago

Dependencies

setup.py pypi
  • argparse *
  • list *
  • matplotlib *
  • networkx *
  • numba *
  • numpy *
  • pathlib *