Desktop & tooling
Skera
A viewer that edits, without ever leaving the picture.
- Role
- Sole author — C++ application, decode engine and cache
- Period
- 2026
- Status
- Live
The problem
Everything that can open a camera RAW file wants to own the library first: import the shoot, build a catalog, work inside it from then on. That is a fair trade while editing and a bad one while simply looking at what you shot. The alternative — the operating system's own viewer — stalls on a full-resolution frame and cannot read RAW at all.
The approach
Skera keeps the viewing and drops the library. It points at a directory on disk, sorts it the way a file browser would, and starts decoding — no import, no catalog, no database. It can adjust and save a photo too — White Balance, Tone, Presence, an eight-channel HSL panel — but every edit stays a live preview until Save or Save a Copy; nothing on disk changes on its own. The speed is architectural: decoded frames live in a cache budgeted in bytes, decoding runs off the UI thread in priority order, and the neighbouring images are read before they are asked for.
What it does
RAW without an import step
Sixteen RAW formats across ten manufacturers — Nikon, Canon, Sony, Fujifilm, Olympus, Panasonic, Pentax, Adobe, Sigma and Hasselblad — decoded through libvips and libraw on macOS and Linux. The Windows build ships without that decoder and handles the standard formats only.
White Balance, Tone, Presence and Color
A collapsible panel — Temp/Tint, Exposure/Contrast/Highlights/Shadows/Whites/Blacks, Vibrance/Saturation, and an eight-channel HSL group — previews live with no re-decode per drag. A rotation-only edit rewrites just the EXIF tag, no re-encode; Save a Copy never touches the original.
The whole EXIF record
Camera body, lens, exposure, ISO and GPS, read locally through exiv2 on all three platforms and shown one keypress away.
Side-by-side compare
Pin one image as A and sweep B beside it with zoom and pan linked across both panes. Both are pinned in the cache, so neither is evicted mid-comparison.
A cache measured in bytes
An LRU cache budgeted at 768 MB of resident decoded pixels rather than a file count, so a single 60-megapixel RAW cannot quietly evict forty JPEGs. Queued decodes are dropped and running ones abort when you move past them.
Image-first by default
The toolbar and filmstrip float over the photograph and hide on a keypress, leaving nothing but the picture on true black. Every action has a key.