Underworld

“The descent to Avernus is easy … but to retrace the step and come out to the upper air, this is the task, this the labour.” — Virgil, Aeneid VI.126–129

From the ground · what the right instruments see

Geophones: what instruments on the ground see

Before judging a satellite, ask what the instruments built for the job can see. Geophysicists image the shallow ground with arrays of geophones and a source, hammer blows or the ambient hum, and invert the records into a three-dimensional tomogram. Here that is done in simulation, over the same ground the satellite was flown over. Boreholes, echo imaging and full-waveform inversion find the chamber; the lab’s tools find it when the physics allows, so the satellite’s failure is the satellite’s.

status · solver validated · travel times, echo imaging, ambient noise and full-waveform inversion done on the one-chamber bench

Where each method stands on the one-chamber bench

MethodSurveyFrequencyChamber recoveredvs scatterState
Travel-time tomographycrosshole · four boreholes250 Hz-11.3%3.5×donep1_02_traveltime
Travel-time tomographysurface · hammer and geophone grids120 Hz+0.0%0.0×donep1_02_traveltime
Echo imaging (RTM)surface · same grids, the chamber’s echo120 Hzlit, 2.8 m off centre6.0×donep1_03_scattered
Ambient-noise echo imagingsurface · same geophones, noise as virtual sources~100 Hzbrightest 7.3 m off centre2.2×donep1_04_ambient
Full-waveform inversionsurface · same records, from a practitioner’s start120 Hz-15.8% in S speed5.7×donep1_05_fwi

Chamber recovered: mean relative P-wave speed inside the true chamber (air would read −90%); for echo imaging, where the image is brightest; for full-waveform inversion, mean relative S-wave speed. vs scatter: that anomaly over the image's own level around it. One chamber, 6 m, top 12 m down, bare limestone, noise 30 dB below each record's peak; ambient noise with an unlimited record (record length is the question, see below).

Every tomogram here is scored against a truth the method never saw

The ground is composed first, from sourced materials. The waves are computed through it by a solver that knows nothing about any inversion. The inversions see only what the sensors recorded, with noise, on a different grid. Whatever they draw is then compared with the chambers that are really there.

compose

Known ground

Test benches from one chamber to the claimed underworld, and Giza. Strata, sand cover, water table and von Kármán heterogeneity, all as data. See them in the underworld.

simulate

Waves through it

3-D isotropic elastic velocity–stress finite differences, fourth order in space, absorbing boundaries on the sides and floor, a free surface on top, air-filled chambers as traction-free cavities.

recover

What practitioners would draw

Travel-time tomography, ambient-noise tomography and full-waveform inversion, each run as it would be run in the field, then scored voxel by voxel.

The solver matches exact solutions to within a fraction of a percent

Before it touches a chamber, the forward model is checked where the answer is known exactly, in Mokattam limestone (P 3,300 m/s, S 1,830 m/s).

0.999worst correlation with the exact point-force response, every componentStokes · 12 points per wavelength
0.3%worst amplitude error against the same solutionStokes
-0.54%Rayleigh-wave speed error on the free surface at ten points per S wavelengthRayleigh equation
1.0000reciprocity: swapping source and receiver across a 16 m voidreciprocity
1×10⁻⁹of the peak energy left in the grid once the waves have goneabsorbing boundaries
Fig. 1a · Point force: up velocity, above the force, 60 m
exactsimulated
025507510012501time, msvelocity (scaled)

correlation 0.9992 · amplitude ratio 1.003

Fig. 1b · Point force: up velocity, broadside, 60 m
exactsimulated
0255075100125-101time, msvelocity (scaled)

correlation 0.9994 · amplitude ratio 1.003

Fig. 1c · Point force: east velocity, oblique, 59 m
exactsimulated
0255075100125-1-0.500.5time, msvelocity (scaled)

correlation 0.9994 · amplitude ratio 1.000

Fig. 1d · Point force: up velocity, oblique, 59 m
exactsimulated
0255075100125-101time, msvelocity (scaled)

correlation 0.9994 · amplitude ratio 0.999

Fig. 2 · Rayleigh-wave speed on the free surface
8101214161820-1%-0.5%0.0%points per minimum S wavelengthspeed error

measured by cross-correlation at 3 to 8 wavelengths; exact 1691 m/s from the Rayleigh equation

Fig. 3 · Energy left in the grid
5010015010⁻¹⁰10⁻⁸10⁻⁶10⁻⁴10⁻²1time, msrelative energy

C-PML, 12 cells on every face

Fig. 4 · Reciprocity across a 16 m void
east force → up velocityup force → east velocity
020406080100-101time, msvelocity (scaled)

correlation 0.99999 · amplitude ratio 1.004

p1_01_forward_validation2026-09-27 · 147.3 s · commit 3468943datacode
vp m s3,300
vs m s1,830
rho kg m32,400
materiallimestone-mokattam
grid90 × 90 × 90 cells at 2 m
points per S wavelength12.2
speed44 M cell-steps per second
environmentpython 3.11.15 · numpy 2.4.6 · numba 0.67.0 · threads 4 · cpus 4
source at3468943

Travel times catch the chamber's shadow from boreholes, and nothing from the surface

The one-chamber bench: a 6 m air-filled cube, its top 12 m down, in bare limestone. Every record comes from the solver above, with noise 30 dB below each record's peak; first arrivalsfirst break seismicThe first arrival of energy on a seismic record. Its timing, picked on every record, is the data of travel-time tomography. are picked by waveform correlation; the picks are inverted on a 1 m grid by a code that never sees the model. Air is 90% slower than the rock; a first arrival goes around the void instead of through it, so what travel times can see is the delay of the detour.

-11.3%speed recovered inside the chamber from four boreholescrosshole · 36 shots, 104 sensors
3.5×the chamber's anomaly against the tomogram's own scatter around itcrosshole
+0.0%speed recovered inside the chamber from the surfacesurface · 25 shots, 81 geophones
0.44ms95th-percentile pick error against straight rays, the precision the picks carrycrosshole picks
Fig. 5a · Crosshole: vertical section through the chamber
-10010-30-20-100east, mheight, m
slowerfaster±8%true chamberstations

relative P speed · sparker at 250 Hz · boreholes at ±12 m

Fig. 5b · Crosshole: horizontal section at the chamber's centre
-10010-10010east, mnorth, m
slowerfaster±8%true chamberstations

the four boreholes in ochre

Fig. 5c · Surface: vertical section through the chamber
-10010-30-20-100east, mheight, m
slowerfaster±8%true chamberstations

hammer at 120 Hz · the weak direct P picked on 16 stacked blows (3,259 m/s) · in uniform rock no first-arrival path reaches 12 m

Crosshole rays through the chamber recover it as a slow patch of -11% (air would be -90%): first arrivals bend around a void, so travel-time tomography sees its shadow, not its emptiness. From the surface, with the direct P picked on 16 stacked blows, the same method recovers +0.0%: in uniform rock no first-arrival ray reaches 12 m.

p1_02_traveltime2026-09-27 · 88.3 s · commit 7489f48+datacode
sitebench-void
sim spacing m0.5
f0 hzsurface 120 · crosshole 250
record ssurface 0.034 · crosshole 0.022
snr dbcrosshole 30 · surface (16 stacked blows) 50
inversion spacing m1
inversion boxx -18, 18 · y -18, 18 · z -32, 0
crosshole picks2808 of 2808 pairs · 95th-percentile error 0.44 ms
surface picks1063 of 2000 pairs after quality control against the survey's own pick spread (at short offsets the surface wave arrives within a quarter period of the P) · noise 50 dB below each peak (16 stacked blows at a quiet site; at 30 dB the direct P is lost under the surface wave)
inversionGauss-Newton, 6 iterations · smoothing 3 · damping 0.05 · 1 m cells
pickingcorrelation with the leading lobe of the far-field P pulse
viewerthe tomograms are in the underworld: bench-void, Show: Recovered
environmentpython 3.11.15 · numpy 2.4.6 · numba 0.67.0 · threads 4 · cpus 4
source at7489f48 (with local changes to the solver at run time)

The chamber's echo, too faint to see on any record, images it from the surface

The same hammer and geophone grids that saw nothing by travel times. Records are made twice, with and without the chamber; the difference is its echo. On a typical record that echo is 21 dB below the waves and 6 dB below the noise. Sent back through the rock by reverse-time migrationreverse-time migration seismicImaging by sending recorded waves backwards through a model of the ground and marking where they meet the waves sent forward from the source. It is the first step of full-waveform inversion., 25 shots and 81 geophones add up where the echo came from. The rock without the chamber is known exactly here, so this is the most favourable case for any waveform method: the first step of full-waveform inversionfull-waveform inversion seismicFitting whole seismic records, not just arrival times, by adjusting a model of the ground; each step is a gradient computed by propagating the misfit backwards in time., taken with a perfect starting model.

-21dBthe chamber's echo against the whole recordmedian over 2,025 records
-6dBthe echo against the noise on the same recordnoise 30 dB below each peak
6.0×the migrated image at the chamber against the image elsewherebelow 3 m, 2 m around the chamber
2.8mfrom the chamber's centre to the brightest point, on its top faceimage below 3 m
Fig. 6a · Echo image: vertical section through the chamber
-10010-30-20-10east, mheight, m
faintbrighttrue chamber

migrated echo amplitude, normalised · strongest at the chamber's top face, where the waves turn back

Fig. 6b · Echo image: horizontal section at the chamber's centre
-10010-10010east, mnorth, m
faintbrighttrue chamberstations

at the chamber's centre depth; geophones 4 m apart in ochre, those over the imaged area

The chamber's echo is 21 dB below the records and -6 dB against their noise; migrated back through the known rock it lights up the chamber at 6.0× the image elsewhere, brightest 2.8 m from its centre.

p1_03_scattered2026-09-27 · 999.5 s · commit 0eff4a5+datacode
sitebench-void
sim spacing m0.5
f0 hz120
record s0.034
snr db30
image boxx -14, 14 · y -14, 14 · z -30, -1
backgroundexact (the site without its chamber)
surveyA 5 x 5 hammer grid (8 m) over a 9 x 9 geophone grid (4 m), vertical impacts
imagingreverse-time migration, velocity cross-correlation, source-illumination compensation, Laplacian filter
backgroundexact: the site without its chamber (the most favourable case)
viewerShow: Recovered (echo imaging) and Show: Waves (the hammer blow; the echo alone)
environmentpython 3.11.15 · numpy 2.4.6 · numba 0.67.0 · threads 4 · cpus 4
source at0eff4a5 (with local changes to the solver at run time)

Noise stands in for the hammer, but its image of the chamber tops out at 2.2×, however long it listens

No hammer: 48 noise sources scattered over the ground around the same geophone grid, each a stream of random vertical pushes, like footsteps and traffic. Cross-correlating the noise at two geophones gives the wave one would send the other (interferometryambient-noise interferometry seismicCross-correlating the background hum recorded at two sensors turns it into the wave that would travel from one to the other, so noise can stand in for a source.), so every geophone becomes a virtual sourcevirtual source seismicA sensor made to act as a source: the correlation of its noise record with another sensor’s is the wave a real source there would have sent. Noise sources spread over the ground give it as minus the lag derivative of the correlation.. 16 of them are used as in echo imaging: the gathers predicted without the chamber are subtracted and what remains is migrated. The rock is known exactly and the noise field is averaged over an unlimited record, the most favourable passive case; a finite record adds fluctuations whose image falls as one over the square root of its length.

0.90correlation of the wave retrieved from noise with a real source's, 16 m apartminus the lag derivative of the noise correlation
2.2×the passive image at the chamber against the image elsewhere, with an unlimited recordactive echo imaging: 6.0×
neverof noise for the chamber to stand at 3× the rest of the imagefluctuations scaled from a 10 s realisation
7.3mfrom the chamber's centre to the brightest point of the passive imageimage below 3 m
Fig. 7a · The wave between two geophones 16 m apart
real sourcefrom noise
0102030-101time, msvertical velocity (scaled)

correlation 0.90 · the noise correlation's zero lag placed where the real source fires

Fig. 7b · Passive echo image: vertical section through the chamber
-10010-30-20-10east, mheight, m
faintbrighttrue chamber

migrated passive echo amplitude, normalised · unlimited record, rock known exactly

Fig. 7c · Contrast against the length of the record
passive3×
1 s1 min1 h24 h123noise recordedchamber / elsewherepassive3×

each image's fluctuations scaled from one realisation: migration is linear, their variance falls as 1/T

Noise correlations reproduce the wave between two geophones (correlation 0.90 with a real source). With the rock known exactly and an unlimited record, the passive echo image is 2.2x brighter around the chamber than elsewhere, and its brightest point lies 7 m from the chamber's centre. No record length reaches 3x: even averaged forever, the chamber's part of the correlations images away from it at 46% of its brightness around it.

p1_04_ambient2026-09-27 · 2,452 s · commit e563377datacode
sitebench-void
sim spacing m0.5
noise band centre hz100
response length s0.052
correlation lags s0.037
virtual wavelet delay s0.015
noise sources48
noise source arearandom over the ground within 24 m of the centre
geophones81
virtual sources16
backgroundexact (the site without its chamber)
fluctuation reference segments100
noise48 independent band-limited vertical force streams around 100 Hz, random over the ground within 24 m of the centre
retrievalensemble correlations computed exactly from each source’s response; the virtual wave is minus their lag derivative (Snieder 2004)
imaging16 virtual sources, reverse-time migration as in echo imaging, one data scale for every image so they add linearly
record lengtha finite record modelled as random source phases over 100 segments of 0.104 s
viewerShow: Recovered (ambient noise, passive)
environmentpython 3.11.15 · numpy 2.4.6 · numba 0.67.0 · threads 4 · cpus 4
source ate563377

Fitting whole records from a practitioner’s start finds the chamber as a −15.8% drop in S speed, 5.7× the scatter

The same noisy surface records echo imaging migrated, now fitted whole by full-waveform inversionfull-waveform inversion seismicFitting whole seismic records, not just arrival times, by adjusting a model of the ground; each step is a gradient computed by propagating the misfit backwards in time.. Unlike echo imaging, the rock is not given: the start is what a practitioner would have, uniform rock at the P speed the surface travel times gave (3,259 m/s) and an S speed from the textbook ratio √3 (1,881 m/s, 3% fast). Gradients of P and S speed come from correlating forward and adjoint stresses, checked against finite differences; traces within 4 m of their hammer are left out, and the iterations stop at the noise level or after ten; here after ten, just above it. The records were made with the same solver and grid the inversion uses (the “inverse crime”): the most favourable case for FWI, softened only by the noise and the wrong start.

-15.8%S speed recovered inside the chamber5.7× the scatter around it
-2.4%P speed recovered inside the chamber2.2× the scatter
1,866m/sbackground S speed after inversion, from 1,881true 1,830 m/s
0.37misfit left after 10 iterations, where the noise alone leaves 0.332,000 of 2,025 traces
Fig. 8a · FWI, S speed: vertical section through the chamber
-10010-30-20-100east, mheight, m
slowerfaster±15%true chamberstations

relative S speed against the inverted background

Fig. 8b · FWI, P speed: vertical section through the chamber
-10010-30-20-100east, mheight, m
slowerfaster±15%true chamberstations

relative P speed; for records dominated by the surface wave the P speed is the weaker constraint

Fig. 8c · Misfit against iteration
misfitnoise level
024681000.51iterationmisfit / startmisfitnoise level

L-BFGS with an illumination preconditioner; the noise level estimated from each record's quiet first 2 ms

From uniform rock at the travel-time P speed and a textbook S speed, ten iterations fitting the whole records bring the misfit to 0.37 of its start, against 0.33 for the noise alone. The chamber comes back as -15.8% in S speed, 5.7× the scatter around it, its slowest cell 1.8 m from the chamber's centre, in its upper half; in P speed only -2.4%. The background S speed moves from 1,881 to 1,866 m/s, toward the true 1,830. Of the surface methods, this is the only one to put the chamber where it is with the rock not given, in the most favourable case.

p1_05_fwi2026-09-27 · 7,599.8 s · commit 37baecddatacode
sitebench-void
surveyA 5 x 5 hammer grid (8 m) over a 9 x 9 geophone grid (4 m), vertical impacts
f0 hz120
snr db30
startvp_m_s 3259 · vs_m_s 1881 · from P1-02 surface travel times; Vs = Vp / sqrt(3)
stagesname full · h 0.5 · lowpass_hz — · iterations 10 · extent 28 · pml 16
boxx -19, 19 · y -19, 19 · z -30, -0.2
optimiserL-BFGS (memory 5), illumination preconditioner, 1-cell smoothing of the gradient, muted within 1.5-3 m of stations
misfitL2 on the velocity records, traces within 4 m of their source excluded; stop at the noise level
inverse crimethe full-band stage uses the grid and solver that made the records
startuniform rock: Vp from P1-02 surface travel times, Vs = Vp/√3
misfitL2 on the velocity records, traces within 4 m of their source excluded; stop at the noise level
optimiserL-BFGS (memory 5), illumination preconditioner, 1-cell smoothing of the gradient, muted within 1.5-3 m of stations
inverse crimethe full-band stage uses the grid and solver that made the records
viewerShow: Recovered (full-waveform inversion, S or P speed)
environmentpython 3.11.15 · numpy 2.4.6 · numba 0.67.0 · threads 4 · cpus 4
source at37baecd

The arrays are the ones near-surface surveys actually deploy

Active

A grid of three-component geophones at 1 to 4 m spacing and a source walked across it (hammer or weight drop), with realistic source repeatability and sensor self-noise.

Passive

A dense nodal array recording the ambient hum of traffic, wind and visitors. It is the seismic cousin of the radar claim: natural vibration asked to reveal what lies below.

Three inversions, from the classic to the state of the art

Travel-time tomographytravel-time tomography seismicFinding the speed of the ground from how long first arrivals take between many sources and receivers, by tracing their rays and adjusting the speeds until the times fit.

First arrivals picked from the records, bent rays traced through an eikonal solver, a regularised least-squares update. Robust, and blurred at a wavelength.

Ambient-noise tomographyambient-noise interferometry seismicCross-correlating the background hum recorded at two sensors turns it into the wave that would travel from one to the other, so noise can stand in for a source.

Noise cross-correlated between sensor pairs becomes the wave that would travel between them. In practice its surface-wave dispersion is inverted for shear speed with depth; here the correlations serve as virtual sourcesvirtual source seismicA sensor made to act as a source: the correlation of its noise record with another sensor’s is the wave a real source there would have sent. Noise sources spread over the ground give it as minus the lag derivative of the correlation. for echo imaging, the most a passive array can do.

Full-waveform inversionfull-waveform inversion seismicFitting whole seismic records, not just arrival times, by adjusting a model of the ground; each step is a gradient computed by propagating the misfit backwards in time.

The whole record fitted by adjoint-state gradients, from low frequencies up. The sharpest images near-surface geophysics makes, and the most demanding.

Detectability is a map over size, depth and array, not a yes or no

For each method and each chamber: the contrast recovered at the chamber against the spread of the background, the error in position and size, and the false chambers drawn elsewhere. Swept over chamber size, depth, array aperture, spacing and frequency, the result would be a map of where seismology succeeds and where it stops. The satellite, judged on the same ground, is beyond that map’s edge (the satellite).