Windowsill Lab · Field Explainer · Astronomy From Open Archives

A detector that works,
aimed at a sky
that did not answer

The machinery is sound and the sky said nothing. Both halves of that sentence are the result.

24×tighter than required, on the control
6.6 vs 10.6real-sky peak against background
not recoveredthe graded verdict
A03

Listening for a bell you cannot hear

If you build a filter that can pull a known signal out of noise a thousand times fainter than itself, and then point it at the real sky and find nothing, what have you learned?

AI-painted illustration: the den window at night, two faint concentric ripples crossing the glass as though the pane were briefly disturbed, two small bright points close together beyond it, and a brass tuning fork resting on the sill in the near foreground
Illustration (AI-painted) — the pane itself briefly disturbed

When two neutron stars spiral into each other, the last minutes of the fall ring spacetime like a struck bell — a chirp, rising in pitch and volume until they merge. By the time it reaches Earth it is far smaller than the detector's own noise. You cannot see it. You cannot plot it. There is nothing to look at.

So you don't look. You take a mathematical description of the chirp you expect, slide it along the data, and at every offset ask how well the two agree. Noise agrees with a chirp only by accident, and only weakly. A real signal agrees enormously. This is matched filtering, and its output is a single number that climbs when the template and the data line up.

The lab built one from scratch — numpy alone, no astronomy libraries — and tested it honestly, by hiding a chirp of known size inside real detector noise and asking the filter to find it without being told where. It did, in both detectors, recovering the hidden mass 24 times more precisely than the published error bar demands. The machinery works.

Then it looked at the real event. Nothing.

Live · matched filter · slide the template, watch the sum SYNTHETIC STRAIN — INTUITION ONLY
A = 0.46 σ Mc = 1.19786 M☉


left · top, the clean chirp · middle, the same chirp buried in noise at your chosen amplitude · bottom, its spectrogram, where the rising sweep survives even when the waveform does not · right · the filter's output, in units of its own background scatter.

Start the amplitude high and the buried chirp is obvious in the middle strip. Drag it down. The waveform vanishes from the eye well before the spike vanishes from the filter — there is a wide range where you see nothing and the filter is still certain. Keep going and the spike sinks into the band. You will find the detection threshold by hand. Then flip to sky, and it is already below.

Now drag the template mass away from where the filter recovered it. The spike does not move; it collapses. A filter tuned to the wrong chirp is nearly as blind as no filter at all, which is why the real search is a grid of templates rather than one.

The peak on the real event barely reached 6.6 against a noise background that routinely touches 10.6 — no detection at all — and the two detectors did not even agree with each other about what they were seeing. That is the result, and it is amber rather than green for a reason the lab names itself: the test signal was built from the same family of equations as the search template. It proved the filter, the noise handling and the search grid. It did not prove that those equations describe a real pair of neutron stars, which carry spin, tides and structure this template leaves out. Closing that gap needs better physics in the waveform, not more computer time.
1.19782 / 1.19784recovered chirp mass, H1 / L1, of a hidden 1.19786 MEASURED
24×tighter than the published ±0.001 bar MEASURED
38.1 / 37.8control signal-to-noise, H1 / L1 MEASURED
6.58 / 6.55real-event SNR, against 10.59 / 10.79 MEASURED

The masses the real sky returns are 1.141 and 1.146 M☉ against a published 1.186 M☉ — agreeing neither with each other nor with the catalogue, which is what a non-detection looks like from the inside. The whitening was validated before any of this was claimed: 0.987 and 0.998 against an ideal of 1, with kurtosis 3.0.

Two things did land, unlooked-for and real. The filter found a known instrumental glitch in the Livingston detector — a 209-sigma spike, a second before the merger — without being told to search for it, and gated it out. (The panel above carries a synthetic version of exactly that: turn the gate off and watch one instrumental artefact swamp the entire search.) And on a different event entirely it independently picked out the loudest instant in twenty-four seconds of data, in both detectors, with the two agreeing on the timing to seven milliseconds — inside the ten-millisecond light-travel time between the two observatories, which is the only window physics allows.

That earlier event, GW150914, is also why the target moved. Its ISCO frequency is 67 Hz, so an inspiral-only template is simply the wrong tool for it. GW170817 spends roughly 3,583 gravitational-wave cycles above 25 Hz, which is what makes it the right target for this template — and makes the null informative rather than merely disappointing.

The test signal is drawn from the same 3.5PN template family as the search, so the control validates the filter, the whitening, the gating and the mass grid — it does not validate that the template describes a real source. A real binary neutron star carries spin, tidal and higher-order structure this waveform omits, and that mismatch, together with a single fixed mass ratio and a noise background real searches suppress with consistency vetoes, is the leading candidate for the gap. This is a reprocessing of public archival strain, not an independent detection, and nothing here is submitted anywhere. Reproducing the published value needs the waveform physics, not more compute.