Double-click a file and the picture is already there - in the colours the photographer chose, with the headroom the display was bought for.
Opening an image should not be an event. Most viewers make it one: a white flash, a spinner, a second of nothing while a 24-megapixel JPEG decodes. And when the picture finally lands, the colours are often not the ones in the file
- the profile it carries was ignored, so the same photograph looks oversaturated here and correct in the editor it came from.
nitid closes both. The embedded thumbnail is on screen in single-digit milliseconds while the full image decodes behind it, and the file's colour profile is converted against the display's own profile in the shader, every frame, for free. On an HDR display the output is extended-range linear light, so highlights drive the headroom instead of clipping at white.
nitid is Latin for clear, bright, sharp - the name describes the
difference, not the function.
- The picture before the decode finishes. Thumbnail first, full image behind it, neighbours prefetched - arrow keys never wait.
- Colours that mean something. ICC on the GPU; a file with no profile is passed through untouched, exactly as every browser shows it.
- HDR that follows the display. Turn it on or off in Windows and the surface is reconfigured without a restart.
- Every modern still format, decoded in pure Rust - JPEG, PNG, WebP, JPEG XL, HEIC, AVIF, SVG, GIF, BMP, TIFF - and the animated ones play.
- Tools for reading a picture, not just looking at it: histogram, loupe, clipping warning, an eyedropper that reads in the file's terms and the display's.
- A copy without the camera, the date and the place.
Ctrl+Mstrips EXIF, XMP and IPTC by not copying them - no encoder runs, so the photograph you send is the photograph you took. - One window. Opening a second image hands it to the viewer already running, so a multi-select does not scatter windows across the desktop.
- Nothing that phones home. The process that decodes the heavy formats has no network in either direction.
$ nitid photo.heicThe window is up in about 11 ms, the picture on screen at about 128 ms - from
process start, on a 24-megapixel file. Run with NITID_STARTUP_REPORT=1 and it
says so for your own machine:
window created at 11 ms
gpu ready at 118 ms
thumbnail up at 128 ms <- the picture is on screen here
first pixels in 146 ms
nitid: surface Rgba16Float ExtendedSrgbLinear, display headroom 7.71x
That figure is held by tests/startup.rs, so a change that puts a full decode
back on the startup path fails the build rather than quietly costing a tenth of
a second.
From there, arrow keys walk the folder, ? shows every key, I says what the
file says about itself, H draws a histogram of its own values, and C reads
the pixel under the pointer in both the file's terms and the display's.
P and X mark a picture as kept or rejected while you go through a shoot,
and M then walks only the ones you marked.
Download the zip from the latest release, unpack it anywhere, and run:
nitid install
This copies nitid to %LOCALAPPDATA%\Programs\nitid, registers the file types
it opens, puts that directory on your PATH, and leaves a desktop shortcut -
no administrator, nothing outside your own user account. nitid uninstall
removes all of it.
Windows keeps the choice of default application to itself, so after installing, pick nitid under Open with -> Choose another app and tick Always use this app. Full instructions: Getting Started.
v0.34.1, in daily use on Windows. Startup, colour and HDR hold end to end; every modern still format opens and the animated ones play; images past what a GPU texture can hold are drawn as tiles; a picture can be cropped, turned and stripped of its metadata without an encoder ever running, and a shoot can be culled into a selection Explorer itself can see. The chrome wears the lacodda line's colours in light and dark, straight from its design tokens. What landed in each version: CHANGELOG.
lacodda.github.io/nitid - keys, formats,
colour and the decisions behind them. Architecture decision records are in
docs/adr/.
Building it yourself: CONTRIBUTING.md.
MIT (c) Kirill Lakhtachev