Skip to main content

Stormvogel 🐦: An interactive approach to probabilistic model checking in Python

Coverage

The state-of-the-art model checking tools that are currently available are optimized to be efficient. The result of this is that they are quite hard to learn and use. Stormvogel flattens the learning cuve by providing easy and user-friendly APIs for creating probabilistic Markov models, and tools to visualize and debug them. It supports seemless conversion to the powerful Storm(py) model checker out of the box.

Features

  • Easy APIs for constructing Markov models in dedicated data structures. Currently, DTMCs, MDPs, CTMCs, POMDPs and Markov Automata are supported. This also includes parametric and interval models.

  • Seamless conversion between stormvogel and stormpy models with some runtime overhead. This allows, e.g., also using formats such as JANI and PRISM that are not supported by stormvogel directly. It is also possible to add support for a different model checker.

  • Visualization of Markov models as an interactive graph and into SVGs via dot. This includes extensive layout options, and displaying model checking results and simulations in an interactive way.

  • Support for gymnasium environments

  • An extensive documentation with clear examples.

Check out the the stormvogel documentation for examples of how to use stormvogel.

Installation

  1. Run pip install stormvogel.
  2. To also install stormpy, run pip install stormpy.
  3. Run jupyter lab
  4. Now a browser window should open that runs jupyter lab with stormvogel installed.

Docker (release version)

  1. Install docker. Run:
  2. docker run -it -p 8080:8080 stormvogel/stormvogel
  3. Now a browser window should open that runs jupyter lab with stormvogel and stormpy installed.

For contributors (latest version)

Contributors need uv and Python 3.12 or newer to manage the development environment.

  1. Clone the stormvogel repo (or your own fork) in a separate folder
  2. In the stormvogel folder:
    uv sync --locked --extra storm
    uv run jupyter lab
    
    This creates .venv and installs the project plus development, test, lint, and documentation tools. Omit --extra storm for core-only development, or use --all-extras for all optional integrations (needed for documentation builds). Some extras require system libraries such as Cairo and Graphviz; docs also need Pandoc.
  3. Install the pre-commit hook: uv run pre-commit install

Commit uv.lock when changing dependencies with uv add or uv remove. Use uv lock --upgrade to update locked versions and uv sync --locked to install them.

Testing

uv run nox -s tests   # run test suite
uv run nox -s lint    # ruff + pyright
uv run nox -s docs    # sphinx-build (executes doc notebooks)

Or run uv run pytest directly without nox.

To test without development tools or optional integrations:

uv sync --locked --no-default-groups --group test
uv run --no-sync pytest

Use --no-sync here so uv does not reinstall the default development groups.

Notice that part of the tests will be skipped if stormpy is not installed.

Authors

Stormvogel was mainly developed at Radboud University by Linus Heck, Pim Leerkes, and Ivo Melse under supervision from Sebastian Junges and Matthias Volk.

Thank you to our contributors: Luko van der Maas, Nicklas Osmers.

License

Stormvogel is licenced under the GPL-3.0 license.

Metadata

Release files for stormvogel 0.12.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stormvogel 0.12.6
File Size Uploaded
stormvogel-0.12.6.tar.gz 888.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stormvogel 0.12.6
File Interpreter ABI Platform
stormvogel-0.12.6-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / stormvogel-0.12.6.tar.gz

Download URL stormvogel-0.12.6.tar.gz
Size 888.2 kB
Tags Source
SHA-256 checksum
How to use checksums
de6d8dba7b9173ed0a8c7eb92f7beed92cf8cc6118dd14ae763e141dfd3a9744
BLAKE2b-256 checksum
How to use checksums
1cba096deb07d3b45d86a55fd9f372c33d0b37e3edf1babb7cd84293ff46530e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / stormvogel-0.12.6-py3-none-any.whl

Download URL stormvogel-0.12.6-py3-none-any.whl
Size 589.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f654c1d6cdab7e1232f310b9cdecb4468a9bd6cfff503cb037a6a79cc8ad90f
BLAKE2b-256 checksum
How to use checksums
3850d8baf2ad3412b378a55487126adace8fecca82baa4eac83dc6bc74039a3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.12.6 This release

2 release files

0.12.5

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page