Dawn
Dawn is a cross-platform colour-managed image browser, with high standards for fidelity and responsiveness.
See Why you need a better image viewer if you feel lost.
Design-wise, the project is an amalgamation of older efforts and desires. Right now, we’re close to our first milestone. Once we declare the viewer part done, we’ll clean up after rapid development, and move on to tackling the next major goals.
Features
We care about
-
Wide-gamut, high-bit-depth SDR: 10-bit displays in Adobe RGB or Display P3.
-
16-bit internal precision in order to minimise quantisation errors.
-
Gamma-correct scaling: see below for a test that your iPhone fails.
-
Good scaling: GIMP’s NoHalo is an awesome compromise for upscaling both photos and man-made images.
-
Loading as much as we can from any file format at the best possible quality: multi-page TIFF, 16-bit PNG, 12-bit JPEG, etc.; at least 65535 pixels on one side.
-
Making good use of computing resources: exercise the GPU and all CPU cores.
-
Superb keyboard accessibility: we recognise HIGs and also have Vimium-style link hints.
-
We never silently move or modify image files.
Do it yourself
-
HDR: the project scope is huge as it is, but you’re welcome to lend a hand.
Rejected
-
Image editing: GIMP works well enough already.
-
UI animations are seen as distracting, frustrating, and even irritating.
Packages
-
Latest Linux Flatpak, Arch Linux AUR.
-
Latest Windows ZIP, Windows installer; they work in Wine.
-
Latest unsigned macOS Apple Silicon bundle needs either
xattr -r -d com.apple.quarantine …, or $99 a year.
On Windows, if you run the application with a high integrity level and you have no true Vulkan backend installed, it may not initialise. Manually rename vk_swiftshader.dll to vulkan-1.dll. You will obtain software rendering.
Building
See Building from source.
Configuration
See Configuring your system. If everything goes beautifully, the following test image will exercise your display’s true gamut, and you’ll also be able to see the finer steps. The bottom row should look more like ‘linear 188’, not ‘128’ (a popular bug).
Note that Dawn currently implements Bayer dithering for 8-bit swapchains, which you may need to turn off in settings to observe the difference.
Competition
The macOS Preview.app is excellent at what it does, if limited in scope: it effortlessly handles wide gamuts, high bit depth, and gamma-correct scaling.
Electron-based viewers like Light Matter are promising in that browser engines typically handle things well, at the cost of being rather heavyweight.
digiKam must be mentioned, as it covers a lot of the advanced features of this project. Sadly, it’s obviously been designed by programmers, and the programmer behind Dawn can’t make heads or tails of the UI.
Acknowledgments
-
Darrell R. Commander for libjpeg-turbo
-
Marti Maria for Little CMS
-
Nigel Tao for Wuffs
Contributing and Support
Use https://git.janouch.name/p/dawn to report any bugs, request features,
or submit pull requests. The lead developer also accepts git send-email.
If you want to discuss the project, feel free to join at
ircs://irc.janouch.name, channel #dev.
Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9
License
This software is released under the terms of the MPL 2.0 licence, the text of which is included within the package along with the list of authors.
With Little CMS plugins bundled in, the binary package becomes GPL-licensed.

