cd /news/machine-learning/show-hn-pysimplicial-python-library-… · home › topics › machine-learning › article
[ARTICLE · art-140032] src=github.com ↗ pub= topic=machine-learning verified=true sentiment=· neutral

Show HN: Pysimplicial, Python library for simplicial complexes in topological ML

Developer siritoriyowai released pysimplicial, an experimental Python library for simplicial complexes and topology-oriented machine learning, installable via pip from the kaifczxc-lab GitHub repository. The toolkit provides Pachner moves (2-2, 3-1, 1-3, 2-3, 3-2, 1-4, 4-1), 2D/3D triangulation generators, topological invariants such as genus and connected components, TQFT state-sum code, and converters for GNN/TNN/MLP, and grew out of the author's Open-Closed State-sum Neural Network research report. The author states the code is early-stage and not intended for production use.

read2 min views2 publishedSep 26, 2026
Show HN: Pysimplicial, Python library for simplicial complexes in topological ML
Image: Michielbdejong (auto-discovered)

pysimplicial, small experimental research toolkit for simplicial triangulations and topology-oriented ML experiments,

It grew out from my research report called Open-Closed State-sum Neural Network

Note: This is experimental research code for topological deep learning. Not intended for production use

Author: siritoriyowai

Stage: Early development / experimental

pip install git+https://github.com/kaifczxc-lab/pysimplicial.git

(The visualization results can be found in showcase)

import PySimplicial.utils
from PySimplicial.utils import Converters

conv = Converters()

octahedron_ = [(10, 50, 15),(10, 15, 25),(10, 25, 40),(10, 40, 50),(90, 15, 50),(90, 25, 15),(90, 40, 25),(90, 50, 40)]

octahedron_relabeled = conv.relabel(octahedron_)

print("Let's visualize the octahedron!")
PySimplicial.utils.visualize_triangulation_2D(octahedron_relabeled)

print("Let's modify this octahedron with Pachner Move 1-3 and visualize it!")
octahedron_modify = PySimplicial.utils.move_1_3(octahedron_relabeled)
PySimplicial.utils.visualize_triangulation_2D(octahedron_modify)

print("Let's return all back with Pachner move 3-1 and visualize it!")
octahedron_return = PySimplicial.utils.move_3_1(octahedron_modify)
PySimplicial.utils.visualize_triangulation_2D(octahedron_return)

print("Let's calculate genus of this octahedron!")
Compute_genus = PySimplicial.utils.euler_characteristics(octahedron_return)
print(f"genus={Compute_genus}")
"""
genus=0
"""

print("Let's convert this figure to into the feature vector for MLP!")

Converter = conv.to_mlp(octahedron_return, return_chi=True) # return F, V, E, g, bins[0], bins[1], bins[2], bins[3], avg_degree, tpv ; 
print(f"result={Converter}")
"""
result=(8, 6, 12, 0, 0, 6, 0, 0, 4.0, 1.3333333333333333)
"""

Pachner Moves (2-2 ; 3-1 ; 1-3 ; 2-3 ; 3-2 ; 1-4 ; 4-1) #

Triangulation generators (2D/3D torus) #

Topological invariants (genus, connected components) #

TQFT state-sum (on foundation of Aaron D. Lauda , Hendryk Pfeiffer (2006): State sum construction of two-dimensional open-closed Topological Quantum Field Theories ) #

Converters for GNN/TNN/MLP and 3D versions

See showcase notebook to see how all functions work (visualization & logs)

Documentation can be found in Documents\Documentation-Pysimplicial

Contributions welcome! See CONTRIBUTING.md for guidelines

── more in #machine-learning 4 stories · sorted by recency
── more on @pysimplicial 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-pysimplicial…] indexed:0 read:2min 2026-09-26 · —