Auric Artisan · Documentation
Tone Mapping User Guide
A complete workflow guide for testing HDR and SDR tone mapping operators, source encodings, color-space conversions, exposure, grading, gamut mapping, scopes, overlays, A/B comparisons, LUT exports, batch color analysis and Library saves.
Overview
Tone Mapping Lab is a browser-based HDR rendering workbench. Use it to compare filmic and photographic tone mapping operators, adjust source and output display assumptions, grade color, inspect scopes, detect out-of-gamut behavior, export LUTs, and save repeatable presets for review.
1. Open the Lab
+- Tool URL: open Tone Mapping Lab.
- Default state: the lab starts with the HDR test scene, linear scene encoding, Rec.709 source primaries, D65 source white, Hable filmic operator, ACEScg working space, soft gamut compression, sRGB target primaries, D65 target white, 100 nit display peak, 1000 nit source peak and sRGB output OETF.
- Keyboard shortcuts: the lab has no tool shortcuts. Double-click a chart to
open it fullscreen and press
Escapeto close it. - On-device processing: procedural sources, uploaded images, scopes, LUTs and batch mapping run in the browser.
2. Workspace Layout
+- Lab tab: pipeline controls and presets on the left; the mapped frame, tone curve, curve presets and stats on the right.
- Operators tab: all nine operators in one table, read out at mid-grey or scene white, with every curve drawn on one chart.
- Scopes tab: histogram, waveform and vectorscope of the mapped frame, the false color map and its key, A/B storage and split view, and benchmarks.
- Data tab: the register of datasets and transforms the tool rests on, filterable by status.
- Export tab: the tone curve, the whole pipeline or a link to this view, plus batch color mapping under Analyse a list.
- Reference tab: standards, formulas, citations and research notes in one searchable view.
3. Source setup
+- Image source: choose HDR test scene, Exposure gradient, ColorChecker patches or Uploaded image, then Choose a file. Uploads are decoded locally into a canvas.
- Source encoding: choose Linear (scene), sRGB, PQ (ST 2084), HLG (inverse OETF), Gamma 2.2 or Gamma 2.4. This determines how source RGB values are linearized before processing.
- Source primaries: choose Rec.709/sRGB, Display P3, Rec.2020 or ACEScg AP1.
- Source white point: choose D65, D60 or D50. The runtime uses Bradford adaptation when source and working white points differ.
- Source peak: set 100 to 10000 nits (default 1000). It is a separate control from the display peak, and the false color map and its key in the Scopes tab are counted against it.
- Exposure: adjust -6 to +6 EV before tone mapping. +1 EV doubles luminance; -1 EV halves it.
4. Tone Mapping operators
+- None: clamps values directly and is useful for seeing clipping.
- Reinhard: global photographic compression with a smooth highlight rolloff.
- Uchimura: Gran Turismo style curve with toe, linear midrange and shoulder.
- Hable Filmic: Uncharted 2 inspired filmic curve, good for pleasing highlight compression.
- ACES: Narkowicz real-time approximation of ACES-like filmic response.
- BT.2446 Method A and C: no longer offered. The two operators once shown under these names did not implement BT.2446 and are not tone curves; they are now called Gamma-domain scale and Scaled Reinhard, open only from saved links, and the Operators tab shows what they do.
- Log: soft logarithmic compression for broad dynamic range inspection.
- Custom 1D curve: tick Use the custom curve instead, then tune knee, mid and shoulder or use the Linear preset, Log preset and Film preset buttons under the curve, which fill the knee, mid and shoulder. They show only with the custom curve ticked.
- Low-level operator: optionally apply Add, Multiply, Soft clip, Power, Sigmoid, Exp, Log or Tanh before the main tone mapper using Low-op A and Low-op B.
5. CDL and creative controls
+- Contrast: adjusts values around middle gray after tone mapping.
- Saturation: blends each pixel away from or toward its luminance-based color.
- Lift, Gamma and Gain: provide ASC CDL style shadow, midtone and highlight shaping after tone mapping.
- Temperature and Tint: apply simplified red/blue and green shifts.
- Hue: rotates chroma around the luminance component.
- Vibrance: applies adaptive saturation so already-saturated pixels move less than muted pixels.
- Order matters: the runtime applies exposure, optional low-level operator, tone mapping, saturation, contrast, lift/gamma/gain, temperature/tint, hue and vibrance before final gamut and OETF output.
6. Working space and output
+- Working space: choose ACEScg, sRGB/Rec.709, Display P3 or Rec.2020. ACEScg is the default working space.
- Gamut mapping: Hard clip clamps channels, Preserve hue scales channels when they exceed 1, and Soft compress rolls out-of-range values toward displayable values.
- Target primaries: choose sRGB / Rec.709, Display P3 or Rec.2020 for final output conversion.
- Target white: choose D65, D60 or D50. Bradford adaptation handles white-point differences.
- Peak luminance: choose a display peak of 80 to 4000 nits. It feeds the two scaled operators, and the presets set it; PQ output encodes absolute luminance and does not read it.
- Output OETF: choose sRGB, gamma 2.2, gamma 2.4, PQ or Linear.
- Dithering: adds subtle 8-bit output noise to reduce banding in canvas output.
- Show OOG mask: Mark out-of-gamut pixels paints the pixels that left the target gamut in magenta over the viewport. The viewport also reports OOG status through the warning chip when processed pixels exceed target bounds before gamut mapping.
7. Viewport and scopes
+- Viewport: displays the tone-mapped result and overlays chips for working space, target space, operator, timing and image resolution.
- Tone curve: draws the active operator response against a diagonal reference.
- Histogram: in the Scopes tab, shows RGB distribution after mapping.
- Waveform: shows luma distribution by image column.
- Vectorscope: plots Rec.709-like Cb/Cr chroma distribution.
- OOG warning: appears when source pixels fall outside the target gamut before mapping.
- False color: Show the exposure map, in the Scopes tab, replaces the viewport with luminance zones from crushed blacks through extreme highlights.
- A/B split: store A and B, enable split view and move the split position to compare two mapped outputs.
8. Actions, exports and presets
+- SDR 100: Hable, sRGB target, 100 nit peak, sRGB output and sRGB source.
- HDR 1000: ACES, Rec.2020 target, 1000 nit peak, PQ output and linear source.
- P3 600: Hable, Display P3 target, 600 nit peak, sRGB output and sRGB source.
- Reset: clears the URL state and reloads the lab with its defaults.
- 1D LUT CSV: The tone curve as CSV exports 1024 input/output samples over the chosen input domain, 0–1 or 0–12.
- 3D LUT CUBE: The tone curve as .cube writes a 33-entry 1D cube whose header lists the pipeline steps it leaves out; The whole pipeline writes a 17-point 3D cube that runs every step, including the grade and the gamut map.
- Keeping settings: the Export tab has no settings file to export or import; use a link to this view or a Library save.
- Copy URL: A link to this view copies the page URL, which holds a compact subset of state.
- Benchmarks: Time a pass and Time the curve repeatedly process the image and report average milliseconds per frame.
9. Comparisons and batch analysis
+- Operator comparison: the Operators tab lists all nine operators with each one's output at mid-grey or scene white, the input where it reaches display white, an output strip, and whether it runs, exceeds 1 or is not a curve.
- Comparison chart: draws every operator's curve on one pair of axes, over 0–1 or 0–12.
- Batch Tone Mapping: in Analyse a list on the Export tab, paste hex colors separated by commas or lines. The tool maps each color through the current pipeline and reports source, mapped color and OOG status.
- Batch CSV: Download the result exports Index, Source, Mapped and OOG from the batch table.
- Pipeline breakdown: the Export tab lists the eleven processing steps, from linearising through dithering, and marks which ones the chosen file carries.
- False color legend: the Scopes tab key explains zone colors from 0.01 nits through 10000 nits.
10. Library saves and restore
+- Library asset type: Tone Mapping registers as a
presettool. - Simple capture: the Library binding captures the first available canvas, usually the viewport, as a Tone mapping output image. If no canvas is available, it falls back to a form preset.
- Full runtime state: shared capture reads
window.AAToneMapping.getState(), including settings, upload presence, image size, mapped state, A/B storage flags and batch input. - Restore: full restore can reapply settings and batch input. Uploaded image bytes are not stored by the runtime state; non-upload restores rebuild the procedural source.
- URL versus Library: the share URL stores operator, exposure, source encoding, peak, output OETF and target primaries. Library state stores the full settings object.
11. Recommended workflows
+- HDR to SDR review: choose HDR 1000, compare ACES, Hable and Reinhard, inspect waveform and histogram, then export the whole pipeline as a cube and copy the link.
- Operator shootout: open the Operators tab and compare each operator's output at mid-grey and scene white, where it reaches display white, and its curve.
- Creative look test: upload an image, tune exposure, Hable or Uchimura, saturation, lift/gamma/gain and vibrance, then save A/B states for split comparison.
- LUT handoff: lock the tone curve, export the curve as a cube or CSV, or the whole pipeline as a cube, then include the link for reproducibility.
- Gamut target check: switch target primaries among sRGB, P3 and Rec.2020, test clip, preserve and soft compression, and watch the OOG warning.
- Batch color mapping: paste brand colors into Analyse a list to see how a display pipeline shifts key swatches.
12. Troubleshooting
+- The image looks clipped: lower exposure, try Reinhard or Hable, or enable soft gamut compression.
- The output looks washed out: confirm source encoding and output OETF match your intended workflow.
- Uploaded images are slow: processing is CPU-based and scales with pixel count. Smaller images update faster.
- A/B split does not show a difference: store A, change settings, process the new state, store B, then enable split view.
- Batch ignores a value: use six-digit HEX values such as
#FF6347. - LUTs do not match a full color pipeline: the tone curve export carries only the curve; choose The whole pipeline for a cube that includes the grade and gamut map. Neither is a complete ACES CTL or Dolby Vision pipeline.
- Share URL is incomplete: use Library state when you need every control preserved.