Tone Mapping Explorer
Outer ring: chroma 0.20
Follow a family of colors through one tone mapper. Select a swatch or drag a curve to inspect hue movement and loss of colorfulness.
Load a local 3D .cube with DaVinci Wide Gamut / DaVinci Intermediate input and Rec.709 Gamma 2.4 output. Exposure is applied in scene-linear light before the input conversion. The LUT uses tetrahedral interpolation; inputs outside its domain are clamped and flagged in JSON. Output is decoded with power 2.4 and re-encoded for the browser, with no additional tone mapper. Display P3 changes the input family and browser encoding; it does not turn the LUT into a P3 film transform. LUTs capture color and tone only, not grain, halation, or other spatial effects. This is the supplied emulation's response, not a physical prediction of Kodak film. Files are read locally, retained only in this tab, and never uploaded.
ACES 1 uses the SDR Video output from OCIO’s ACES 1.3 config. ACES 2 uses the 100-nit SDR output from its ACES 2.0 config. Both are sampled 65³ LUT approximations with a logarithmic input shaper and tetrahedral interpolation; neither is the previous one-dimensional “ACES fitted curve.” Exact versions and transform names are included in JSON.
Clip and Reinhard act per channel in the selected RGB primaries. AgX remains the published minimal approximation in linear Rec.709 working primaries, not Blender’s reference view transform. P3 inputs are converted into those working primaries before AgX, with explicit guards for its log-domain limits; its output is converted into Display P3 before the final clamp.
Khronos PBR Neutral evaluates the reference equations directly in linear Rec.709. In Display P3 mode, applying those equations in P3 primaries is an extension, not the Khronos specification. OpenDRT evaluates a direct port of v1.1.0 Standard at 100 nits, with 10-nit grey, D65 creative white and bright surround. Its hue and purity modules are included. The display-linear result is encoded using the browser’s sRGB transfer function instead of the reference display preset’s power 2.2 encoding. Other Resolve looks, surrounds and display settings can produce different results. Neither new model uses a sampled LUT.
Display P3 uses D65 and the sRGB transfer function; this is SDR, not HDR or cinema DCI-P3. P3 swatches use tagged CSS colors and the plot requests a P3 canvas. The browser and display determine what is actually visible. A Mac does not make untagged RGB values P3 automatically. Any sRGB-only canvas fallback is identified beside the gamut switch.
Hue is undefined when input or output chroma is below 0.01. “Of input chroma” is a ratio of OKLCH C, can exceed 100%, and is not a calibrated saturation percentage. Deltas compare against original inputs, not mapped EV 0. The connecting skin is illustrative; opaque swatches are the output color reference.
Drag a curve to scrub exposure. Drag empty space to orbit; scroll to zoom; Shift-drag or middle-drag to pan. Arrow keys orbit, +/− zoom, 0 resets. In Unwrapped, drag empty space vertically to scrub exposure. Playback stops at +8 EV and pauses when the page is hidden.
Model references and attribution
All sampled inputs and outputs, the chosen response, exposure, metrics, and assumptions. JSON preserves full precision; CSS uses sRGB hex or tagged Display P3 values. PNG captures the plot and its display settings.