look.support turns a screenplay into a colour-managed look that travels unchanged from pre-production to the final grade. This page holds the technical detail behind the plain-language site: formats, colour science, camera encodings, skin-tone protection, and the research we lean on.
Notes from set and post loop back into the scene records, so stage 01 is also the hand-off into the grade.
The parser accepts Final Draft (.fdx, an XML container) and Fountain (plain text) and emits one record per scene: heading (INT/EXT, location, time of day), action lines, dialogue blocks and the cast present. Nothing is inferred here; it is a lossless restructuring of the screenplay.
The extraction stage prompts a large language model with each scene record plus its neighbours for three labelled fields: emotional valence (−1 to +1) with a mood word, lighting cues named in the text, and the scene's position in the dramatic arc. Valence labels are model estimates and are reviewed by a human before the ribbon is built.
Why this is credible now: text-based emotion detection is a mature benchmark task — SemEval-2025 Task 11 covers multi-label emotion plus intensity across 30+ languages [04] — and recent work shows LLMs handle screenplay structure when the task is decomposed rather than generated end-to-end [05]. Colour and editing jointly shift how audiences read a neutral face, in behavioural (n=117) and fMRI (n=67) studies [06]; adding colour-perception features improves fine-grained emotion prediction on film and TV clips [07].
The ribbon is a keyframed colour curve over script time, interpolated in ACEScg so mid-scene values stay inside the working gamut. Act boundaries and mood changes are where the curve turns.
The engine expresses every ribbon value as colour-managed operations rather than hex swatches: ASC CDL primaries (slope, offset, power per channel, then saturation on chroma) rendered through an ACES 2.0 output transform [11].
Current versions: OpenColorIO 2.5.1 (16 Jan 2026) ships built-in ACES 2.0 configs, config merging and hue-curve transforms; OCIO 2.6 is scheduled for 30 Sep 2026 with the CY2027 VFX Platform [01]. ACES 2.0 shipped in spring 2025 with improved colour rendering, consistent display across dynamic ranges, invertible transforms and custom output devices [03]; ACES moved under the Academy Software Foundation on 6 Aug 2025 [02].
One look, three encodings. The transform is re-rendered from ACEScg into each camera's log curve and gamut, so the same grade lands identically on every body. Output per camera is a 33³ 3D LUT in .cube plus the matching ASC CDL, named look__camera_curve_gamut.cube.
Skin of all ethnicities clusters along the vectorscope I-line (about the 11 o'clock position between red and yellow; the NTSC I axis), which colourists use as the reference for balancing faces before stylising [12]. The engine detects skin pixels, measures their hue angle against the I-line, and clamps the look's hue rotation for those pixels to ±7° while the rest of the frame takes the full push. With protection off the clamp is released, which is what the site's toggle shows. The ±7° band is a default; productions can widen or narrow it per look.