Loading the 3D view
New to spectra? How a spectrum is made follows one beam of light through this galaxy's gas and builds this plot, cell by cell.
Follow one beam of quasar light through the gas around this galaxy, and watch the spectrum on this page form, cell by cell.
Sightlines through the circumgalactic medium of one TNG50-1 galaxy (subhalo 488530 at z = 0), labelled by orientation, impact parameter b and azimuth from the projected major axis.
Optical depths from Trident on a 0.25 km/s grid, stored at 1 km/s. Velocities are relative to the galaxy's systemic velocity.
H I: TNG neutral fraction (self-shielding included); metal ions: Trident HM2012 table, solar ratios scaled by metallicity.
Atomic data follow Trident 1.4.2 (O VI 1031.912 Å and C IV 1548.187 Å, 3 to 4 km/s from Morton 2003); O VII from Verner et al. 1996. Damped H I wings use Trident's Γ = 4.69 × 10⁸ s⁻¹ against the standard damping constant 6.265 × 10⁸ (Morton 2003), so damped log N fitted here sits about 0.13 dex above VPFIT-style fits of the same wings. Saturated components are lower limits.
The degradation and the Voigt fits run in your browser: Levenberg–Marquardt on (log N, b, v) through the line-spread function, seeded from the intrinsic component catalogue and pruned by ΔBIC. Noise matches the publication figure only statistically.
3D: every gas cell and star particle deposited into nested cubes (±400, ±100 and ±25 kpc), fetched from a public Hugging Face dataset. 3D velocities are mass-weighted means per voxel in the galaxy's rest frame (no Hubble flow added; vx, vy and vz each clipped at the top of the 3D velocity window). vlos and σlos follow the camera ray every frame, and positive vlos recedes from you, as in the spectra; σlos is the spread between voxels, without thermal or within-voxel motion. Find searches the fitted components of every sightline. Ask is an optional chat that drives the page through the same tools; its local model downloads about 1 GB, and the Claude backend sends your messages through the sightline server.
IllustrisTNG, TNG50-1 at z = 0 (snapshot 99), from the TNG public data release (free, registration required). Please cite Nelson et al. 2019a (Computational Astrophysics and Cosmology 6, 2), Nelson et al. 2019b (MNRAS 490, 3234) and Pillepich et al. 2019 (MNRAS 490, 3196).
Used as the TNG Collaboration requests (citation); TNG data are not relicensed by this site.
The IllustrisTNG simulations were undertaken with compute time awarded by the Gauss Centre for Supercomputing (GCS) under GCS Large-Scale Projects GCS-ILLU and GCS-DWAR on the GCS share of the supercomputer Hazel Hen at the High Performance Computing Center Stuttgart (HLRS), as well as on the machines of the Max Planck Computing and Data Facility (MPCDF) in Garching, Germany.
Galaxy 488530, its default sightlines and the rays you cast: Trident (Hummels, Smith and Silvia 2017) on yt (Turk et al. 2011) with the HM2012 UV background (Haardt and Madau 2012); H I from the TNG neutral fraction.
The 198 Milky Way and M31 analogues: the SBI_CGM fiducial ray library, with rays through the TNG50 Voronoi mesh traced by THOR (Byrohl & Nelson 2025, arXiv:2507.11603), ion fractions from CLOUDY (Ferland et al. 2017) with the FG11 UV background (Faucher-Giguère et al. 2009) and Rahmati et al. (2013) H I self-shielding. 3D ion cubes: Trident, HM2012.
Code: MIT, github.com/tanmay-starslab/cgm-absorber-requirements; yt and the patched Trident BSD-3, three.js MIT, WebLLM and the Qwen2.5-1.5B-Instruct weights Apache-2.0 (the chat's local model only); see THIRD_PARTY_LICENSES.
Hosted data: the public Hugging Face datasets tng50-mwm31-web-0 to 3 and tng50-sub488530-viz (TNG-derived; the citation request applies). Companion page: Detect and resolve.
Library sightlines load at once; new ones are cast on the sightline server.
Also settable with ?api=URL. Library sightlines always come from this site.