LightSpace CMS & ACES

Using the ACES tools within LightSpace CMS for LUT generation

ACES capability within LightSpace enables the conversion of any .ctl (ACES based or otherwise) files (IDT/RRT/ODT, etc.) into LUTs, as well as the conversion of LUTs into .ctl files (IDT/RRT/ODT/LMT, etc.), enabling the simple generation of user designed Look workflows.

ACES Workflows


Before embarking on an ACES based workflow we would recommend you review the associated What is ACES page of the website. It is important to realise that for many projects ACES is not needed, and may actually not be the best approach to take.

If you decide to uses an ACES based workflow, LightSpace CMS provides a selection of tools that enables the conversion of any .ctl (ACES based or otherwise) files (IDT/RRT/ODT, etc.) into LUTs, as well as the conversion of LUTs into .ctl files (IDT/RRT/ODT/LMT, etc.), enabling the simple generation of user designed Look workflows.

When combined with MatchLight IMS this even enables the automatic generation of user defined camera IDT files.

LUT Generation from ACES data

One of the most common uses for the LightSpace CMS ACES tools is the generation of Look LUTs for DIT use on-set when shooting with specific cameras, that have vendor supplied IDT ctl data.

The simplest, and actually rather effective, ACES workflows is to simply make a LUT from the concatenation of an IDT, with RRT and ODT. This can be performed within LightSpace CMS very simply.

Such manipulations can be performed with LightSpace LUTs+, and the full LightSpace XPT versions, with some restriction on the functions available within the LightSpace LUTs+ version.

Installing ACES

To use the ACES CTL tools within LightSpace CMS you will need to download the desired ACES version .zip file from HERE.

Extract the .zip file, and note the location of the folder than contains the 'ACESlib.xxxxxxx.ctl' files, within the .ctl folder.

An environment Variable will need to be set on the LightSpace PC to point to the location of the above folder. To edit the Environment Variable right click 'This PC' and select 'properties', then select 'Advanced system settings'. On the bottom of the window that opens select 'Environment Variables', and make a new variable, probably best just for the specific 'User'. Call the Variable name 'CTL_MODULE_PATH', and point to the location of the folder located above, using the Variable value entry.

Re-start LightSpace CMS if it was already running...

Previous ACES Version Issues

Between v1.0.2 and v1.2_rc1 ACES includeed code errors that prevent LightSpace from working correctly.
The errors were reported to The Academy whne original discovered, but were not fixed until v1.2.

The issue is due to a bug in the current CTL interpreter that is specified for ACES.

If you look at an ODT file from one the faulty releases of ACES you will see that the 'type' of the parameter 'legalRange' was changed from 'varying int' with a default value of 0 (in ver 1.0.2) to type 'uniform bool' with a default value of 'false'.

This changes the parameter from a variable to a constant, and for For some reason, the CTL interpreter is not correctly setting the default value to false. The interpreter randomly think it is set to true/false, so is incorrectly and randomly activating the 'legal range code'.

This is not a bug in LightSpace, it is a bug in the CTL interpreter.

The issue can be overcome by editing the ODT file.

  • Locate the line:
         input uniform bool legalRange = false
    and remove it, and the preceding 'comma' from the line above.
  • Locate the lines:
         // Default output is full range, check if legalRange param was set to true
         if (legalRange) {
         outputCV = fullRange_to_smpteRange_f3( outputCV);
    and remove them.
  • Save as a new ODT file
ACES CTL Interpreter Error

The ACES CTL interpreter error can be seen in the 1D LUT graphs, as above. This shows random switching to TV Legal or Full Range during the CTL interpreter processing.

ACES v1.2 ODTs are set to Full Range code values by default.

To generate LUTs using just ACES CTL files, with no other data or manipulations, is a very straightforward process. It is the simplest and easiest of the ACES based Light Space CMS workflows, and will generate a LUT that faithfully represents the source ACES CTL data.

First, place the CTL files to be used into a single folder within the PC. Here we are using an Arri Alexa IDT, with a Rec709 100 Nits ODT, and the standard ACES RRT.


Next, within LightSpace use 'File/New' to make a blank LUT, as this will be the blank canvas upon which the ACES based changes will be made.
(Note: It may help to prefix the ctl files with incremental numbering (001-IDT..., 002-RRT..., 003-ODT...) to assist import ordering.)

ACES File New

At this point, if wanted, a Reference image can be added into the blank LUT image, using the 'Add Reference Image' function. The added image will immediately show the result of the applied ACES CTL data. It not a 'required' step though, as the generated LUT can be applied to any user image within LightSpace CMS after generation.

Here, we will use an Alexa image from one of Geoff Boyle's CML Camera Tests. Information on using the alternative 'LUT Preview' mode will also be explained.

The next step is to apply the ACES CTL data, using the 'Edit/ACES CTL/ACES Import' function.


The result of the applied ACES CTL data will be seen immediately.

If the Reference Image has not been used, the 'LUT Preview' function can be used to see the generated LUT applied to any image the user selects.

ACES Alexa LUT Preview

And the resulting LUT can be seen via the 3D Cube and 1D LUT View.

ACES Alexa LUT Image

ACES Alexa LUT Export

A further LightSpace CMS capability, and one that is potentially far more interesting, is to use the LUT manipulation tools available within LightSpace PRO and XPT to further alter the ACES CTL data, generating more useful creative Looks' based on the original ACES data. This is demonstrated within the Free Look LUTs page of the website.

Converting LUTs into ACES

Converting LUTs for use in an ACES workflow can be a littler more problematic than it may first appear.

Where will the LUT be uses in the workflow pipeline?
Before the RRT?
After the ODT
Is the RRT 'Look' desired, or not, etc?

The simplest process within LightSpace for LUT Conversion to ACES is to use the 'Convert Colour Space' menu, and 'burn' the required colour space conversion into the LUT.

For example. let's assume you have a 'Look' LUT that is a Rec709 LUT and you want to use the same 'Look' in an ACES workflow...

Remember this generated LUT will be mapping the original LUT Colour Space into ACES, and will not be 'expanding' the original colour space.

Another alternative workflow is to concatenate two LUTs together, using the 'Add' LUTs facility within LightSpace CMS.

The order in which the LUTs are combined will alter the end result. The way to visualise this is to imagine an image being passed through each LUT in turn. If the image is first passed through the 'Look' LUT, and the result is then passed through the 'Colour Space Conversion' LUT, the result will be different if the image is first passed through the 'Colour Space Conversion' LUT, and the result is then passed through the 'Look' LUT

ACES LMT (Look Modification Transforms) Generation

The ACES tools within LightSpace CMS can be used for many different CTL workflows, and the use of, and generation of LMT (Look Modification Transform) is another example.

ACES Workflow

In ACES workflow the LMT sits before the RRT, and applies a creative 'Look' to the image path.

The IDT (Input Device Transform) is Camera manufacturer defined, and maps the captured image into ACES The LMT (Look Modification Transform) is used to apply a 'Look' to the image that is potentially beyond the normal colour manipulation capabilities of any applied grading - such as Film Look Emulation The RRT (Reference Rendering Transform) applies an ACES defined 'Look' to the image based on a Reference Display Device (RDD), with theoretical (impossibly large) colour gamut and dynamic range The ODT (Output Device Transform) maps the image from its RDD format to the ODT defined display, such as Rec709, P3, etc

However, generating an LMT from existing LUTs still not as simple as you may think or like...

The issue is making sure the LUT is in a format that works within the ACES workflow, and this is where LightSpace CMS can help.

The first stage is understanding the process required to generate a LMT, which basically means converting the original LUT into ACES space. This needs to be done in stages.

ACES LMT Generation

LMT Generation is a basic three stage process, with additional stages potentially required depending on the Look LUT being used.

ACES Step one is to combine the standard ACES RRT and the desired ODT into a single concatenated LUT/CTL The Look LUT needs to be in the correct format for the ACES ODT used in the workflow The last stage is to combine the Inverted version of the ODT used in stage one and the Inverted RRT, both standard ACES CTL files, into a single concatenated LUT/CTL ACES

The workflow takes the standard ACES input, uses the RRT+ODT to convert the expected input into the correct format for the Look LUT, and then uses the InvODT+InvRRT to convert back into ACES.

With the RRT + ODT and InvODT + InvRRT combined into single elements, and the Look LUT in the correct format to match the ODT being used, all three elements can be combined into a single LMT CTL.

The first step is to combine the RRT and ODT into a single concatenated LUT/CTL. As before, all the different CTL file that are going to be used need to be held within the same PC folder.

ACES RRT + ODT Concatenation

The second step is to combine the InvODT and InvRRT into a single concatenated LUT/CTL.

ACES InvODT + InvRRT Concatenation

Getting the Look LUT into the correct format for use with the ACES workflow can be a bit more tricky, and requires some thought.

In this example we will use a Film Print emulation Look LUT, as generated in the Free Look LUTs page. The standard LUT is a 'Log' LUT, which expect the source images to be 'Log' Rec709 colour space, while the ODT we are using is standard Rec709, and is expecting to work with standard gamma based images. As a result, the LUT needs to be modified to work with standard gamma Rec709 images.

There are many ways to perform such a LUT modification, and here we will use the in-built LightSpace CMS LUT Manipulation tools.

Film Log Look LUT
LUT Converted to Video

If required, the 'Edit/LUT Manipulation/Gain' and 'Edit/LUT Manipulation/Lift' functions can be used to re-scale the LUT black and white points as needed.

We now have the three separate components that are required to generate the final LMT CTL, which can be performed using the saved CTL files (or potentially via the saved LUTs, although the results will need to be processed in a different order, as defined below.

If wanted, A LUT can be made using the full ACES CTL concatenation workflow to see the final end result.

Standard ACES Workflow
ACES Workflow with Film Look LMT

The darker blacks are due to the 'S' shape profile of the Film Look LUT, and can easily be altered via simple manipulation of the original Look LUT, such as via the process outlined on the Free Look LUTs page, before generation of the LMT CTL.

ACES Film Look LMT Lifted Blacks


ACES CLF/CTF capability within the 'Edit' menu of LightSpace enables the import and export of any .clf/.ctf (ACES based or otherwise) files, as well as the conversion of LUTs held within LightSpace into .clf/.ctf files.
Note: the .ctf format is an Autodesk variation on the ACES .clf format.