Skip to main content

calypso

calypso (Circumbinary Accretion Lightcurves Yielded via Predictive Sequence Outputs) is a parameter-conditioned stochastic surrogate model for circumbinary accretion time-series. Given a binary eccentricity eb and mass ratio qb, calypso returns synthetic accretion-rate light curves for the total binary (Mb) and each component (M1, M2), drawn from a multivariate Gaussian over a global PCA basis trained on hydrodynamic simulations.

Method (Short)

calypso is built from a suite of 100 2D hydrodynamic simulations of circumbinary accretion disks (Arepo, Navier-Stokes), spanning eb ∈ [0.0, 0.8] and qb ∈ [0.1, 1.0]. From each simulation, 500 detrended 10-orbit windows of the concatenated (Mb, M1, M2) time series form the training matrix. The model then consists of three layers:

  1. Global PCA basis. A single SVD over the entire training matrix yields a basis in which each window is represented by k_final = 142 coefficients (capturing ≳90% of the variance).
  2. Per-binary multivariate Gaussian. For each training (eb, qb), the empirical mean and covariance of the coefficient vectors across the 500 windows define a k-dimensional Gaussian. This captures the aleatoric uncertainty of the accretion process — including precession-driven long-term modulation — directly in the latent space.
  3. Cholesky-space interpolation. To predict at unseen (eb, qb), mean vectors and Cholesky factors of the per-binary covariances are linearly interpolated across the parameter grid, then recombined into a positive semi-definite covariance. Sampling from the resulting Gaussian and projecting back through the PCA basis produces synthetic time series.

Epistemic uncertainty is implemented but disabled by default (it inflates predictive variance beyond what the held-out test set supports). See the paper for the full derivation, validation against 13 held-out simulations, and parameter-space evaluation.

Installation

Requires Python ≥ 3.12.

pip install calypso-emulator

For the demo notebooks and apps:

pip install "calypso-emulator[demo]"

From source (editable):

git clone https://github.com/mssiwek/calypso.git
cd calypso
pip install -e .

Quickstart

import calypso

emu = calypso.load_emulator()

# Stochastic samples: dict with 'Mb', 'M1', 'M2' arrays of shape (n_samples, T)
samples = emu.predict(eb=0.35, qb=0.75, n_samples=16)

# Mean prediction (no sampling): dict with arrays of shape (T,)
mean = emu.predict_mean(eb=0.35, qb=0.75)

print(emu.component_names)  # ['Mb', 'M1', 'M2']

predict returns a dictionary keyed by component name (Mb, M1, M2) plus an 'parameters' record. Each component array has shape (n_samples, T) where T is the per-component window length (1000 points = 10 binary orbits at 100 points per orbit). Pass return_coefficients=True to also retrieve the sampled PCA coefficients.

For reproducible sampling:

import numpy as np
rng = np.random.default_rng(42)
samples = emu.predict(eb=0.35, qb=0.75, n_samples=16, rng=rng)

Public API

  • calypso.load_emulator(artifact_name=None, force_download=False) → PCAEmulator — load the default trained emulator (downloads the runtime artifact on first call).
  • PCAEmulator.predict(eb, qb, n_samples=1, ...) — sample synthetic time series.
  • PCAEmulator.predict_mean(eb, qb, ...) — mean time series, no sampling.
  • PCAEmulator.component_names, PCAEmulator.n_components.

Lower-level building blocks (PCAModel, CholeskyInterpolator, fit_pca_svd_multicomponent, train_cholesky_interpolator, reconstruct_components) are also exposed for users who want to retrain or extend the model.

Runtime artifacts

The trained emulator (PCA basis + per-binary Cholesky factors) is shipped as a single binary artifact rather than packaged into the wheel — keeping the install lightweight and decoupling code releases from retraining. On the first call to load_emulator(), calypso resolves the artifact name from a packaged manifest and downloads it from Zenodo into a local cache. Subsequent calls reuse the cached file.

To override the cache location:

export CALYPSO_ARTIFACTS_DIR=/path/to/cache
# or, equivalently:
export CALYPSO_WEIGHTS_DIR=/path/to/cache

Demos

Notebooks and example scripts live in demo/ and are intended to be read alongside the source rather than shipped via PyPI. They cover the basic prediction workflow, an alpha-disk luminosity model, an LSST photometry pipeline, and a Streamlit app.

Citation

If you use calypso in your work, please cite:

Siwek et al. (2026), calypso: a Parameter-Conditioned Stochastic Surrogate Model for Circumbinary Accretion Time-Series. (in prep.)

License

MIT. See LICENSE.

Metadata

Release files for calypso-emulator 1.0.2

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

Source distribution (sdist)

Source distribution for calypso-emulator 1.0.2
File Size Uploaded
calypso_emulator-1.0.2.tar.gz 21.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for calypso-emulator 1.0.2
File Interpreter ABI Platform
calypso_emulator-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 44.9 kB

Release files / calypso_emulator-1.0.2.tar.gz

Download URL calypso_emulator-1.0.2.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8a76d1400203664e39716e3bb9ee0413bfe893f54dad426c65beb06d42b81679
BLAKE2b-256 checksum
How to use checksums
352691b6f9fc579a7db4a8d0336a9584105ec97c7adfc337b89a9c28379cab1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release files / calypso_emulator-1.0.2-py3-none-any.whl

Download URL calypso_emulator-1.0.2-py3-none-any.whl
Size 23.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58fbcdfc1faa6246a4af88d5f407ddbfee6169932b0777a3266d545ca058b03d
BLAKE2b-256 checksum
How to use checksums
d176f676dc2e8ac46df84d62b3b2b4b83e355f9c6d34af00dc07324bbd27359a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

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