Skip to content

Contributions

virgil brings together many projects from one research team and ideas we liked in other packages. We used Claude Code (Opus 5.5) to join existing ideas in one framework, not to write everything from scratch, and GitHub Copilot's coding agent wrote much of the 2026 code: tests, review fixes, the Laplace uncertainties for grid searches and some tutorials. So the commit history does not show who deserves credit for which ideas. The Development carbon page estimates the energy and carbon cost of this AI-assisted work.

History

  • drpangloss. Dori Blakely began the project as a set of functions for the PDS 70 paper (Blakely et al. 2025, AJ 169, 137). Benjamin Pope and Louis Desdoigts then rewrote it by hand as drpangloss. Louis wrote the fast JAX grid searches (the basis of grid_fit) and the first kernel-phase support. Dori wrote the first notebook of Bayesian upper limits. The name was a joke on Voltaire's Candide and Antoine Mérand's CANDID: Doctor Pangloss believes we live in the best of all possible worlds, much as CANDID with better optimizers would.
  • virgil. By 2026 the joke no longer fitted, and the team took up Benjamin Pope's suggestion of virgil, with Jonah Goldfine's acronym: the Versatile Interferometric Reconstruction and Gradient-based Inference Library. In Dante's Divine Comedy, Virgil guides the poet through the underworld; the README explains why that suits image reconstruction.

People and their projects

  • Louis Desdoigts.
    • Every model is built on his zodiax, whose dot-paths ("comp.flux") are the public fitting interface.
    • virgil.amigo reads the mixed-DISCO format of his AMIGO pipeline (Desdoigts et al. 2026, PASA 43, e075). virgil.coverage simulates data in that form, following AMIGO's latent visibility basis.
    • The matrix Fourier transform was checked against the one in his dLux (Desdoigts et al. 2024).
  • Shashank Dholakia.
    • He made drpangloss handle spectrally dispersed data in 2024.
    • GravityDarkenedStar comes from his unpublished thesis work on rapidly rotating stars. Its equations are those of Espinosa Lara & Rieutord (2011); its implementation follows Aaron Dotter's GDit.
    • virgil has an interface to his harmonix (Dholakia & Pope 2025).
    • The JAX translation of the CEPHES Bessel functions, now the separate package jaxbessel, is adapted from harmonix.
  • Max Charles. The image reconstruction is largely a port and extension of the visibility-based part of his dorito, written for his NIRISS AMI paper (PASA 43, e048, 2026). Some of the inspiration for dorito came from Ian Czekala's MPoL.
  • Jonah Goldfine. The parametric scenes (virgil.scenes) come from his frito, together with geometric primitives from his unpublished work on PDS 70.
  • Toon De Prins.
    • He contributed the inclined, azimuthally modulated rim (ModulatedGaussianRim) and the elliptical transforms, from his work on post-AGB disks.
    • He reviewed and fixed the 0.4.0 release, including the pipeline layer.
  • Dori Blakely. Besides starting the project, Dori contributed the flared-disk geometry from the PDS 70 paper.
  • Frantz Martinache. The binary visibility function cvis_binary is adapted from his xara (formerly pysco; Martinache 2010).

Claude Code made the harmonix, ELR, dorito, scenes and Gaussian-process inclusions.

Methods

Docstrings cite these where they are used. The References page lists every source by module, and references/ in the repository has the BibTeX.

Data and observables

Source models

  • Limb-darkened disks: Quirrenbach et al. (1996), eq. 3, with Kipping (2013) q₁, q₂ coefficients.
  • Gravity darkening: Espinosa Lara & Rieutord (2011).
  • Radial profiles of disks by quadrature (MultipoleDisk): the Fourier–Bessel (Hankel) representation of a radial brightness profile on a set of nodes, from frank (Jennings et al. 2020); parametric profiles (Gaussian rings and gaps, power laws with soft edges), the deprojection of the uv plane and a Gaussian envelope, from vis-r (Kennedy 2025). virgil reimplements the ideas for optical and infrared observables and copies no code.
  • Non-parametric radial profiles as Gaussian processes (RadialGP, RadialGPFunction, MultipoleKernel): whitened latents on radial nodes, \(g = \mu + Lz\) with a dense kernel, fitted and sampled with automatic differentiation, and a separate radial process per physical quantity, from FRAP (Yoshida et al. 2026). virgil reimplements the ideas (Matérn kernels, a profile that is the exponential of the process, processes for the azimuthal harmonics and the spectral index) for optical and infrared observables and copies no code.
  • Chromatic scenes of stars and environment, each with its own spectrum: SPARCO (Kluska et al. 2014); blackbody dust as in Hillen et al. (2016).

Detection and limits

Orbits

Imaging

Inference

Software

virgil is built on JAX and on Patrick Kidger's equinox, optimistix and lineax, with optax, numpyro, jaxoplanet and jaxbessel. AMICAL reduces the ground-based aperture-masking data used in the examples.