Simple JAX-based tool to compute Lyapunov spectra and exponents of dynamical systems.
Project description
🚨 This is a pre-release for me to cite in my dissertation. It is based on software I once wrote for APEBench (but did not yet have the time to release) slightly rewritten and enhanced. Please check back end of May 2026 for a full release with extended features, documentation, and examples.
chaotax
Simple JAX-based tool to compute Lyapunov spectra and exponents of dynamical systems using autodiff.
Installation • Quickstart • Documentation • Related
Chaotax estimates Lyapunov exponents and spectra of dynamical systems using
JAX's automatic differentiation (JVP-based
linearisation). It works with any one-step state transition function, is
JIT-compilable, and GPU/TPU-ready.
Installation
pip install chaotax
Requires Python 3.10+ and JAX 0.4.13+. See the JAX install guide.
Quickstart
Estimate the largest Lyapunov exponent of a system given a one-step transition function:
import jax
import jax.numpy as jnp
import chaotax
# Define a one-step stepper (e.g., Lorenz via RK4)
def lorenz_stepper(u):
...
return u_next
u_0 = jnp.array([1.0, 0.0, 0.0])
eps_0 = jax.random.normal(jax.random.PRNGKey(0), u_0.shape)
estimate_le = chaotax.lyapunov(lorenz_stepper, rollout_steps=20_000, dt=0.01)
le = estimate_le(u_0, eps_0)
Compute the full Lyapunov spectrum:
estimate_spectrum = chaotax.lyapunov_spectrum(lorenz_stepper, rollout_steps=20_000, dt=0.01)
spectrum = estimate_spectrum(u_0, eps_0=jnp.eye(3))
# Returns exponents in descending order, e.g. [+, 0, -] for Lorenz
Documentation
Documentation is available at fkoehler.site/chaotax.
Related
- Exponax — Exponential and explicit time steppers for PDEs in JAX
- Picardax — Time-implicit differentiable PDE solvers in JAX
License
MIT, see here.
fkoehler.site · GitHub @ceyron · X @felix_m_koehler · LinkedIn Felix Koehler
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chaotax-0.0.1.tar.gz.
File metadata
- Download URL: chaotax-0.0.1.tar.gz
- Upload date:
- Size: 80.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6950530940e4059162d4a1869737a15a40c7368bd86c2309c84f82fb5e57db0f
|
|
| MD5 |
76c96212fc81acf2ab8a8c8ea093768e
|
|
| BLAKE2b-256 |
5ccf64dafb81b343015da2a9be5b14688d710aa1909d5817778c3c24b850c844
|
Provenance
The following attestation bundles were made for chaotax-0.0.1.tar.gz:
Publisher:
publish.yml on Ceyron/chaotax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chaotax-0.0.1.tar.gz -
Subject digest:
6950530940e4059162d4a1869737a15a40c7368bd86c2309c84f82fb5e57db0f - Sigstore transparency entry: 1278720035
- Sigstore integration time:
-
Permalink:
Ceyron/chaotax@2450d789d484003b0b6284e953b39c2a353d4cae -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/Ceyron
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2450d789d484003b0b6284e953b39c2a353d4cae -
Trigger Event:
release
-
Statement type:
File details
Details for the file chaotax-0.0.1-py3-none-any.whl.
File metadata
- Download URL: chaotax-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f439dd20581736b25f3b1748948b684c4acf9ec888d1398dd0cf07da98a3bbb
|
|
| MD5 |
2afc721999e7263e9d49180e00802594
|
|
| BLAKE2b-256 |
3a5f811a7f5a048da701eaa1834d0f1e35b5273b3cdf8608e05b465b10d41ed1
|
Provenance
The following attestation bundles were made for chaotax-0.0.1-py3-none-any.whl:
Publisher:
publish.yml on Ceyron/chaotax
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
chaotax-0.0.1-py3-none-any.whl -
Subject digest:
5f439dd20581736b25f3b1748948b684c4acf9ec888d1398dd0cf07da98a3bbb - Sigstore transparency entry: 1278720224
- Sigstore integration time:
-
Permalink:
Ceyron/chaotax@2450d789d484003b0b6284e953b39c2a353d4cae -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/Ceyron
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2450d789d484003b0b6284e953b39c2a353d4cae -
Trigger Event:
release
-
Statement type: