Is it possible to use the HALD method to generate an accurate LMT or a LUT in the AP1 color space?

Specifically, is it feasible to create a HALD image in AP0 Linear EXR format (or AP1 CCT), and then use a tool like lutCreator.js to generate an LMT (or a LUT in AP1 CCT)? Currently, all HALD color spaces are in Rec.709 (sRGB), so lutCreator.js can only produce Rec.709 to Rec.709 LUTs.

What I’ve done so far is use global color management (ACES 1.3) to assign the HALD image on the timeline as Rec.709, apply complex primary grading to it, then export a Rec.709 PNG and upload it to lutCreator.js to get a Rec.709 to Rec.709 LUT. This method currently only works in workflows like ARRI Log C3 to Rec.709. (The footage on the timeline bypasses color management. The first node is an ACES Colorspace Transform with IDT set to Log C3 and ODT to Rec.709. The second node applies the Rec.709 to Rec.709 LUT generated by lutCreator.js. This gives a usable Log C3 to Rec.709 LUT.)

However, this approach completely fails in a Log C4 workflow. In situations where I have mixed footage from ARRI Mini LF and ARRI 35, I can only create an accurate Log C3 to Rec.709 LUT — I can’t get a proper Log C4 to Log C4 result. Theoretically, I could simply perform a basic primary grade under global color management to generate an AP1 LUT that would work across both Log C3 and Log C4 workflows. But this approach is too limiting. For example, if I use complex operations like Lab*, they can’t be accurately mapped into an AP1 LUT. However, if I use HALD, the transformation is accurate — but it still ends up being a Rec.709 to Rec.709 LUT.

So my question is: is it possible to use an AP0 Linear HALD EXR (or AP1 CCT HALD), perform complex grading on it, then export a processed AP0 Linear (or AP1 CCT) HALD EXR that accurately represents the grading, and from that generate a precise LMT (or a LUT in AP1)?

It looks like I’ve found a reliable workflow using lutCreator.js (lutCreator.js - Create Luts) to generate an AP1 cct LUT (currently it’s recommended to use the Neutral_64 PNG):

  1. Match project/timeline resolution to the HALD
    Neutral_64 is 512×512, so set your project or timeline resolution to 512×512 as well. With this match, whatever you choose under Image Scaling → Resize Filter Method in your project settings will have no effect on the HALD on the timeline.
  2. Use ACES global color management for both project and timeline
    In the ACES Input Transform, do not check “Apply ACES reference gamut compress.” Set the HALD’s IDT to AP1 cct, and also set the project/timeline’s ODT to AP1 cct. (The key concept here is that the HALD itself has no inherent “color space.”)
  3. Apply your complex grade to the HALD under global ACES, then render
    Grade the HALD within the ACES workflow, then render it at source resolution. Before rendering, be sure that “Disable ACES gamut compression” is checked.
  4. Upload the graded HALD to lutCreator.js
    lutCreator.js will then produce a highly accurate AP1 cct LUT.