Skip to main content
ORC Logo

ORC: Open Reservoir Computing

CI codecov

ORC is the one-stop-shop for performant reservoir computing in jax. Key high-level features include

  • Modular design for mixing and matching layers and reservoir drivers (or creating your own!)
  • Continuous, discrete, serial, and parallel implementations

Installation

The easiest way to get started with ORC is to install from PyPI:

pip install OpenReservoirComputing

If you're interested in the latest, unreleased version or in contributing, you can install from source. Please see the Contribution guidelines below for more details.

Quick start example

Below is a minimal quick-start example to train your first RC with ORC. It leverages the built-in data library to integrate the Lorenz63 ODE before training and forecasting with ORC.

import jax
# ORC models often perform much better with float64 enabled
jax.config.update("jax_enable_x64", True)
import orc

# integrate the Lorenz system 
U,t = orc.data.lorenz63(tN=100, dt=0.01)

# train-test split
test_perc = 0.2
split_idx = int((1 - test_perc) * U.shape[0])
U_train = U[:split_idx, :]
t_train = t[:split_idx]
U_test = U[split_idx:, :]
t_test = t[split_idx:]

# Initialize and train the ESN
esn = orc.forecaster.ESNForecaster(data_dim=3, res_dim=400)
esn, R = orc.forecaster.train_RCForecaster(esn, U_train)

# Forecast! 
U_pred = esn.forecast(fcast_len=U_test.shape[0], res_state=R[-1]) # feed in the last reservoir state seen in training

To visualize the forecast and compare it to the test data, we can use orc.utils.visualization:

orc.utils.visualization.plot_time_series(
    [U_test, U_pred],
    (t_test - t_test[0]), # start time at 0
    state_var_names=["$u_1$", "$u_2$", "$u_3$"],
    time_series_labels=["True", "Predicted"],
    line_formats=["-", "r--"],
    x_label= r"$t$",
)
plt.show()
ORC Logo

jit, vmap, grad...

ORC models are built on top of Equinox, and as a result we strongly recommend the use of Equinox transforms eqx.filter_{jit, vmap, grad} over jax.{jit, vmap, grad}. For more details, please check out the JAX JIT Compatibility example notebook.

Contribution guidelines

First off, thanks for helping out! We appreciate your willingness to contribute! To get started, clone the repo and install the developer dependencies of ORC.

git clone https://github.com/Jan-Williams/OpenReservoirComputing.git

From the root directory of the repository, create an editable install for your given hardware.

CPU:

pip install -e ".[dev]"

GPU:

pip install -e ".[dev, gpu]"

The main branch is protected from direct changes. If you would like to make a change please create a new branch and work on your new feature. After you are satisfied with your changes, please run our testing suite to ensure all is working well. We also expect new tests to be written for all changes if additions are made. The tests can be simply run from the root directory of the repository with

pytest

Followed by a formatting check

ruff check

and a type annotation check

ty check

Finally, submit your changes as a pull request! When you submit the PR, please request reviews from both @dtretiak and @Jan-Williams, we will try to get back to you as soon as possible. When you submit the PR, the above tests will automatically be run on your proposed changes through Github Actions, so it is best to get everything tested first before submitting!

Release files for OpenReservoirComputing 0.3.3

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

Source distribution (sdist)

Source distribution for OpenReservoirComputing 0.3.3
File Size Uploaded
openreservoircomputing-0.3.3.tar.gz 2.9 MB Details

Built distribution (wheel)

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

Total release size: 2.9 MB

Release files / openreservoircomputing-0.3.3.tar.gz

Download URL openreservoircomputing-0.3.3.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
13a141057bbabae9cd1c2103471f8f39819a0a4028bdf9a063f7e4fa8141615c
BLAKE2b-256 checksum
How to use checksums
7bc120857bb634e9a27d243f38b4379f5ab2ff0ccec6bf6732b0c94ae2fe4d92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 24, 2026.

Transparency log

Release files / openreservoircomputing-0.3.3-py3-none-any.whl

Download URL openreservoircomputing-0.3.3-py3-none-any.whl
Size 48.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b550acaa8f01957f5fcddfd6bf139ac24335f909c05dc2d20a1bfc3b01966d9
BLAKE2b-256 checksum
How to use checksums
dbc07e91071d6b3f6f7f184c40229fe7b0480051da3673374a71ebc90f694a0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.3 This release

2 release files

0.3.2

2 release files

0.3.0

2 release files

0.2.0

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