Atelier05
Nine local-first browser tools for your captures — cull, DJI telemetry, overlays, flight maps, LUTs, scopes — sharing one library. Nothing leaves your machine.






- Timeline
- May 2026 —
- Role
- design + build
- Author
- Steeve Pommier
- Stack
- WebFilesystem, TypeScript, React, Vite, ffmpeg.wasm, mp4box, MapLibre GL, Tailwind CSS
Everything runs in the browser. No upload, no account, no server — your footage stays on the disk it is already on.
The nine tools
- Cull — rate 1–5, flag picks and rejects, filter to the keepers, copy them into an album folder on disk.
- DJI Telemetry — flight telemetry read in sync with the clip it came from.
- Telemetry Overlay — place altitude, GPS and exposure readouts on a clip and export an MP4 with them burned in.
- Flight Map — trace a clip's GPS path and scrub the video along it.
- Composer — clip, flight map and a draggable readout in one framed composition, exported to MP4.
- Photo EXIF — camera, lens, the full exposure triplet and GPS, read straight from the file.
- Compare A/B — two photos or clips under a draggable divider, playback synced when both are clips.
- LUT Studio — preview and batch-apply
.cubeLUTs in real time. - Scopes — histogram, waveform and vectorscope, live as a clip plays.
Why the telemetry tools exist
When a DJI drone records, the card holds the .mp4 and a same-named .srt. That .srt is not subtitles — it is per-frame flight telemetry wearing the SubRip format. It records where the aircraft was but not how fast it was moving, so Atelier reconstructs ground speed, vertical speed and heading from successive GPS fixes.
Structure
A tiny shell plus self-contained tools over a shared core. The masthead nav and the routes both derive from one tool registry, so a new tool is one registry entry and a component. Routing is hash-based, which deep-links cleanly on static hosting.
The single network exception is the Flight Map's optional base map: turning it on fetches tiles from OpenStreetMap, which reveals the viewed area to that server. It is off by default, and the flight path always draws locally.










