Johnny Hu J&S Photo Studio
Fifty thousand frames to sort,
and without a tool that means one at a time.
So I wrote one.
Why
A single shoot runs to a thousand frames.
Culling takes longer than shooting,
and most of that time goes on discarding the obviously unusable —
camera shake, blown highlights, closed eyes.
A machine can judge those.
How
Sharpness from the variance of a Laplacian;
exposure from mean luminance.
Pure front end, one HTML file, no backend —
the photographs never leave the browser.
The mobile build carries it further: scan the album,
draft the caption, post to Instagram.
What it taught me
The first version silently skipped every file the browser could not decode,
and reported the input count as analysed.
On Chrome that meant every HEIC — a third of a library —
vanished without a trace.
For a culling tool that is the worst possible failure:
the frame is simply never offered.