There is a radio telescope in Australia called Parkes. It is 64 meters of dish, government funded, professionally operated, and it has spent hundreds of hours pointed at the nearest star to the Sun. Every volt that came off that dish during those observations is public. Berkeley published it on purpose. The Breakthrough Listen open data archive exists because the professional SETI crowd openly hopes that amateurs will find analysis methods they have not thought of yet.
So I built a signal hunting pipeline on my spare time. This page is the story of what it does and what it has found so far. Spoiler for the ending: it has found nothing, which turns out to be the interesting part.
The data
Breakthrough Listen watched Proxima Centauri across many separate sessions, called epochs, spread over most of a year. Each epoch is a set of six recordings. Three are pointed at the star (ON) and three are pointed at empty sky nearby (OFF). Each recording is about 12 GB of fine resolution HDF5 data covering roughly 700 MHz of bandwidth around 3 GHz. The instrument records thousands of frequency channels, and a hypothetical alien transmitter parked on some frequency would appear in those channels as a narrow spike.
The problem is that so does everything else. Cell towers, satellites, power lines, the telescope’s own electronics. A single epoch produces roughly 900,000 narrowband spikes. Essentially all of it is interference. The hunt is a filtering problem, not a detection problem.
The ladder
The pipeline is a ladder of filters. Each rung kills a class of false positives, and anything that survives all of them earns the word candidate. Here is the ladder, and the reasoning behind each rung.
- Drift search. turbo_seti, the standard Berkeley tool, scans every recording for narrowband signals and measures how each one drifts in frequency over time. A transmitter on a moving planet or in orbit drifts. Local interference mostly sits still. This produces the raw spike list, about 900,000 per epoch.
- ON/OFF rejection. A signal that appears in both the ON pointings and the OFF pointings is coming from Earth, not from the star. Only signals present in ON and absent in OFF survive this rung.
- Barycentric correction. The Earth moves. Our velocity toward the target changes across the year, Doppler shifting every observed frequency. The pipeline computes the line of sight velocity for the exact observation time and corrects every spike to the solar system barycenter, the fixed reference frame. A real transmitter at the target then shows the same corrected frequency in every epoch.
- Cross-epoch matching. This is the killer rung. RFI cannot fake barycentric consistency across observations taken months apart, because interference does not know where the Earth was. A signal must appear at the same corrected frequency in multiple epochs, in ON frames only, to survive.
- Incoherent stacking. Even a signal too faint to detect in any single epoch can be pulled out of the noise by averaging the corrected spectra of all epochs. Noise averages down as the square root of the count; a persistent signal averages up linearly. Six epochs stack to 2.4x sensitivity, and the sensitivity keeps climbing as epochs are added.
The dashboard
Running all of that by hand would be miserable, so the pipeline has a full web dashboard. It downloads the data, runs the searches, tracks every scan, applies the corrections, runs the cross-epoch search, and plots the stacks. It also has a sky map, a target registry that resolves any star’s coordinates from SIMBAD, and a catalog browser that sweeps the entire Breakthrough Listen archive to find which stars actually have high resolution cadence data worth searching.



The score so far
Six Proxima epochs are fully processed. The database holds 4,909,152 detected spikes. After ON/OFF rejection, barycentric correction, and cross-epoch matching, the number of surviving candidates is zero.
Zero sounds disappointing, but it is the system working. A pipeline that produced candidates from six epochs of a quiet red dwarf would be producing false positives. What the zero actually says: the filters are tight enough to process five million detections and leave nothing standing, which means that when something does stand up, it will mean something.
Scaling up
Proxima was the testbed. The catalog sweep has now mapped the entire Breakthrough Listen archive, and 398 targets carry survey grade cadence data, three or more epochs with both ON and OFF pointings. That is the shortlist. The survey runs the same ladder on each of them, one at a time, with the same dashboards and the same stubborn filters.
Build your own
The whole project is open source and MIT licensed: github.com/w4gon79/backyard-seti. It is Python 3.11, the Berkeley tools, and a Flask dashboard. Point it at any target in the Breakthrough Listen open data portal and the pipeline does the rest. The data is sitting there waiting. Berkeley asked for amateur help. This is mine.