Skip to main content

High-performance C++ framework with Python interface for modeling Gamma-Ray Burst (GRB) afterglows.

Project description

VegasAfterglow

VegasAfterglow Logo

C++ Version PyPI version Build Status License Platform Python Version Documentation Interactive Tool Validation Report

VegasAfterglow is a high-performance C++ framework with a user-friendly Python interface designed for the comprehensive modeling of Gamma-Ray Burst (GRB) afterglows. It achieves exceptional computational efficiency, enabling the generation of multi-wavelength light curves in milliseconds and facilitating robust Markov Chain Monte Carlo (MCMC) parameter inference. The framework incorporates advanced models for shock dynamics (both forward and reverse shocks), diverse radiation mechanisms (synchrotron with self-absorption, and inverse Compton scattering with Klein-Nishina corrections), and complex structured jet configurations.

Ecosystem & Integration

  • Advanced Inference: While VegasAfterglow includes a standalone fitter, its models are also integrated into Redback for more advanced Bayesian inference, model comparison, and multi-messenger analysis.
  • Community Tools: We also recommend checking out PyFRS, Jetsimpy, ASGARD as tool for afterglow modeling.


Table of Contents


Features

Shock Dynamics

  • Forward and Reverse Shock Modeling: Simulates both shocks via shock crossing dynamics with arbitrary magnetization levels and shell thicknesses.
  • Relativistic and Non-Relativistic Regimes: Accurately models shock evolution across all velocity regimes.
  • Adiabatic and Radiative Blast Waves: Supports smooth transition between adiabatic and radiative blast waves.
  • Ambient Medium: Supports uniform Interstellar Medium (ISM), stellar wind environments, and user-defined density profiles.
  • Energy and Mass Injection: Supports user-defined profiles for continuous energy and/or mass injection into the blast wave.

Jet Structure & Geometry

  • Structured Jet Profiles: Allows user-defined angular profiles for energy distribution, initial Lorentz factor, and magnetization.
  • Arbitrary Viewing Angles: Supports off-axis observers at any viewing angle relative to the jet axis.
  • Jet Spreading: Includes lateral expansion dynamics for realistic jet evolution (experimental).
  • Non-Axisymmetric Jets: Capable of modeling complex, non-axisymmetric jet structures.

Radiation Mechanisms

  • Synchrotron Radiation: Calculates synchrotron emission from shocked electrons.
  • Synchrotron Self-Absorption (SSA): Includes SSA effects, crucial at low frequencies.
  • Inverse Compton (IC) Scattering: Models IC processes, including:
    • Synchrotron Self-Compton (SSC) from both forward and reverse shocks.
    • Pairwise IC between forward and reverse shock electron and photon populations (experimental).
    • Includes Klein-Nishina corrections for accurate synchrotron and IC emission.


Performance Highlights

VegasAfterglow is designed for speed. A tophat synchrotron light curve completes in under 1 ms; even the most demanding case — a structured jet with full SSC off-axis — finishes in ~180 ms. This makes MCMC parameter estimation lightning fast on a laptop:

  • Tophat jet: 10,000 MCMC steps, 8 parameters, 15 data points for ~0.3 M samples ~15 s (Apple M2, 8 cores).
  • Structured jet: same setup ~1 minute.

The charts below benchmark single-core wall-clock time by stage across four jet profiles (Tophat, Gaussian, Power-law, Two-component), two media (ISM/Wind), and $\theta_v/\theta_c = 0, 1, 2, 4$, all at the default fiducial resolution — conservatively set to ensure convergence across a wide range of physical parameters. Cost scales with two factors: off-axis observers require a full 3D equal-arrival-time grid vs. 2D on-axis, and structured jets compute radiation independently at each $\theta$ vs. reusing one solution for tophat. Reverse shock adds a second shocked shell, roughly doubling the dynamics cost.

Synchrotron performance Reverse shock performance Full SSC performance

Architecture

VegasAfterglow Architecture

Installation

VegasAfterglow is available as a Python package with C++ source code also provided for direct use.

Python Installation

To install VegasAfterglow using pip:

pip install VegasAfterglow

This installs the core physics engine. To also install MCMC fitting support:

pip install VegasAfterglow[mcmc]

The interactive web tool is deployed across multiple global regions for low latency. If none of the servers provide a satisfactory experience from your location, you can run the interactive web tool locally for the best responsiveness (FastAPI + Next.js):

# terminal 1: backend
cd webtool/backend
python3 -m venv .venv
source .venv/bin/activate
pip install -e '../..[webtool]'
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

# terminal 2: frontend
cd webtool/frontend
cp .env.local.example .env.local
npm install
npm run dev

Open http://localhost:3000. Detailed local/deploy guide: webtool/README.md and webtool/DEPLOY.md.

The hosted Interactive Web Tool provides real-time parameter-tunable afterglow modeling, mobile-phone compatible layout, and observational data input/upload support.

VegasAfterglow requires Python 3.8 or higher.

Alternative: Install from Source (click to expand/collapse)

For cases where pip installation is not viable or when the development version is required:

  1. Clone this repository:
git clone https://github.com/YihanWangAstro/VegasAfterglow.git
  1. Navigate to the directory and install the Python package:
cd VegasAfterglow
pip install .

Standard development environments typically include the necessary prerequisites (C++20 compatible compiler). For build-related issues, refer to the prerequisites section in C++ Installation.

C++ Installation

For advanced users who need to compile and use the C++ library directly:

Instructions for C++ Installation (click to expand/collapse)
  1. Clone the repository (if not previously done):
git clone https://github.com/YihanWangAstro/VegasAfterglow.git
cd VegasAfterglow
  1. Compile and run tests:
make tests

Upon successful compilation, you can create custom C++ problem generators using the VegasAfterglow interfaces. For implementation details, refer to the Creating Custom Problem Generators with C++ section or examine the example problem generators in tests/demo/.

Build Prerequisites (click to expand for dependency information)

The following development tools are required:

  • C++20 compatible compiler:

    • Linux: GCC 10+ or Clang 13+
    • macOS: Apple Clang 13+ (with Xcode 13+) or GCC 10+ (via Homebrew)
    • Windows: MSVC 19.29+ (Visual Studio 2019 16.10+) or MinGW-w64 with GCC 10+
  • Build tools:

    • Make (GNU Make 4.0+ recommended)

Usage

Quick Start

VegasAfterglow can be used in three ways:

  • Interactive web tool — real-time, parameter-tunable afterglow modeling for light curves, spectra, and sky images, with mobile-phone compatible UI and observational data input/upload support (CSV/TXT/XLS/XLSX). No installation required.
  • Command line — generate light curves instantly with the vegasgen command, no code needed.
  • Python API — full programmatic control for custom analysis, MCMC fitting, and access to internal quantities.

Command-Line Tool (vegasgen)

# Default tophat jet, ISM, on-axis — just run it
vegasgen

# Gaussian jet at z=0.5 with plot output
vegasgen --jet gaussian --z 0.5 --plot

# Use filter names for frequencies, save to file
vegasgen --nu R J 1e18 -o lightcurve.csv

# Wind medium with SSC, save plot as PNG
vegasgen --medium wind --ssc --plot -o lightcurve.png

All parameters have sensible defaults. Run vegasgen --help for the full option list, or see the CLI documentation for detailed usage.

Python API

from VegasAfterglow import ISM, TophatJet, Observer, Radiation, Model
import numpy as np

model = Model(TophatJet(0.1, 1e52, 300), ISM(1), Observer(1e26, 0.1, 0), Radiation(0.1, 1e-3, 2.3))
result = model.flux_density_grid(np.logspace(2, 8, 100), [1e9, 1e14, 1e17])

See the detailed sections below and the example notebooks (script/quick.ipynb, script/details.ipynb, script/vegas-mcmc.ipynb) for Python usage including light curves, spectra, internal quantities, and MCMC fitting.

Light Curve & Spectrum Calculation

The example below walks through the main components needed to model a GRB afterglow, from setting up the physical parameters to producing light curves and spectra via script/quick.ipynb.

Model Setup (click to expand/collapse)
import numpy as np
import matplotlib.pyplot as plt
from VegasAfterglow import ISM, TophatJet, Observer, Radiation, Model

medium = ISM(n_ism=1)                                    # constant density ISM [cm^-3]
jet = TophatJet(theta_c=0.1, E_iso=1e52, Gamma0=300)    # top-hat jet [rad, erg, dimensionless]
obs = Observer(lumi_dist=1e26, z=0.1, theta_obs=0)      # observer [cm, dimensionless, rad]
rad = Radiation(eps_e=1e-1, eps_B=1e-3, p=2.3)          # microphysics

model = Model(jet=jet, medium=medium, observer=obs, fwd_rad=rad)
Light Curve Calculation (click to expand/collapse)

Compute and plot multi-wavelength light curves:

times = np.logspace(2, 8, 100)
bands = np.array([1e9, 1e14, 1e17])  # radio, optical, X-ray

# times must be in ascending order; frequencies can be in any order
results = model.flux_density_grid(times, bands)

plt.figure(figsize=(4.8, 3.6), dpi=200)
for i, nu in enumerate(bands):
    exp = int(np.floor(np.log10(nu)))
    base = nu / 10**exp
    plt.loglog(times, results.total[i,:], label=fr'${base:.1f} \times 10^{{{exp}}}$ Hz')

plt.xlabel('Time (s)')
plt.ylabel('Flux Density (erg/cm²/s/Hz)')
plt.legend()
plt.title('Light Curves')
Afterglow Light Curves
Spectrum Analysis (click to expand/collapse)

Broadband spectra at different epochs:

frequencies = np.logspace(5, 22, 100)
epochs = np.array([1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8])

# times must be in ascending order
results = model.flux_density_grid(epochs, frequencies)

plt.figure(figsize=(4.8, 3.6), dpi=200)
colors = plt.cm.viridis(np.linspace(0, 1, len(epochs)))
for i, t in enumerate(epochs):
    exp = int(np.floor(np.log10(t)))
    base = t / 10**exp
    plt.loglog(frequencies, results.total[:,i], color=colors[i], label=fr'${base:.1f} \times 10^{{{exp}}}$ s')

plt.xlabel('Frequency (Hz)')
plt.ylabel('Flux Density (erg/cm²/s/Hz)')
plt.legend(ncol=2)
plt.title('Synchrotron Spectra')
Broadband Spectra
Time-Frequency Pairs Calculation (click to expand/collapse)

For paired time-frequency points (t_i, nu_i) instead of a grid:

times = np.logspace(2, 8, 200)
frequencies = np.logspace(9, 17, 200)  # same length as times

results = model.flux_density(times, frequencies)  # times must be ascending

Three flux methods:

  • flux_density_grid(times, freqs): NxM grid output
  • flux_density(times, freqs): paired points (N output from N pairs)
  • flux_density_exposures(times, freqs, expo): paired with exposure-time averaging

All return a FluxDict with .total, .fwd (.sync, .ssc), and .rvs (.sync, .ssc).

Internal Quantities Evolution

The example below walks through how you can check the evolution of internal quantities under various reference frames via script/details.ipynb.

Model Setup (click to expand/collapse)
import numpy as np
import matplotlib.pyplot as plt
from VegasAfterglow import ISM, TophatJet, Observer, Radiation, Model

z = 0.1
medium = ISM(n_ism=1)
jet = TophatJet(theta_c=0.3, E_iso=1e52, Gamma0=100)
obs = Observer(lumi_dist=1e26, z=z, theta_obs=0.)
rad = Radiation(eps_e=1e-1, eps_B=1e-3, p=2.3)

model = Model(jet=jet, medium=medium, observer=obs, fwd_rad=rad, resolutions=(0.1, 0.25, 10))
Get the simulation quantities (click to expand/collapse)
details = model.details(t_min=1e0, t_max=1e8)

Returns a SimulationDetails object. All quantities are 3D numpy arrays with shape (n_phi, n_theta, n_time), where axis 0 is the azimuthal angle, axis 1 is the polar angle, and axis 2 is the time step. For example, details.fwd.Gamma[0, 0, :] gives the Lorentz factor time evolution along the jet symmetry axis. Access forward shock via details.fwd (reverse shock via details.rvs when enabled).

Category Attributes
Grid phi, theta, t_src (source frame), fwd.t_comv (comoving), fwd.t_obs (observer)
Dynamics Gamma, Gamma_th, r, theta, Doppler
Microphysics B_comv [G], N_p, N_e, I_nu_max [erg/cm²/s/Hz]
Electron Lorentz factors gamma_a, gamma_m, gamma_c, gamma_M
Characteristic frequencies nu_a, nu_m, nu_c, nu_M [Hz]
Spectra (callable) sync_spectrum, ssc_spectrum, Y_spectrum

See the documentation for full descriptions.

Checking the evolution of various parameters (click to expand/collapse)

Plot shock quantities across source, comoving, and observer frames:

attrs =['Gamma', 'B_comv', 'N_p','r','N_e','I_nu_max']
ylabels = [r'$\Gamma$', r'$B^\prime$ [G]', r'$N_p$', r'$r$ [cm]', r'$N_e$', r'$I_{\nu, \rm max}^\prime$ [erg/s/Hz]']

frames = ['t_src', 't_comv', 't_obs']
titles = ['source frame', 'comoving frame', 'observer frame']
colors = ['C0', 'C1', 'C2']
xlabels = [r'$t_{\rm src}$ [s]', r'$t^\prime$ [s]', r'$t_{\rm obs}$ [s]']
plt.figure(figsize= (4.2*len(frames), 3*len(attrs)))

# All 3D arrays have shape (n_phi, n_theta, n_time).
# Using [0, 0, :] extracts the time evolution at the first azimuthal and
# polar bin, i.e. along the jet symmetry axis.
for i, frame in enumerate(frames):
    for j, attr in enumerate(attrs):
        plt.subplot(len(attrs), len(frames) , j * len(frames) + i + 1)
        if j == 0:
            plt.title(titles[i])
        value = getattr(details.fwd, attr)
        if frame == 't_src':
            t = getattr(details, frame)
        else:
            t = getattr(details.fwd, frame)
        plt.loglog(t[0, 0, :], value[0, 0, :], color='k',lw=2.5)
        plt.loglog(t[0, 0, :], value[0, 0, :], color=colors[i])

        plt.xlabel(xlabels[i])
        plt.ylabel(ylabels[j])

plt.tight_layout()
plt.savefig('shock_quantities.png', dpi=300,bbox_inches='tight')
Shock evolution

See script/details.ipynb for additional plots including characteristic electron energies, synchrotron frequencies, Doppler factor maps, and equal arrival time surfaces.

Per-Cell Spectrum Evaluation (click to expand/collapse)

In addition to scalar quantities, details() provides callable spectrum accessors that let you evaluate the comoving-frame synchrotron, SSC, and Compton-Y spectra at arbitrary frequencies for each grid cell. To use SSC and Y spectrum, enable SSC in the radiation model:

rad = Radiation(eps_e=1e-1, eps_B=1e-3, p=2.3, ssc=True)
model = Model(jet=jet, medium=medium, observer=obs, fwd_rad=rad, resolutions=(0.1, 0.25, 10))
details = model.details(t_min=1e0, t_max=1e8)

nu_comv = np.logspace(8, 20, 200)  # comoving frame frequency [Hz]

# Synchrotron spectrum at cell (phi=0, theta=0, t=5)
I_syn = details.fwd.sync_spectrum[0, 0, 5](nu_comv)   # erg/s/Hz/cm²/sr

# SSC spectrum at the same cell (requires ssc=True)
I_ssc = details.fwd.ssc_spectrum[0, 0, 5](nu_comv)    # erg/s/Hz/cm²/sr

# Compton-Y parameter as a function of electron Lorentz factor
gamma = np.logspace(1, 8, 200)
Y = details.fwd.Y_spectrum[0, 0, 5](gamma)            # dimensionless

These callable accessors are also available on details.rvs when a reverse shock is configured. The sync_spectrum and Y_spectrum are always available; ssc_spectrum is None unless ssc=True.

Sky Image

Generate spatially resolved images of the afterglow at any observer time and frequency. See script/sky-image.ipynb for the full example.

Single Frame (click to expand/collapse)
from matplotlib.colors import LogNorm
from VegasAfterglow.units import uas

img = model.sky_image([1e6], nu_obs=1e9, fov=500 * uas, npixel=256)

fig, ax = plt.subplots(dpi=100)
im = ax.imshow(
    img.image[0].T,
    origin="lower",
    extent=img.extent / uas,
    cmap="inferno",
    norm=LogNorm(),
)
ax.set_xlabel(r"$\Delta x$ ($\mu$as)")
ax.set_ylabel(r"$\Delta y$ ($\mu$as)")
fig.colorbar(im, label=r"Surface brightness (erg/cm$^2$/s/Hz/sr)")

The return value is a SkyImage object with:

  • img.image: 3D array (n_frames, npixel, npixel) — surface brightness in erg/cm²/s/Hz/sr
  • img.extent: angular extent in radians (pass to imshow(extent=...))
  • img.pixel_solid_angle: pixel solid angle in sr
Multi-Frame Movie (click to expand/collapse)

Pass an array of observer times to generate an image sequence efficiently — dynamics are solved once, each frame only re-renders the sky projection:

times = np.logspace(4, 8, 60)
imgs = model.sky_image(times, nu_obs=1e9, fov=2000 * uas, npixel=128)
# imgs.image.shape == (60, 128, 128)
Sky Image Movie
Off-Axis Observer (click to expand/collapse)

For off-axis observers, the image centroid drifts across the sky (superluminal apparent motion):

model_offaxis = Model(
    jet=TophatJet(theta_c=0.1, E_iso=1e52, Gamma0=200),
    medium=ISM(n_ism=1),
    observer=Observer(lumi_dist=1e26, z=0.1, theta_obs=0.4),
    fwd_rad=Radiation(eps_e=1e-1, eps_B=1e-3, p=2.3),
)

times_oa = np.logspace(5, 8, 30)
imgs_oa = model_offaxis.sky_image(times_oa, nu_obs=1e9, fov=5000 * uas, npixel=128)

MCMC Parameter Fitting

We provide some example data files in the data folder. Remember to keep your copy in the same directory as the original to ensure all data paths work correctly.

1. Configuring the Model (click to expand/collapse)
# Requires: pip install VegasAfterglow[mcmc]
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import corner
from VegasAfterglow import Fitter, ParamDef, Scale

# Create the fitter with model configuration and add data
fitter = Fitter(
    z=1.58,
    lumi_dist=3.364e28,
    jet="powerlaw",
    medium="wind",
)

All model configuration is passed directly to the Fitter constructor as keyword arguments. Check the documentation for all available options.

2. Defining Parameters and Running MCMC (click to expand/collapse)

Define parameters with ParamDef(name, min, max, scale). Use Scale.log for parameters spanning orders of magnitude, Scale.linear for narrow ranges, and Scale.fixed to hold a parameter constant:

mc_params = [
    ParamDef("E_iso",      1e50,  1e54,  Scale.log),       # Isotropic energy [erg]
    ParamDef("Gamma0",        5,  1000,  Scale.log),       # Lorentz factor at the core
    ParamDef("theta_c",     0.0,   0.5,  Scale.linear),    # Core half-opening angle [rad]
    ParamDef("k_e",           2,     2,  Scale.fixed),     # Energy power law index
    ParamDef("k_g",           2,     2,  Scale.fixed),     # Lorentz factor power law index
    ParamDef("theta_v",     0.0,   0.0,  Scale.fixed),     # Viewing angle [rad]
    ParamDef("p",             2,     3,  Scale.linear),    # Shocked electron power law index
    ParamDef("eps_e",      1e-2,   0.5,  Scale.log),       # Electron energy fraction
    ParamDef("eps_B",      1e-4,   0.5,  Scale.log),       # Magnetic field energy fraction
    ParamDef("A_star",     1e-3,     1,  Scale.log),       # Wind parameter
    ParamDef("xi_e",       1e-3,     1,  Scale.log),       # Electron acceleration fraction
]

Add observational data and run the fit:

# Add light curves at specific frequencies (all quantities in CGS units)
t_data = [1e3, 2e3, 5e3, 1e4, 2e4]  # Time in seconds
flux_data = [1e-26, 8e-27, 5e-27, 3e-27, 2e-27]  # erg/cm²/s/Hz
flux_err = [1e-28, 8e-28, 5e-28, 3e-28, 2e-28]    # erg/cm²/s/Hz
fitter.add_flux_density(nu=4.84e14, t=t_data, f_nu=flux_data, err=flux_err)

# Load from CSV files
import pandas as pd
bands = [2.4e17, 4.84e14, 1.4e14]
lc_files = ["data/ep.csv", "data/r.csv", "data/vt-r.csv"]
for nu, fname in zip(bands, lc_files):
    df = pd.read_csv(fname)
    fitter.add_flux_density(nu=nu, t=df["t"], f_nu=df["Fv_obs"], err=df["Fv_err"])

# Add spectra at specific times
fitter.add_spectrum(t=3000, nu=nu_data, f_nu=spectrum_data, err=spectrum_err)

# Option 1: Nested sampling with dynesty (computes evidence, robust for multimodal posteriors)
result = fitter.fit(
    mc_params,
    resolution=(0.1, 0.25, 10),    # Grid resolution (phi, theta, t)
    sampler="dynesty",             # Nested sampling algorithm
    nlive=1000,                    # Number of live points
    walks=100,                     # Number of random walks per live point
    dlogz=0.5,                     # Stopping criterion (evidence tolerance)
    npool=8,                       # Number of parallel threads
    top_k=10,                      # Number of best-fit parameters to return
)

# Option 2: MCMC with emcee (faster, good for unimodal posteriors, not optimal for multimodal posteriors)
result = fitter.fit(
    mc_params,
    resolution=(0.1, 0.25, 10),    # Grid resolution (phi, theta, t)
    sampler="emcee",               # MCMC sampler
    nsteps=50000,                  # Number of steps per walker
    nburn=10000,                   # Burn-in steps to discard
    thin=1,                        # Save every nth sample
    npool=8,                       # Number of parallel threads
    top_k=10,                      # Number of best-fit parameters to return
)

The result object contains samples, labels, latex_labels, top_k_params, top_k_log_probs, and bilby_result.

3. Analyzing Results and Generating Predictions (click to expand/collapse)

Generate predictions with the best-fit parameters:

best_params = result.top_k_params[0]

t_out = np.logspace(2, 9, 150)
nu_out = np.logspace(16, 20, 150)

lc = fitter.flux_density_grid(best_params, t_out, bands)
spec = fitter.flux_density_grid(best_params, times, nu_out)

Corner plot:

flat_chain = result.samples.reshape(-1, result.samples.shape[-1])
corner.corner(flat_chain, labels=result.latex_labels, quantiles=[0.16, 0.5, 0.84], show_titles=True)

See script/vegas-mcmc.ipynb for a complete working example with data loading, fitting, and visualization.

Parameter Fitting with Redback

For parameter estimation and Bayesian inference, VegasAfterglow models are integrated into redback, which provides a unified interface for fitting all transient types.

Loading Data & Fitting: (click to expand/collapse)
import redback

# Multiple ways to load data:
GRB = 'GRB070809'

# Method 1: From Swift BAT+XRT (recommended for Swift GRBs)
redback.get_data.get_bat_xrt_afterglow_data_from_swift(grb=GRB, data_mode="flux")
afterglow = redback.afterglow.SGRB.from_swift_grb(name=GRB, data_mode='flux')

# Method 2: From open access catalogs
afterglow = redback.afterglow.Afterglow.from_open_access_catalogue(
    GRB, data_mode='flux_density'
)

# Method 3: From your own data files
import pandas as pd
data = pd.read_csv('my_grb_data.csv')
afterglow = redback.transient.Afterglow(
    name=GRB,
    data_mode='flux_density',
    time=data['time'].values,
    flux_density=data['flux'].values,
    flux_density_err=data['flux_err'].values,
    frequency=data['frequency'].values
)

# Fit with VegasAfterglow tophat model
result = redback.fit_model(
    transient=afterglow,
    model='vegas_tophat',  # VegasAfterglow tophat jet model
    sampler='dynesty',
    nlive=1000
)

result.plot_corner()
result.plot_lightcurve()
result.plot_residuals()

Available VegasAfterglow models in redback:

  • vegas_tophat - Tophat jet + ISM
  • vegas_gaussian - Gaussian jet + ISM
  • vegas_powerlaw - Power-law jet + ISM
  • vegas_two_component - Two-component jet + ISM
  • vegas_tophat_wind - Tophat jet + Wind medium
  • ... and more

Why use the Redback interface?

  • Data Management: Seamlessly load data from Swift, Fermi, BATSE, or custom files. Supports flux, flux_density, magnitude, and luminosity.
  • Advanced Statistics: Access multiple samplers (dynesty, emcee, ultranest), parallel sampling, and Bayesian model comparison.
  • Visualization: Generate publication-ready corner plots and multi-band light curves automatically.

For complete documentation on the API, visit the redback documentation.


Validation & Testing

The validation suite includes benchmark tests (resolution convergence, performance timing) and regression tests (shock dynamics scaling laws, characteristic frequency evolution, spectral power-law indices across Blandford-McKee and Sedov-Taylor phases). The default fiducial resolution (0.1, 0.25, 10) achieves < 5% mean error for most configurations.

See the Validation Report (PDF) for full results. To run locally:

pip install -e ".[test]" --config-settings=cmake.define.AFTERGLOW_PROFILE=ON
python validation/run_validation.py --all        # full suite (timing + convergence + regression)
python validation/run_validation.py --all --fast  # fast mode: skip convergence scans

Powered by Claude Code


Documentation

Full documentation — installation, examples, MCMC fitting guide, parameter reference, Python/C++ API, and troubleshooting — is available at Documentation.

For a history of changes and new features, see the Changelog.


Contributing

If you encounter any issues, have questions about the code, or want to request new features:

  1. GitHub Issues - The most straightforward and fastest way to get help:

    • Open an issue at Issues
    • You can report bugs, suggest features, or ask questions
    • This allows other users to see the problem/solution as well
    • Can be done anonymously if preferred
  2. Pull Requests - If you've implemented a fix or feature:

    • Fork the repository
    • Create a branch for your changes
    • Submit a pull request with your changes
  3. Email - For private questions or discussions:

We value all contributions and aim to respond to issues promptly. All communications are extremely welcome!


License

VegasAfterglow is released under the BSD-3-Clause License.


Acknowledgments & Citation

We would like to thank the contributors who helped improve VegasAfterglow. Special thanks to Weihua Lei, Shaoyu Fu, Liang-Jun Chen, Iris Yin, Cuiyuan Dai, Binbin Zhang and Nikhil Sarin for their invaluable work as beta testers, providing feedback and helping with bug fixes during development. We also thank the broader community for their suggestions and support.

If you find VegasAfterglow useful, please consider giving us a star — it helps others discover the project!

Star this repo

If you use VegasAfterglow in your research, we would be grateful if you could cite:

Wang, Y., Chen, C., & Zhang, B. (2026). VegasAfterglow: A high-performance framework for gamma-ray burst afterglows. Journal of High Energy Astrophysics, 50, 100490. ADS

@ARTICLE{2026JHEAp..5000490W,
       author = {{Wang}, Yihan and {Chen}, Connery and {Zhang}, Bing},
        title = "{VegasAfterglow: A high-performance framework for gamma-ray burst afterglows}",
      journal = {Journal of High Energy Astrophysics},
     keywords = {Gamma-ray bursts, Shocks, Relativistic jets, Computational methods, Open source software, High Energy Astrophysical Phenomena},
         year = 2026,
        month = feb,
       volume = {50},
          eid = {100490},
        pages = {100490},
          doi = {10.1016/j.jheap.2025.100490},
archivePrefix = {arXiv},
       eprint = {2507.10829},
 primaryClass = {astro-ph.HE},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2026JHEAp..5000490W},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

Zhang, B. (2018). The Physics of Gamma-Ray Bursts. Cambridge University Press. ADS

@book{Zhang2018,
  author    = {Zhang, Bing},
  title     = {{The Physics of Gamma-Ray Bursts}},
  publisher = {Cambridge University Press},
  year      = {2018},
  doi       = {10.1017/9781139226530}
}

Contribution Overview

The University of Hong Kong University of Wisconsin-Madison Nevada Center for Astrophysics

Project details


Download files

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

Source Distribution

vegasafterglow-2.0.3.tar.gz (36.0 MB view details)

Uploaded Source

Built Distributions

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

vegasafterglow-2.0.3-cp314-cp314-win_arm64.whl (393.1 kB view details)

Uploaded CPython 3.14Windows ARM64

vegasafterglow-2.0.3-cp314-cp314-win_amd64.whl (409.2 kB view details)

Uploaded CPython 3.14Windows x86-64

vegasafterglow-2.0.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (721.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_x86_64.whl (572.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_arm64.whl (495.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp313-cp313-win_arm64.whl (380.7 kB view details)

Uploaded CPython 3.13Windows ARM64

vegasafterglow-2.0.3-cp313-cp313-win_amd64.whl (397.8 kB view details)

Uploaded CPython 3.13Windows x86-64

vegasafterglow-2.0.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (721.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_x86_64.whl (572.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_arm64.whl (495.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp312-cp312-win_arm64.whl (380.7 kB view details)

Uploaded CPython 3.12Windows ARM64

vegasafterglow-2.0.3-cp312-cp312-win_amd64.whl (397.7 kB view details)

Uploaded CPython 3.12Windows x86-64

vegasafterglow-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (721.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_x86_64.whl (572.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_arm64.whl (495.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp311-cp311-win_arm64.whl (379.4 kB view details)

Uploaded CPython 3.11Windows ARM64

vegasafterglow-2.0.3-cp311-cp311-win_amd64.whl (396.1 kB view details)

Uploaded CPython 3.11Windows x86-64

vegasafterglow-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (716.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_x86_64.whl (569.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_arm64.whl (493.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp310-cp310-win_arm64.whl (377.9 kB view details)

Uploaded CPython 3.10Windows ARM64

vegasafterglow-2.0.3-cp310-cp310-win_amd64.whl (394.5 kB view details)

Uploaded CPython 3.10Windows x86-64

vegasafterglow-2.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (719.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_x86_64.whl (568.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_arm64.whl (492.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp39-cp39-win_arm64.whl (377.9 kB view details)

Uploaded CPython 3.9Windows ARM64

vegasafterglow-2.0.3-cp39-cp39-win_amd64.whl (394.6 kB view details)

Uploaded CPython 3.9Windows x86-64

vegasafterglow-2.0.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (719.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_x86_64.whl (568.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_arm64.whl (492.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

vegasafterglow-2.0.3-cp38-cp38-win_amd64.whl (394.5 kB view details)

Uploaded CPython 3.8Windows x86-64

vegasafterglow-2.0.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (719.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_x86_64.whl (568.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ x86-64

vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_arm64.whl (492.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file vegasafterglow-2.0.3.tar.gz.

File metadata

  • Download URL: vegasafterglow-2.0.3.tar.gz
  • Upload date:
  • Size: 36.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vegasafterglow-2.0.3.tar.gz
Algorithm Hash digest
SHA256 377667cbdd899f771a6640c3bb72b4a2700d14566660f47385c9c1dece7a3508
MD5 dabb2d3b73f0ae8e9849a7d4bcb816ea
BLAKE2b-256 2b8315b1709730ac71f702b972b8b335e2a99b1fac58b96b0389259fd1674bad

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 9ca544fde459a3d747fb4fb5982c0b94c06d44ec7a44a41b382d917a30b6e812
MD5 4557ef8c0270bd557b7a3f1cc3375832
BLAKE2b-256 deea0efdb009df03524f533b65217c2101d870f586fca4e9398b6eeb7e6132e3

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a756323577283506b17d17bcbc9aebce24cbf53b014d65ffd1034a6ed37bc891
MD5 aee08062d3ad33075428f30b8dd1e8a5
BLAKE2b-256 1431c6c3b8ee77fdc74ffb829abe3697289e527bd42895f27ad58e5235d34692

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5591af1afba542a4c705f27a7fe12d27e6fdad22119a6292167c5e4df020ecd
MD5 ad5f1917904119d697dd4dd9e1d0586e
BLAKE2b-256 5dcdc9a56c548f2b6185a6b6ef5164ebb706220f7177c15b049690f4b0c5f285

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e05dc0afafdd24bfcf1cea79754b79dce784b910037e67a3647b3477f46a7751
MD5 9a975ebe4997644ea8f6fcfb0b088f8d
BLAKE2b-256 cee720e6c47a4f4ded7ca1d0db31885c41c77b8dd262b33d509f1f73092ac5b4

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc23f66b557ed4339e3590b966bf4065bff4112ed5c776a461ca887c231a3c92
MD5 04dc8d810f02afe3ca08d89eee03d43e
BLAKE2b-256 b8b7048c8f24a7a8ff1d1821d0692356df0a6ec05016092a856c873441427da1

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 94ec773ba29d083551b460afab14d48c67cf0e44eddc1edee81473ab377d60e1
MD5 e21a49db6035c9f0f9bc3a5cfd6e441c
BLAKE2b-256 729667e9293b2c68fe3383c192d8da09ca0dbcaa01fea91334800fab9ce3583e

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2d4933180de72977c9d699bc1112f6a3f29f169bc35ba5a0debdcdf7a47e4640
MD5 af46c6ba5eb1fb5eaee6955f8cd6675d
BLAKE2b-256 8062e019d47310883e40b1565a6a086c244533d85d8f21d5e169c9198f8845bb

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ad880be90047ab4104b5eb3f44ad1695c6345f9a04764395437e6bb82b191a6
MD5 197b178f72f6f81c71fd4bb989a9e224
BLAKE2b-256 ef399525f3507394696889ad309eca7779dba29fe905285200f0e30264a6347e

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6f8dfc2b5ca3b46ae1015b723833d7b11ff14427b947bb164ffd94098db3e601
MD5 6c9135ecdae4a2819bf9994886e9c8fa
BLAKE2b-256 cc302b1bd8576add2df3676288aa4af2bb9910c0dace0e72540629b591468279

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84aa574a5df679957b93e16bac6856cbd4565c24cca3d6aad047eaf6f717ef64
MD5 f117392f94885b5fa9408fcd0129342b
BLAKE2b-256 0928bfe118d23741a9429716fb3955ba77902f2af3cf084c1ef8e4e886deeeb0

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 88ea85b4c7f3e5df917c9d31bc17984afa6dcb8d75ea3d9f894d8a9affbf68d3
MD5 082a58ff3d4811014af6987f90bbb5d0
BLAKE2b-256 0a6adfdfc9b2dd910c4e268a9ab031431294c19ddf8a63ee2e80194332a54723

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2ced50565cf1b0f0f6156d7153c9731e8d1b524961f8dcfad0eb5bd50fa52d5f
MD5 ddddaa790ac0197a414f8d9e39ecf3f0
BLAKE2b-256 274e2d02ea83a2233c18a8ef7569ff2c2f9d6e281c651168d5e35b051e7509d4

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfc8593f1c69ad2ad0202fb3d2ee2b8dda1f524b9f7b7f819dd0d73c45591348
MD5 9862d9afd622616ca044139375bd1762
BLAKE2b-256 55d92de36366d2ae88e3aee4969d3048a300fa96467f164ac6b3c9e424db3bcd

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a5bd0956a2604f88cf78ccdcf1db9bbf09526eb92fa0f4a0143671ec3a331121
MD5 f19f368c0147148c608396bc994f2a88
BLAKE2b-256 252eeaa1adfb21446fee3c2dd5c2ec5cac0a70de1e904d27f2c3e4b1369ba4e6

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1086d94c6e3b49722abcff4ed2eafc46f6b898186554f65d5c592350534d91cc
MD5 3ef4d82dbf8a017025c7362ad050ac82
BLAKE2b-256 4686c120948cdaf21806cbbf7618ea2cd628ba5889107c1afbc60b1efcba2807

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 1930613aaf2b767057b485c809256e22ab4a358391d9dfcdb0f7aa7299a59c34
MD5 3774048d2fdd7085a8f8774d3b01ed96
BLAKE2b-256 a8c462bbb87ca3c444d73e9aa510da98955976e1eb05f96c0858d70901bbc959

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a64524a59f823815795a43ce8cdebc8909437994a02d4248f2e8b64e6981320d
MD5 941eb48981b0292e1941ef01727903a9
BLAKE2b-256 da14b3d086e06c0f7155ecb04e90a371d028512414033509ce3cec2b81587dee

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a3bff34ff3ac6582871f14d7d84e4789eec058e27554fee58c4ef0543463b24
MD5 71138702babbddd9f909c7e4f03099e4
BLAKE2b-256 919e582e1b5381993d160f8f8b3766d309bef6c9172dcd869bd3e13bac7c3b0a

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2dfedf93296d046cc10dd452ace7eb4e3783d01928fe5efd6a661e92d9636ead
MD5 77a1fff4e98f0b6e874b7190858fd238
BLAKE2b-256 5da6a3a10c5fc09745ddd44f5bcb1698311123ce6417c0162cf6918e1f1e79ba

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c01d4ee59964616216148693b6dbbd5f7fcbb7300f917b53349649d72cf6ab4
MD5 5b694be496d2e67486fad041d81cfaa3
BLAKE2b-256 b365775c1065ec5ff2334a61101b94e306a9f865310c0e3a963cb62e76341a92

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 45afdc14aec29680240c996836a7e5fa5255ba8c54dbb985f28e0c98cf3ca2f8
MD5 5b17ca757ac689aece530ed2eaf237e7
BLAKE2b-256 f00f91468cb3a792639c2b40922ceac55fa00779c373a7ac9f5accd50bca4338

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2015c75473005803498838e5386857f06bbadef4424eacc88559e2c9a6d63bc6
MD5 d2483f38e23240d82a2be883bace5ad7
BLAKE2b-256 77633f36ea824abf193e5815d30629e7e3d7253f4a1f565166150aa3ed502243

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ecb6d8d5d5ea023e126fea594f3287e9f4d7eb28279c60fb004e4767ae278607
MD5 b26815f49ad8c498b862e015b3d843ee
BLAKE2b-256 cbb3fbd85b269f94d8824bdf4fdb7c9fc224cb970e4ba40ecbfe9a3bfa9f36b7

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 05f56a45191f5b9208de99e261dbaa8ad395a3014edf2a3cae71658d68e46cc8
MD5 fb86e54ff078525980d5e964563aeb8b
BLAKE2b-256 77fd07586d6f131988ab875f9dc805dc1b5bdd48e136800d35e89c57e85d98e0

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a4d72210d57d45a14e1aebc2ee4ad03158d742a392418ce940f6284f6deedec
MD5 23e1c036073fba8a3c2c69c505f6ed5a
BLAKE2b-256 99f48eb024a1e17b6980d00db4f75e221490acb659cc01447e236a4d800a2c43

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 d7d880c47957ea4c394bd957fe1238fd70f4008921b9a89578545ff63ea21fa5
MD5 c0669dd6625a959e2ebb2a9fd3f7a239
BLAKE2b-256 f9e6eb23d87a647d3cdd3a1c72d26545d887d9185af4c4a78e60eeb3ec1975f2

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0f6f5b79a27556746002fff8915481e2689708e86b637afe4ad7095126c35e87
MD5 d122df88cdd59cdc533ae8d32ffac510
BLAKE2b-256 59f7f1ca8eecc9b6a3590ae36e7c0f8a847780285ee30f240e094e23b52ac804

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 672ec5d285d01d4dd37cac24af147385496dc8893c10b913182aa015921acc78
MD5 7f6467024211a2ebd65e179c3a9888de
BLAKE2b-256 3a20a544dbf1e8f6809a5b331c1bdbf3d6ce23065560ed7b139e4db3ae8c04b6

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 50613ecfdc0beeeca419b073e45b4d5b7726b032c2b5e54dd03812adac36d8e6
MD5 3ea45aac93f762d14d789a48dbc67a66
BLAKE2b-256 85380d79cfcf73d165d0f9076fecece8f234786e4d9b0e0df731b3c3eead1898

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71b73d181a3a87cd639e024f31793ee9d06828da916cdb16bbcedfb64a0b24f0
MD5 eb1e2d4a654500ccbb2abc90bcc9a9fb
BLAKE2b-256 50f28757082313665fb82b042f742916a892657237d60cf0bc6b68502e394563

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 31d810a69fbd91088966e55a7a9e83358e8cd73a200645bf3e5967c5bcf914eb
MD5 fa380566f163007e9343888066b87f0b
BLAKE2b-256 41d1090cee8a91d5803c31b514c6dbb8ad8135c198e6ca8ae01fc9ea187d185b

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92975ae83554b31e82727c6b93397663849ba686b69ad0d0f6162361bc6f3f15
MD5 c4dd61f9b6147861154dd4437557d2b4
BLAKE2b-256 9baaba384319cc5de10640a92baa32cada1741048c46ac654979f9f2eca3cc06

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 459e37c2ffc2f410995c23601933cd86abe08809f68c59149929f1e97b29c992
MD5 4fe088c1021d51fcf1e7802d116b2a66
BLAKE2b-256 fd605982753b66654f6d95325dd96da7fcb71f21aba768b236f8599c4a84a5d7

See more details on using hashes here.

File details

Details for the file vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vegasafterglow-2.0.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5103db0d45a273612346789d19722715532a54487013433b16507e0ebcf50afd
MD5 7af4c34626e0d9538b36c5540ee87364
BLAKE2b-256 d5da89dc13dfc52e6fd016600fafee5c5188b802adde248448be236172b716b1

See more details on using hashes here.

Supported by

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