Lightbox
A Bridge + Camera Raw replacement, built overnight.
Sept 5 2026 · installed at /Applications/Lightbox.app · verified against your 158 Santa Cruz ARW files
It's built, installed and working. It reads the .xmp sidecars Camera Raw
already wrote, so your existing edits opened straight into it — the Santa Cruz shots came
up with your exposure, highlights and vibrance already on them, and anything you do here
opens back in Bridge.
Do this first
1
Right-click Lightbox in Applications → Open → Open. Once only, because it isn't notarised.
2
Click Open Folder and pick your photos. On an external drive that click is what grants macOS access — after it, the folder reopens by itself every launch.
3
Set the name box (top right) to whatever you want, e.g. SantaCruz_{seq}, and hit Export. The counter keeps going between sessions so a second batch never overwrites the first.
Head to head against Bridge 2026
| Same 158 Sony ARW, same USB drive, cold | Bridge | Lightbox |
| Launch to a usable window | 23.0 s | 1.7 s |
| All 158 thumbnails on screen | 10.9 s | 0.82 s |
| Colour slider while dragging | blocked | 23 ms |
| Export one file with a custom name | not possible | 1 click |
| Paste a look onto 40 frames | 4 clicks + 2 keys | 2 keys |
| Works with no internet or licence | no | yes |
Bridge numbers are measured, not quoted: a separate agent ran Bridge 2026 on the same
folder with a cold cache and timed it against Bridge's own logs.
Something you should know: Bridge is broken on your Mac. It self-terminates
80 seconds after every launch, every time, with License Expired. Its
log shows it cannot fetch an Adobe identity token, so a fixed 75-second timer expires and
it quits. Camera Raw refuses to open at all: "Camera Raw editing is not enabled."
Photoshop 2026 is signed in and fine, so your subscription is not the problem, it's
Bridge's own token handshake. Worth knowing that the thing being replaced had already
stopped working.
Lightbox on its own numbers
| Folder open to full thumbnail grid | 0.82 s |
| Colour slider drag | 23 ms |
| Exposure / white balance drag | 104 ms |
| 1:1 zoom to check focus | 154 ms |
| Full 24 MP export to JPEG | 280 ms |
Both apps read the JPEG preview already embedded in each RAW rather than demosaicing.
That is the right trick and Bridge does it too; Lightbox is faster because it does not
spend 5 seconds on a licence round-trip first.
The part you actually asked for
Copy one look onto the whole shoot. Match a frame, select the rest, ⌘V.
It pastes tone, colour, curve and detail but leaves each image's own crop alone, because
the previous frame's crop is never what you want. ⌥⌘V lets you pick
exactly which groups travel, and greys out the ones the copied frame never set.
⌘Z undoes the whole batch — that was the one irreversible thing in
the app until it wasn't.
Blanket rename. ⇧⌘R, pick a pattern, see the first few results
before committing. Sidecars follow their images. It renames in two passes, so shifting
001→002, 002→003 doesn't eat files the way a single pass does.
Keys
←→ next / previous
⌘C⌘V copy / paste settings
⌥⌘V paste some
\ hold for the original
Z 1:1
0-5 stars
6-9 labels
E export
GL grid / loupe
⇧⌘R rename
Verified, not assumed
- 22 functional checks pass: sidecar round-trip, blanket paste, export naming and counters, overlapping renames.
- Every tone slider was measured to move the image the direction its name says. Two didn't at first — Whites was inverted, and shadows were being applied twice (once by Apple's decoder, once by mine, which read as haze). Both fixed and re-measured.
- None of your originals were touched. No
.ARW or .xmp on the drive was modified during any of this.
What it can't do yet
- No crop or straighten handle.the real gap The model, the render pipeline and the sidecar all carry a crop, so it survives a round-trip with Bridge — there's just nothing to drag yet. This is the first thing I'd add.
- No tone-curve editor. Curves are applied and read from sidecars, but have no UI.
- Dehaze approximates ACR rather than modelling haze. Rotated ACR crops import as their bounding box.
- Rebuilding the app resets the macOS folder grant, since the signature changes. One click on Open Folder fixes it.
Sharing it
~/Lightbox/dist/Lightbox-1.0.zip — 1.9 MB, self-contained, no Adobe and no
dependencies. Your friends need the same right-click → Open on first launch. Source is at
github.com/roninfaction/lightbox (private).
The colour engine, rebuilt
The first build rendered flat, plasticky images and you were right to call it unusable.
It was three architectural faults, not bad tuning, and it is rebuilt and calibrated
against Camera Raw's own output.
- The decoder was handing over pre-cooked pixels. Apple's RAW decoder applies its
own tone curve and clips at 1.0 by default, so every slider was working on already-clipped
data and highlight recovery genuinely did nothing. Measured: default decode tops out at
1.000, linear decode tops out at 2.697. That's 1.4 stops of headroom thrown away
before the first adjustment.
- Tone was computed in too narrow a colour space, so a saturated pink left the
gamut and each channel was clipped separately. That is exactly what turned the hoodie into
a flat sticker: clipping per channel destroys the shading inside the colour.
- The curve was luminance-only, which keeps colour fully saturated as it gets
brighter. Film and Camera Raw do the opposite, letting bright saturated colour fall toward
white, and that falloff is what your eye reads as texture.
It now decodes linear and scene-referred, works in wide-gamut, and runs a filmic curve with
a real shoulder as a single Metal kernel per pixel, compressing out-of-gamut colour instead
of clipping it.
Calibrated, not eyeballed
Camera Raw is the reference. A script drives Photoshop to render your RAWs through ACR, and
those become ground truth to fit against.
| Fitted | Result |
| Baseline exposure, against nine luminance percentiles on two frames that carry no
sidecar, so ACR's own defaults are the target | RMS 0.0115 |
| Sharpening, against measured edge acutance at 1:1 (was 63% of ACR) | 100% |
| Saturation across four frames | within 0.033 |
And it got faster
| Before | Now |
| Colour slider drag | 23 ms | 17 ms |
| Exposure drag | 104 ms | 17 ms |
| Full 24 MP export | 280 ms | 330 ms |
Exposure moved out of the decoder and into the kernel, where in linear light it is just a
multiply. That means dragging it reuses the cached demosaic instead of re-decoding the RAW.
Where Bridge still wins
- Batch Rename's token model is better than mine. Ten token types, stackable rows,
six sequence widths. Mine has nine tokens in one text field.
- Per-tile crop badges, which I can't show because there is still no crop tool.
- Dehaze, Clarity and Texture are approximations here, not ports of Adobe's
algorithms. Noise reduction is Apple's. There is no lens-profile database.