Open in its own tab ↗

8.13 A raw developer in the browser⧉

This part ended with a claim: a raw editor is a programmable ISP exposed to the user (Chapter 8.12, Recap ISP, non-destructive editing). Here is one you can drive. It is a working develop module and a small library, built from the algorithms of this part, running entirely in this page. Import your own raw files or start from the samples; your photographs are processed locally, and edits are stored as a recipe while the original stays untouched.

The controls connect the chapters to a complete pipeline. White balance changes linear channel gains, tone controls reshape values, and the Detail panel combines noise reduction and sharpening. Use the control help and Under the hood view to inspect how an adjustment is computed and where it runs.

Start with a neutral profile and compare it with a stronger camera look at similar brightness. Then inspect a bright sky with the clipping overlay enabled. Distinguish a warning based on raw saturation metadata from clipping introduced by the current rendering. Reducing exposure can bring the latter back into range; it cannot restore an independently clipped sensor channel. In editors that offer cross-channel highlight reconstruction, it estimates the missing value rather than recovering the clipped measurement; this application does not provide that control. Inspect the magenta sensor-clipping overlay at 1:1: the fit-view proxy averages Bayer quads and can hide individual saturated photosites.

The implementation also exposes the relationship between the mathematical operations and their execution. Compatible point operations can be fused into a table pass, while spatial operators need their own neighborhoods and passes. The Under the hood view lists the plan, the pointwise stages combined into LUTs, and measured stage times. Changing a slider can therefore teach two things at once: what its operation does to the photograph and what work the pipeline must perform to show it.

Runs entirely in this page; photos you import stay on your machine. Open it full-screen ↗