Skip to main content

Python package concerning the rigidity and flexibility of bar-and-joint frameworks.

Project description

Pyrigi Logo

PyRigi documentation MIT license Black code style

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},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrigi-1.1.1.tar.gz (119.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyrigi-1.1.1-py3-none-any.whl (150.8 kB view details)

Uploaded Python 3

File details

Details for the file pyrigi-1.1.1.tar.gz.

File metadata

  • Download URL: pyrigi-1.1.1.tar.gz
  • Upload date:
  • Size: 119.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyrigi-1.1.1.tar.gz
Algorithm Hash digest
SHA256 f53a0ea64dadcce6cb9abe9787b323d211caa3fb30e210f27adc0298e67eaa41
MD5 a148ffa70f43d5d61fb924c0e700b71d
BLAKE2b-256 33b8af4dd09342ae219dd71750f8037ce2878280ef0bb96fa3897e5cfb0e27b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrigi-1.1.1.tar.gz:

Publisher: python-publish.yml on PyRigi/PyRigi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyrigi-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyrigi-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 150.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyrigi-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94d99eac74eb06d0c7e4385c4d1631c061df66cba978b2c2fa8b2519fa36b2e3
MD5 3bbeb90f42b73cc0cc5b0e03ab72155a
BLAKE2b-256 d3d4176c1fe318979e6ac2266a3e8f4c874e2c4ee9c4546173c779636c47726c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrigi-1.1.1-py3-none-any.whl:

Publisher: python-publish.yml on PyRigi/PyRigi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page