FPE Pipeline - ACES AP0 ADX10

Hi everyone. Im a colorist from Argentina, currently teaching myself color science and the math behind film emulation. Trying to build a pipeline using AP0, ADX10 and Spectral Sensitivity Curves, D Log E, and Dye Density Curves from Kodaks film datasheet. However, since I dont have formal training as a color scientist, I want to learn from the experts here. Could someone do a sanity check on my workflow?

Im trying to emulate a specific film stock working with Spectral Sensitivity Curves, D Log E and Spectral Dye Density Curves, using Davinci Resolve Fusion. In my understanding the Spectral Sensitivity is how SENSITIVE is each film layer to a certain wavelenght stimulus.
To emulate this part of the process the first thing I do with my footage is transform it from the camera gamma and gamut into AP0 Linear because this space is like “light in the real world” (going out of the log space of the camera into linear).
Then in AP0 linear I did a 3x13 matrix using Finlayson Root Polynomial Regression, following this steps.

  1. First I have the INPUTS:
  • MATRIX V : Film Spectral Sensitivitys (linearized bc we are working in AP0 Linear) (I took the info from the curves using WebPlotDigitizer)
  • MATRIX U : This one is a matrix using CIE1931 under the same Illuminant as the film Im trying to emulate (A or D55 for example) and converting it into AP0 linear values , so MATRIX U is an AP0 response from the same wavelenght I mesured to build matrix V
  1. Then I expand U matrix using Root Polynomial so instead of using a 3x3 matrix interpreting the crosstalk in the film as linear, with the 3x13 matrix I can represent the curves more accurately.
  2. Finally I do the REGRESSION to obtain my matrix M 3x13 / (U_exp T x U_exp)^-1 x U_exp x V / I put this matrix into a DCTL and after the transformation to AP0 using ACES Transform.

Then, the part where Im most confused, interpreting D log E, this curves tell us how the film reacts to each log exposure generating a specific density in the film. For this part I use an ACES Transform to go from AP0 Linear into ADX10 (I leave the input as “no input” bc [no input] = [AP0 Linear] in Resolve ACES Transform, please correct me if Im wrong). Then again I use WebPlotDigitizer to exact a .csv with each point for each R G B curve and, with this information, now I need to neutralize the orange base of the film (bc ADX is not expecting values with Gross Density), to achieve this I calculate the LAD (“mid grey”) for each curve using as reference D-min and speed point and matching the LAD of each curves with the LAD of ADX10 that is 0,89 density or 445 code value or 0.435 in my fusion curves (float?). Doing this LAD process I can do an emulation that preserves midgrey point.

Finally I do a 3x3 matrix (also in ADX10 colorspace) to represent the crosstalk represented in the Spectral Dye Density Curves that are already normalized.

After this emulation, I use a K2254 K2383_Cineon_DPX_to_P3_viewing_65_12bit.cube bc (in my thought process) after the negative u need a print, right? and after this lut a ACES Transform from p3 to 709 bc thats my output.

Please be honest with me if this its pointless, Im just trying to learn the maths behind film and digital world. Thanks in advance for your time reading. (sorry my english is not the best)