← Projects

Rust · Signal processing · Diagnostic tooling

Voyager Golden Record Explorer

Voyager Golden Record Explorer is a Rust/egui application for recovering the images encoded in NASA's Voyager Golden Record audio. It turns noisy analog source material into inspectable, adjustable, exportable image reconstructions, with diagnostics for understanding what the signal is doing rather than just hoping the decode looks right.

The problem

The Golden Record images are encoded as audio, so reconstruction is part signal-processing problem and part interface problem. You need to detect sync, correct slant, normalize uncertain analog levels, inspect the waveform, and iterate quickly enough that exploration does not become a pile of one-off scripts.

What I built

How it works

I built the explorer as an interactive decoding bench rather than a single “convert this WAV to an image” script. The audio is loaded once, navigated through a waveform view, and decoded through a baseband slow-scan pipeline that looks for line sync, estimates line boundaries, corrects slant, resamples into pixels, and normalizes the result into an image you can actually inspect.

The controls exist because the source material is analog and imperfect. You can adjust polarity, gamma, normalization, sync interpretation, and decode windows while seeing the result change. The diagnostics mirror the UI path: decode runs, spectrograms, sync detection, segmentation, statistics, and excerpt carving all produce evidence about what the signal is doing.

Decode pipelineThe audio is treated as an inspectable signal path, not a black-box converter.

Decode pipeline diagram viewer

100%

Scroll to zoom · drag to move

Responsive exploration loopLong-running decode and diagnostic work stays behind a queue so the UI can remain interactive while stale work is cancelled.

Responsive exploration loop diagram viewer

100%

Scroll to zoom · drag to move

Visual evidence from the record

These are not mockups. The cover image comes from the project assets, and the decoded frames below were generated from the local Golden Record audio with the project's own CLI. They are imperfect in the useful way: the sync stripes, slant, analog noise, and contrast decisions are visible, so the page shows the actual reconstruction problem instead of pretending the output falls out cleanly.

The Voyager Golden Record cover diagram
The Golden Record cover is the instruction manual: playback speed, image timing, calibration, and where Voyager came from.
Spectrogram of the first decoded Voyager Golden Record image frames
A spectrogram over the first decoded frames, with frequency markers, used to sanity-check the signal rather than just stare at pixels and hope.
Decoded Voyager Golden Record calibration circle
Calibration circle
Decoded Voyager Golden Record measurement diagram
Measurement diagram
Decoded Voyager Golden Record image of Earth
Earth frame
Decoded Voyager Golden Record anatomical image
Anatomy frame
Decoded Voyager Golden Record fish image
Fish frame
Decoded Voyager Golden Record instruction diagram
Instruction diagram

How it achieves the goal

The goal is not just to get a recognizable Golden Record image once. The goal is to make reconstruction explainable and repeatable. The app achieves that by tying visual exploration to reproducible analysis: every promising image can be traced back to the sync choices, window, normalization, and decode parameters that produced it.

The worker system keeps that exploration responsive. Long-running decodes and diagnostics run behind queue-depth tracking, cancellation, stale-result suppression, health checks, and restart logic, so the interface stays usable while the signal-processing work happens underneath. It is a tiny lab bench for a beautiful, weird artifact from deep-space history, which is exactly my kind of nonsense.