The cameras that embed no preview at all
Fast RAW browsing works because your camera hides a JPEG inside every file. Some cameras don't — Hasselblad, Phase One, the Leica M8 — and that's where culling software quietly falls over.
Lamplit
Here is the trick behind every fast RAW browser, including this one: it is not decoding your RAW file.
When your camera writes a CR3 or a NEF or an ARW, it also writes a fully-formed JPEG inside it — the same image you see on the back of the camera. Decoding that JPEG is ordinary work. Demosaicing the raw sensor data is a different order of problem entirely. So a culling tool finds the embedded preview, shows you that, and gets out of the way.
This is not a shortcut so much as the whole design. It is also the difference between a culling tool and a raw converter, and why the two feel nothing alike.
Then you plug in a Hasselblad
Some cameras write no embedded JPEG whatsoever.
Open a folder of Hasselblad 3FR files in most fast viewers and you get a grid of grey rectangles. Same with Phase One IIQ. Same with a Leica M8’s DNG files. Same with a Canon PowerShot running CHDK — hacked firmware writes a CR2 that is technically valid and contains nothing you can display quickly.
These are not obscure toys. A medium-format back is what someone shoots when the job is worth shooting on a medium-format back, and “my £30,000 camera produces grey squares in your software” is not a small bug.
The ladder
Lamplit works down a ladder and stops at the first rung that puts a picture on screen.
One: the format-specific parser. Walk the IFD chain with a parser written for that maker and pull the preview out. This is the normal path, and it is the one that runs for almost every file you will ever open.
Two: a generic scan. If the maker-specific walk finds nothing — different firmware, unusual variant — scan the file generically for an embedded JPEG, holding candidates to a quarter-megapixel quality gate so we don’t ship you a 160-pixel thumbnail when a real preview exists further in.
Three: the relaxed scan. Drop the gate. Take any decodable embedded JPEG of at least 96 pixels with a sane aspect ratio. A small preview genuinely beats a blank tile; you can still tell whether the frame is a keeper.
Four: TIFF-RGB rescue. This is the one for the Hasselblads. Files with no embedded JPEG frequently still carry an uncompressed 8-bit RGB thumbnail in the IFD chain or a SubIFD — not a JPEG, just raw strips of pixels. Decode those strips, encode a JPEG from them, and you get something. It is small — roughly 220 to 300 pixels for a 3FR or an IIQ, 320×240 for an M8, a mighty 128×96 for a CHDK PowerShot — but it is a photograph, in the grid, where a grey rectangle used to be.
Five: fail properly. If every rung misses, the file is logged and skipped. Crucially, the failure is not cached as a success. A file that fails today gets another go once the parser improves, instead of serving a stale nothing forever.
Why write it down
Because nobody in this category explains any of this, and it is the difference between “supports RAW” as a marketing phrase and as a fact.
Every rung above corresponds to real files we hold from real bodies, run end-to-end by an automated harness against 40 real camera files. The results — which formats, which cameras, what preview size each one yields, and the two formats we know don’t work — are on the formats page, including a Kodak DCR whose thumbnail is a JPEG-in-TIFF the ladder doesn’t decode, and a Minolta MRW we won’t claim either way because our only sample is corrupt.
If you shoot something exotic, we want the file. One frame from an unusual body is the most useful thing you can send us, and it is how bodies get onto that page — never before.