PyRigi¶
PyRigi is a Python package for research in rigidity and flexibility of bar-and-joint frameworks. We aim at providing a tool for investigating combinatorial and geometric questions such as infinitesimal, global, minimal, or generic rigidity. An article explaining the functionality and internal structure of PyRigi is freely available here.
We use NetworkX for graph theory, SymPy for symbolic and NumPy for numerical computations. We acknowledge these and all the other open-source projects upon which PyRigi is based.
Installation and usage¶
To install the latest stable version of PyRigi, run:
pip install pyrigi
Once installed, you can start using it with:
from pyrigi import Graph, Framework
For more details, we refer to the
Getting started
guide in the documentation.
The development version is available on the dev
branch
in this GitHub repository.
Documentation¶
The documentation of the latest stable version is available online. For compiling it locally, see the development guide.
An important part of the documentation is the mathematical background. We specify the outputs of the methods in the package by providing rigorous mathematical definitions.
Questions and feature requests¶
We have a Zulip chat, where you can ask questions or propose new functionality. If you want to get access to it, please send an email to this address. You can also use the GitHub Discussions.
To report bugs or ask for new features, please create an issue.
Contributing¶
We appreciate contributions! Do you have a research result about rigidity or flexibility of bar-joint frameworks that could be implemented? Let us know! Or even better, implement it and contribute to the package!
Besides coding, you can also help for instance by extending the mathematical documentation or creating tutorials.
If you want to contribute, please, read the development guide and contact us.
License¶
The package is licensed under the MIT license.
The PyRigi Developers¶
See the complete list of contributors.
The current maintainers of the project are:
Matteo Gallet
Georg Grasegger
Matthias Himmelmann
Jan Legerský
The decision to create PyRigi was made by the participants of the workshop Code of Rigidity (March 11–15, 2024), which was part of the Special Semester on Rigidity and Flexibility at RICAM, Linz, Austria.
Citing PyRigi¶
If you would like to cite PyRigi, please use the following reference:
Matteo Gallet, Georg Grasegger, Matthias Himmelmann, and Jan Legerský. PyRigi – a general-purpose Python package for the rigidity and flexibility of bar-and-joint frameworks, 2025, preprint. doi:10.48550/arXiv.2505.22652.
@misc{pyrigi,
title = {{PyRigi -- a general-purpose Python package for the rigidity and flexibility of bar-and-joint frameworks}},
author = {Matteo Gallet and Georg Grasegger and Matthias Himmelmann and Jan Legerský},
year = {2025},
doi = {10.48550/arXiv.2505.22652},
note = {preprint},
}
Contents¶
User guide
Math
Development guide