Reveal
Insert a memory card. Click nothing.
A few minutes later a folder appears on the desktop. Inside: twenty-four photographs. Not the four thousand from the weekend — the twenty-four best, chosen, developed, with a film rendering already applied.
It is what it was to pick up your envelope at the lab.
Ingest · Develop · Print
You never saw your four thousand frames. You saw twenty-four, in a paper sleeve you opened on the kitchen counter. The edit had already happened — in the camera, in the price of film, in only having thirty-six chances.
Digital gave me unlimited latitude and took that away. Reveal is an attempt to get it back without giving up the rest: card detection, automatic import, automatic culling, development, and a real folder on a real desktop. None of those steps is new. What is new is that they happen without being asked.
Most photo software is built to be opened. This one is built so you don't have to.
The folder on disk is the source of truth
Not the application's database. That sentence was written in the README before the first line of code, and everything else follows from it.
- Originals are never modified.
- Metadata lives in sidecars — a standard
.xmpbeside each photograph, readable by Lightroom, Capture One, darktable, immich, and by anything at all in fifteen years. - The index is disposable. Delete it and it rebuilds from the folders. Nothing is lost.
If Reveal disappears tomorrow, the archive stays navigable in the Finder. The software was built so you could stop using it.
A darkroom, written in Rust
The development engine does not simulate a contrast slider. It simulates the chain: a film, a paper, an enlarger with its yellow and magenta filter shifts, a print illuminant.
That sounds like nostalgia. It isn't. A physical model doesn't do what you ask — it does what it does, and you learn it. Fifteen years of the job taught me to want exactly that.
Film and digital get separate engines, because they don't share a vocabulary. Forcing both into one interface produces a tool that lies to both.
Where it actually stands
Reveal is a personal project, in development. There is nothing to buy, nothing to sign up for, and no release date.
A Swift version runs every day and does real work. A rewrite in Rust, Tauri and wgpu is underway — and the Swift version stays the daily driver until the new one reaches parity. I don't get to break my own tool.
This page exists so the work is visible, not so it can be sold.