The boring layer that makes the interesting layer checkable
Before any claim about structure in the data, something has to be able to say: this second of audio corresponds to these pixels, and here is the proof.
The Distinction Atlas is a small, strict pipeline. It reads a JWST file, a DESI file and a WAV, cuts them into matching windows, records exactly where every number came from, and proves the alignment is right.
That is the whole thing. It makes no scientific claim. It contains no learned model. There are no embeddings, no graph, no agents.
People reasonably ask why that is worth building first, when the interesting questions are all downstream — whether distinctions in the data persist under different mappings, whether a structure survives being rendered a second way, whether any of it can be falsified.
The answer is that every one of those questions is a question about a correspondence. “This feature persists across mappings” is only meaningful if you can establish that two renderings covered the same region of the same observation. If that link is loose, every conclusion built on top of it is loose too — and, critically, loose in a way that is invisible. The analysis still runs. The plots still come out. Nothing announces that the windows were misaligned by four seconds.
That invisibility is the entire argument. A pipeline that fails loudly can be fixed. A pipeline that silently correlates the wrong intervals produces results that look exactly like discoveries.
So the boring layer comes first: five kinds of object, content-addressed, with every decision recorded — which HDU was read, which arm, what the WCS said, whether uncertainty was present or assumed. Four kinds of synchronisation, each with its provenance. A validation pass that refuses to sign off on a run whose alignment cannot be demonstrated.
The synthetic fixtures are seeded, so the same call writes the same bytes every time. That is what makes the hash-stability tests mean anything, and it means the whole demo runs with no network and no real data.
None of this is a result. It is the condition under which a result would be worth having.