Welcome to Dynestyx
dynestyx is a library designed for Bayesian modeling and inference of dynamical systems. It is an extension of NumPyro, and incorporates a wide variety of state-of-the-art inference methods for state space models.
To get started, you can read the documentation (version menu: stable = latest release, latest = main) or go straight to the quickstart.
Goals of dynestyx
The goal of dynestyx is to decouple model code and inference code for dynamical systems, a common theme in probabilistic programming languages like NumPyro. The benefits of this are two-fold: modellers get an interface that is simple to use, with access to advanced inference methods for free. Methods researchers simultaneously get a platform where their methodologies can be immediately used, with a natural testbed of problems to evaluate performance on.
Relation to Existing Libraries
While many probabilistic programming languages now exist (e.g., Pyro, NumPyro, and Stan), these solutions do not offer support of structured inference methods specifically designed for the dynamical systems setting, leading to subpar inference and ad-hoc code that may be difficult to write for practitioners. In dynestyx, we treat dynamical systems as first-class objects, with direct interfacing to methods like pseudo-marginal MCMC and stochastic variational inference for parameter inference.
Simultaneously, many strong solutions exist for inference in dynamical systems; modern examples include dynamax for discrete-time dynamical systems, cd-dynamax for continuous-time dynamical systems, and PFJax for nonlinear and non-Gaussian discrete-time dynamical systems. While featureful, one drawback of this suite of methods is a varied set of APIs, with model code that is tightly coupled with the resulting inference method. In dynestyx, we offer a large variety of different inference methods under the same roof in a unified, abstract API. Iterating and selecting the appropriate inference methods is thus a significantly simpler process. Using tools from PPLs, we are also able to introspectively analyze a given model, and select appropriate inference methods which take advantage of model structure (e.g., linearity or Gaussianity).
Installation
For installation, we recommend uv:
uv pip install dynestyx
But pip works as well:
pip install dynestyx
Developers: See Contributing Guidelines for the development setup using
uv sync.
Quickstart
We provide a more mathematical introduction in the Introduction section. For a hands-on tutorial with code examples, check out the Quickstart Tutorial.
Third-party acknowledgements
The diminishing adaptation rule used by AdaptiveMetropolis is inspired by PFJAX's MCMC implementation.
Contributing
Contributions are welcome. See Contributing Guidelines for development setup, testing expectations, and the pull request workflow.
Citing Dynestyx
If you are considering citing dynestyx, please cite the paper
"Dynestyx: A Probabilistic Programming Library for Dynamical Systems":
@misc{waxman2026dynestyxprobabilisticprogramminglibrary,
title={Dynestyx: A Probabilistic Programming Library for Dynamical Systems},
author={Daniel Waxman and Dmitry Batenkov and John Feser and Andy Zane and Eli Bingham and Youssef Marzouk and Matthew E. Levine},
year={2026},
eprint={2606.16985},
archivePrefix={arXiv},
primaryClass={stat.ML},
url={https://arxiv.org/abs/2606.16985}
}
Metadata
Release files for dynestyx 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dynestyx-0.7.0.tar.gz | 36.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dynestyx-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.9 MB
Release files / dynestyx-0.7.0.tar.gz
| Download URL | dynestyx-0.7.0.tar.gz |
|---|---|
| Size | 36.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df1f721c929934e57d428ec0455029172ea3f5777c9bf33c8212e0d97b772899
|
|
BLAKE2b-256 checksum How to use checksums |
1e3160bec37eda1a5598dd5ef9a51a55dc8b2b327842cd74e5c7c081bfaa7f42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / dynestyx-0.7.0-py3-none-any.whl
| Download URL | dynestyx-0.7.0-py3-none-any.whl |
|---|---|
| Size | 260.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b82a6ee727876d6500e50eea274d02dbdab53a052c9945e5d2bcc0a517b01754
|
|
BLAKE2b-256 checksum How to use checksums |
7850ed91524180294b6db8a69c67fce0f6566d2c10c3170d225fe02ce70e0dbb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency log