How we checked our LUTs against Resolve itself

Anyone can say their conversion is accurate. This is how we proved ours, and the number we hold ourselves to.

The method

A LUT that converts camera log to a finished picture does two things: it decodes what the camera recorded, then it renders that for a screen. The second part is taste. The first part is either right or wrong, and it is testable.

So we tested it against the reference everyone already trusts, which is DaVinci Resolve. For each camera we put a Color Space Transform on a node, set the input to that camera's log and gamut, set the output to DaVinci Wide Gamut and DaVinci Intermediate, and turned tone mapping and gamut mapping off. That is a pure decode with nothing cosmetic in it.

Then we used Resolve's own Generate LUT to write that transform out as a 65 point cube. That file is Resolve's answer, in Resolve's own numbers, for every possible input value.

Finally we ran our conversion over the same grid and compared the two, value by value.

The result

All six formats match Resolve to 0.01 of a 10-bit code value on average, with the 99th percentile at 0.02 to 0.06. One stop is about 73 code values, so the difference is roughly one seven thousandth of a stop. It is rounding.

FormatAverage difference
RED Log3G10 / REDWideGamutRGB0.01
Canon Log 2 / Cinema Gamut0.01
Canon Log 3 / Cinema Gamut0.01
Sony S-Log3 / S-Gamut3.Cine0.01
Sony S-Log3 / S-Gamut30.01
Nikon N-Log / N-Gamut0.01

Two things the test caught

Canon. The published Canon Log formulas carry a 0.9 factor between recorded values and reflected light. Applying it puts our conversion about 11 code values away from Resolve, roughly 0.15 of a stop. Resolve does not apply it. Without the test we would have shipped Canon files that were slightly dark and never known.

Nikon. Resolve has no N-Gamut entry. Nikon defines N-Gamut as the Rec.2020 primaries, and choosing Rec.2020 matches to the same 0.01. That is now documented rather than assumed.

Check ours yourself

You don't have to take our word for any of this. The test takes about ten minutes and needs nothing but Resolve.

  1. Put a Color Space Transform on a node on any clip. Input: your camera's gamut and log. Output: DaVinci Wide Gamut and DaVinci Intermediate. Tone Mapping None, Gamut Mapping None, both OOTF boxes unchecked.
  2. Right-click the clip thumbnail, Generate LUT, 65 Point Cube. That file is Resolve's own answer.
  3. On a second node, stack our LUT for that camera against the same source and compare. Or compare the two cube files directly, value by value, in whatever you like.

What you should find: the decode matches to 0.01 of a 10-bit code value on average, with the worst points at 0.06. If you ever measure worse than that on a camera we sell a file for, email hello@pursuitlabs.ai and we will fix it or refund you.

One thing that test does not measure, and should not: everything after the decode. The tone curve, the highlight roll off and the colour rendering are choices, not facts, and they are what you are actually buying.

Why this is worth doing

Every LUT sold as a "look" quietly contains a conversion. If that conversion is off, every shot you put through it is off, and the error hides inside something that is supposed to be a creative choice. Separating the two means the part that should be exact is exact, and the part that should be taste is yours.

The test is a script that runs before any release. If a future change breaks a camera's conversion by more than rounding, the release stops.

Updated 2026-09-12. All guides