Skip to main content

chaotax logo

🚨 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.

PyPI Tests docs-latest License

InstallationQuickstartDocumentationRelated

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

Download files

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

Source Distribution

chaotax-0.0.1.tar.gz (80.6 kB view details)

Uploaded Source

Built Distribution

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

chaotax-0.0.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

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

Hashes for chaotax-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6950530940e4059162d4a1869737a15a40c7368bd86c2309c84f82fb5e57db0f
MD5 76c96212fc81acf2ab8a8c8ea093768e
BLAKE2b-256 5ccf64dafb81b343015da2a9be5b14688d710aa1909d5817778c3c24b850c844

See more details on using hashes here.

Provenance

The following attestation bundles were made for chaotax-0.0.1.tar.gz:

Publisher: publish.yml on Ceyron/chaotax

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

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

Hashes for chaotax-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f439dd20581736b25f3b1748948b684c4acf9ec888d1398dd0cf07da98a3bbb
MD5 2afc721999e7263e9d49180e00802594
BLAKE2b-256 3a5f811a7f5a048da701eaa1834d0f1e35b5273b3cdf8608e05b465b10d41ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for chaotax-0.0.1-py3-none-any.whl:

Publisher: publish.yml on Ceyron/chaotax

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

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Supported by

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