Regarding Colorimetry · Module 4 of 7

ACES & Modern Color Management

ACES architecture, AP0/AP1 working spaces, gamut compression, and practical workflows.

“A file format is not a workflow. ACES is a workflow.”

In Module 3, we discussed the chaos of “The Pipeline”—log curves, gamma shifts, and the struggle to fit reality into a monitor.

The Academy Color Encoding System (ACES) was built to end that chaos. It is not just a file format; it is a rigid architecture designed to unify every camera, monitor, and VFX tool into a single mathematical language.

But ACES is not magic. It has flaws, artifacts, and confusing terminology. This module breaks down the architecture and the “Blue Light” monsters that hide inside it.

4.1 The Architecture: IDT, AP0, and AP1

The core philosophy of ACES is Input Independence. It shouldn’t matter if you shot on an ARRI Alexa, a RED V-Raptor, or an iPhone. Once the footage enters the pipeline, it becomes “ACES Data.”

The Input Device Transform (IDT)

This is the bouncer at the door. The IDT (or “Input Transform”) takes the camera’s proprietary format (e.g., ARRI LogC3 / ARRI Wide Gamut 3) and mathematically un-twists it into the standard ACES container.

  • Goal: Linearize the light and map the camera’s unique primaries to ACES primaries.

The Two Spaces: AP0 vs. AP1

This is the #1 point of confusion. ACES has two sets of primaries (Gamuts).

1. ACES 2065-1 (AP0 Primaries)

  • The “Archive” Space.
  • Size: Massive. It encompasses the entire CIE Spectral Locus. It includes colors that humans can see but no screen can show, and even “imaginary” colors that don’t exist.
  • Use Case: Storage, interchange, and archival (EXR files). It is usually not the preferred working space for grading or rendering.
  • Why? It is future-proof. If we invent a laser display in 2050 that can show pure spectral cyan, your AP0 file already contains that data.

2. ACEScg / ACEScct (AP1 Primaries)

  • The “Working” Space.
  • Size: Smaller than AP0, but still larger than Rec.2020.
  • Use Case: Grading, CGI Rendering, Compositing.
  • Why? AP0 is too big.
    • Math Issue: The very wide AP0 primaries can produce unintuitive channel values during creative operations.
    • CGI Issue: Intermediate RGB components can become negative in a wide or imaginary-primary coordinate system. That is a coordinate-system result, not negative physical light.
    • Working Choice: AP1 is smaller and closer to common production gamuts, which makes it a practical working space for many ACES tools.

Practical convention: archive or interchange in AP0 when the pipeline calls for it; use an appropriate working space such as AP1 for the actual creative operation.

The Mathematics: Primaries and Matrices

Let’s make this concrete. Here are the actual CIE xy chromaticity coordinates for ACES primaries:

ACES 2065-1 (AP0) Primaries:

Primary x y
Red 0.7347 0.2653
Green 0.0000 1.0000
Blue 0.0001 -0.0770
White (D60) 0.32168 0.33767

Notice the Green and Blue primaries have y values outside 0-1. These are imaginary primaries—they cannot be created by physical lights.

ACEScg (AP1) Primaries:

Primary x y
Red 0.713 0.293
Green 0.165 0.830
Blue 0.128 0.044
White (D60) 0.32168 0.33767

All AP1 values are within the spectral locus—these are real primaries. This is why AP1 is used for rendering and grading.

Example: ARRI Alexa IDT (Conceptual):

An IDT performs two operations: (1) Decode the log curve (LogC3 → Linear), (2) Transform camera primaries to ACES AP0. The second step uses a 3×3 matrix:

\[\begin{bmatrix} R_{\text{ACES}} \\ G_{\text{ACES}} \\ B_{\text{ACES}} \end{bmatrix} = \begin{bmatrix} 0.680206 & 0.236137 & 0.083657 \\ 0.035735 & 0.950071 & 0.014194 \\ 0.000000 & 0.002932 & 0.997068 \end{bmatrix} \begin{bmatrix} R_{\text{camera}} \\ G_{\text{camera}} \\ B_{\text{camera}} \end{bmatrix}\]

(Note: Actual IDTs include chromatic adaptation from D65 to D60, and LogC3 decoding. This matrix is simplified for clarity.)

Critical Understanding: An IDT is NOT just a LUT. It’s a mathematical transform (matrix + curve + white point adaptation) specific to each camera model. This is why you need the correct IDT for your camera—guessing creates color shifts.

Interactive study

Primary-coordinate explorer

Compare named primary triangles against the CIE 1931 2° spectral locus. Move through wavelength to inspect the official chromaticity coordinates.

Show gamut primary coordinates

Figure 4.1: Primary-coordinate comparison. The spectral locus uses the CIE 1931 2° dataset, sampled here at 5 nm; AP0/AP1 values follow the tables above.

4.2 The Gamut Problem (The “Blue Light” Artifact)

ACES is mathematically pure, but cameras are messy.

The Issue

Digital sensors often see high-intensity narrow-band light (like Police Sirens or cheap Blue LEDs) as “more saturated” than the ACES AP1 gamut allows.

When the IDT tries to map this intense Blue into ACES, the math breaks.

  • To keep the “brightness” correct while pushing the “saturation” out, the math forces the Red and Green channels into Negative Values.
  • Visual Artifact: The blue light turns into a solid, clipped block of magenta/purple artifacts. It looks like “digital broken glass.”

The Fixes

1. LMT (Look Modification Transform)

In ACES 1.0, we used a “Blue Light Artifact Fix” LMT. It was a band-aid that globally desaturated blue highlights.

2. RGC (Reference Gamut Compression)

Introduced in ACES 1.3.

  • Algorithm: It analyzes pixels. If a pixel is “Out of Gamut” (Negative values), it calculates the distance from the neutral axis and softly compresses it back into the AP1 “Zone of Trust.”
  • Result: It “heals” the broken pixels without affecting the rest of the image.

ACES 2

ACES 2 revises the output-transform approach with the goal of more consistent rendering across SDR and HDR display targets. Check the current Academy documentation before choosing a production implementation.

  • Unified tone scale: The updated output transforms aim for more consistent perceptual behavior across display targets.
  • Gamut handling: Treat the exact tool and transform version as part of the show-specific pipeline, not as a generic fix for every saturated-light issue.

Interactive figure in development. It will be published only when it has a cited source or an original, documented demonstration.

Figure 4.2: Blue light artifact demonstration—gamut compression healing negative values

4.3 Practical ACES Workflows

Blender & ACES (OCIO)

Blender (Cycles/Eevee) is a Scene-Referred renderer. It wants Linear data.

While Blender 4.0+ introduced AgX (a fantastic view transform), it is not “ACES.”

The Professional Setup (OCIO):

To make Blender speak ACES, you must bypass its internal color management using OpenColorIO (OCIO).

  1. Download the ACES OCIO Config (e.g., ACES 1.3 Studio).
  2. Set your Environment Variable (OCIO = /path/to/config.ocio).
  3. Input: Load textures as Utility - sRGB - Texture (for JPGs) or ACEScg (for EXRs).
  4. Render: Render in ACEScg.
  5. Output: Save as EXR (Multilayer). Do not bake the ODT. - Why? You want the Compositor (Nuke/Resolve) to handle the final conversion to display.

AMF (ACES Metadata File)

The biggest weakness of ACES was tracking. “I applied a cool vintage look (LMT) on set. How does the VFX house know which LMT I used?”

AMF is the sidecar XML file that solves this. It contains the “Recipe”:

  1. System Version: (e.g., ACES 1.3)
  2. Input Transform: (e.g., Sony Venice 2)
  3. Look Transform (LMT): (e.g., Vintage_Kodak_Emulation.clf)
  4. Output Transform: (e.g., Rec.709 100 nits)

By passing the AMF along with the raw footage, the DIT ensures the VFX artist sees exactly what the DoP saw on the monitor.

ACES vs. LUTs

Why not just use a LUT?

  • LUTs are Display-Referred: They bake the look and the display into one destructive layer. You cannot easily convert a Rec.709 LUT to HDR.
  • ACES is Scene-Referred: The “Look” is separate from the “Display.” You can grade once, then swap the ODT to export Rec.709, DCI-P3, and Dolby Vision PQ from the same timeline without re-grading.

Interactive figure in development. It will be published only when it has a cited source or an original, documented demonstration.

Figure 4.3: ACES workflow architecture—from camera to display with separation of concerns

Next Module: Now that we have managed the color pipeline, we need to understand the screen itself. It’s time for HDR, Dolby Vision, and the Apple XDR ecosystem.

References & Further Reading

  • SMPTE ST 2065-1:2021. Academy Color Encoding Specification (ACES).
  • Duiker, H.P. (2015). ACES Version 1.0 User Experience. Academy of Motion Picture Arts and Sciences.
  • Mansencal, T. et al. (2020). “OpenColorIO: A Color Management Framework for Visual Effects and Animation.” ACM Transactions on Graphics, 39(4), Article 135.
  • Sobotka, T. & Haarm, P. (2016). ACES Output Transforms. Academy ACES Technical Documentation.
  • Blender Foundation (2023). AgX Display Transform Documentation. Available at: docs.blender.org
  • Academy ACES Central: acescentral.com (Official forums and technical resources)