Writing
Colour Management Is a Pipeline Contract
Blender 5.0 reads as better display options. Giving a file an explicit working colour space is an architectural change.
Writing
Blender 5.0 reads as better display options. Giving a file an explicit working colour space is an architectural change.
Notes
Blender 5.0 arrived two days ago with a colour-management change that looks, at first, like a collection of better display options: ACES 1.3 and 2.0 views, ACEScg, Linear Rec.2020, Rec.2100 PQ and HLG, HDR and wide-gamut output.
I think the larger change is architectural.
Blender now gives each blend file an explicit working colour space. That space affects materials, lights, rendering and compositing. Blender's own release notes recommend choosing it at the beginning of a project and using it across the project files.
That turns colour management from a viewing preference into part of the production contract.
It is easy to think about colour management at the end of the pipeline.
A render looks different on another monitor, so we change the view transform. An image looks washed out in another application, so we check whether it was tagged as sRGB. HDR delivery needs another export setting.
Those are output symptoms. The problem can begin much earlier.
A texture has a colour encoding. A material interprets those values inside a working space. Lighting produces scene-linear values. Compositing combines them mathematically. A view transform maps that scene-referred result toward a display. The exported file then needs enough information for the next application to interpret it correctly.
If two stages disagree about any of those assumptions, the numbers can remain valid while the appearance changes.
This is why I think colour space belongs in the same category as units, coordinate systems or frame rate. It is metadata with consequences.
Blender 5.0 makes a useful distinction more visible: working space and view transform are not the same thing.
The working space defines the scene-linear RGB representation used for rendering, compositing and colour data inside the file. Blender 5.0 keeps Linear Rec.709 as the default and adds Linear Rec.2020 and ACEScg as wider-gamut options.
The view transform answers a different question: how should those scene values be mapped for a particular display?
Blender now includes ACES 1.3 and ACES 2.0 views alongside AgX and Filmic, with SDR and HDR options. It adds Rec.2100 PQ and HLG displays and an AgX HDR view.
That separation matters in production because changing the view should not redefine the scene.
If I build a product material in ACEScg, the material should not become a different material because I preview the scene on an SDR monitor today and an HDR display tomorrow. The scene-referred values are the asset. The display transform is the interpretation required by the target.
Conflating those layers makes a pipeline fragile.
ACES is often discussed as a cinema or VFX standard, but the part I care about is less glamorous: interoperability.
Blender is rarely the whole production pipeline.
A product visualisation may begin with textures from Substance, move through Blender, produce OpenEXR files for compositing, pass through After Effects or another grading environment, then end as sRGB web images, Display P3 assets or video.
Game production has another path. Source textures may be authored in one application, reviewed in Blender, imported into an engine and viewed through a completely different display pipeline.
If each application has a different definition of what the RGB values mean, visual consistency depends on manual fixes.
OpenColorIO exists to make those transformations explicit and shareable across applications. Blender has used OCIO for years, but Blender 5.0 improves ACES 2.0 compatibility and warns when a blend file was created with a different OCIO configuration.
That warning is a small UI feature with a large implication: the configuration is part of the project state.
A file created under one colour pipeline cannot always be interpreted safely under another without knowing that the change happened.
HDR makes this problem harder to ignore.
For SDR work, many pipelines have survived with an informal assumption that the final image ends up in something close to sRGB or Rec.709. That can hide mistakes because most tools and monitors are built around similar expectations.
Blender 5.0 can now display and export HDR and wide-gamut images and video. The release adds Rec.2100 PQ and HLG targets, Display P3 and wider internal working spaces.
Once output may be sRGB, P3, Rec.2020 or HDR, there is no single implicit "correct" display anymore.
A value that produces an acceptable highlight on a normal monitor can map very differently on an HDR display. A saturated material that fits inside Rec.2020 may fall outside the gamut of an sRGB target. Tone mapping and gamut mapping become delivery decisions rather than cosmetic options.
ACES 2.0 itself reflects this problem. Its revised output transforms were designed to provide more consistent rendering across different display targets, with updated tone scale and gamut mapping behaviour.
This is why a production pipeline needs to know its target before the final export dialogue.
For Blender work, I would now treat working colour space as a project-level decision.
It should sit beside units, render engine, output resolution, asset naming and frame rate in the initial setup. Templates should define it. Automated scene validators should check it. Render jobs should record it. Export scripts should know which target they are producing.
I would not let individual artists quietly change the working space halfway through production because one image looks better.
Blender can convert between working spaces, but its documentation warns that those conversions are approximate and can require manual fixes.
Product visualisation makes this especially visible.
A client may provide brand colours as sRGB values. The scene may render in ACEScg. The compositor may work on floating-point OpenEXR. The web deliverable may return to sRGB while a display campaign needs P3 or HDR.
The same red can pass through several representations without any one of them being "the red." What matters is preserving its intended appearance and meaning through known transforms.
That is a pipeline problem.
This becomes even more important as production becomes automated.
A script can batch-convert hundreds of textures very efficiently and still destroy a project if it guesses the input colour space incorrectly. An AI agent can export every requested image and still deliver the wrong result if it does not know whether the target expects display-referred sRGB, scene-linear EXR or ACEScg.
Colour therefore needs to be represented as machine-readable state.
Blender 5.0 moves in that direction. OpenEXR files gain Colour Interop ID metadata support for automatic colour-space detection. The working space is stored with the blend file. Linked and appended data can be converted to match the current file's working space.
Those mechanisms reduce hidden assumptions.
For an automated production pipeline, I would want every asset entering the system to answer three questions: what colour space is this data in, what space should computation happen in, and what transform is expected at delivery?
If the system cannot answer those questions, automation only makes the mistake faster.
I think colour management will move further away from being an artist preference and closer to being infrastructure.
The reason is not ACES by itself. It is that production is becoming more distributed: more applications, more automated tools, more display classes and more generated intermediates.
Every boundary needs a shared interpretation of colour.
A Blender scene needs to know how textures enter the working space. A compositor needs to know how render data should be read. An engine needs to know how authored assets map into its rendering pipeline. The delivery system needs to know whether it is targeting SDR, P3, PQ or HLG.
Once these assumptions are explicit, the creative choices become safer because the pipeline stops changing underneath them.
Blender 5.0 is a useful marker for this shift. ACES support and HDR are the visible features. The more important change for me is that the working colour space has become a first-class property of the file and the production process around it.
The renderer produces numbers.
The pipeline has to agree on what those numbers mean.
More