1. Master LUT formats comparison table
| Format (Baselight name) | Dimensions | File representation | Grid/size used | Typical size options | Data encoding |
|---|---|---|---|---|---|
| Truelight cube | 3D (+ separate 1D input shaper section) | Plain text, FilmLight proprietary “Truelight Cube v2.1” syntax
(# lutLength, # InputLUT, # 3DLUT
blocks) |
1D shaper 101 pts + 3D 64³ | 1D length + cube width configurable | ASCII floats, 0–1 range (input shaper can exceed 1) |
| Truelight 1D | 1D only | Same Truelight Cube container, but only an # InputLUT
1D block |
1024-point curve | 1024/2048/4096 typical | ASCII floats, normalized 0–1 |
| AMIRA | 3D | Plain text .cube, identical syntax to Resolve/Iridas
cube |
33×33×33 | 17/33/65 | ASCII floats 0–1, LUT_3D_SIZE keyword |
| Arri | 3D | Plain text .3dl, Autodesk-style mesh with explicit
input code values |
33×33×33 | 17/33/65 | ASCII integers, 10-bit code values (0–1023), header gives input value list |
| Autodesk | 3D | Plain text .3dl, classic Autodesk mesh |
17×17×17 | 17/33/65 | ASCII integers, 12-bit (0–4095) output values |
| Autodesk 1D | 1D | Plain text .lut, LUT: 3 1024 header |
1024-point curve | 1024/4096/65536 | ASCII integers, 10-bit (0–1023) |
| Autodesk 1D half float | 1D | Plain text .lut, LUT: 3 65536 65536f
header |
65536-point curve | up to 65536, “f” = float flag | ASCII floating values, half-float precision range |
| Autodesk CTF | 3D (XML “process list”, can chain ops) | XML, AMPAS/ACES-style <ProcessList> →
<LUT3D> → <Array> |
48×48×48 | configurable, often 33–65 | ASCII floats 0–1, 16f bit depth declared, tetrahedral interpolation flag |
| Autodesk Lustre (Mesh) | 3D | Plain text .3dl, Lustre-specific
3DMESH/Mesh tokens + trailing
LUT8 gamma 1.0 block |
17×17×17 | 17/33/65 | ASCII integers, 12-bit, plus an embedded 1D gamma tag |
| BMD | 3D | Plain text .cube, standard cube syntax with explicit
LUT_3D_INPUT_RANGE |
33×33×33 | 17/33/65 | ASCII floats 0–1 |
| Barco | 3D | Binary proprietary container (“LUT-CLUT”), copyright header + packed numeric tables | small header + compact binary mesh | fixed by Barco projector spec | Raw binary (not human-readable), looks like 16-bit/mixed packed values |
| BlackMagic | 3D | Plain text .cube, “HDLINK 3D LOOKUP TABLE” comment
header |
16×16×16 | 16/17/33 (HDLink limited to small cubes) | ASCII floats 0–1 |
| BlackMagic 1D | 1D | Plain text .txt, “HDLINK GAMMA TABLE” header, CR-only
line endings |
1024-point curve | matches HDLink hardware LUT depth | ASCII floats, 0–1018-ish (10-bit-like scale, not normalized to 1.0) |
| CLF (Common LUT Format) | 3D (chainable XML, supports Range/Matrix/LUT1D/LUT3D ops) | XML, official AMPAS standard,
xmlns="urn:AMPAS:CLF:v3.0" |
64×64×64 | fully flexible, any size per <Array dim> |
ASCII floats, explicit in/out bit depth and color space descriptors
(InputDescriptor/OutputDescriptor) |
| Canon gamma 1D | 1D | Plain text .clut, FilmLight-authored Canon-style
key/value header (type gamma, size,
order) |
1024-point curve | 1024 typical | ASCII floats 0–1 |
| Canon gamut 3D | 3D | Plain text .clut, same Canon key/value header but
type gamut |
33×33×33 | 17/33/65 | ASCII floats 0–1 |
| CineSpace | 3D (with optional pre-LUT 1D shaper curves per channel) | Plain text .csp, official Rising Sun “CSPLUTV100”
spec |
shaper 2-pt + cube 32×32×32 | cube: 17/33/65; shaper resolution independent | ASCII floats, explicit domain min/max per channel |
| Colorfront 1D | 1D | Plain text .1dlut, no header at all (raw rows
only) |
1025-point curve | implementation-defined | ASCII floats 0–1, tab-separated |
| Colorfront 3D | 3D | Plain text .3dmesh, no header (raw rows only) |
33×33×33 | implementation-defined | ASCII floats 0–1, tab-separated |
| DVS | 3D | Plain text .3dl, Autodesk-style mesh exported via
Truelight |
17×17×17 | 17/33/65 | ASCII integers, 10-bit (0–1023) |
| DVS 1D | 1D | Plain text .txt, minimal comment header |
1025-point curve | implementation-defined | ASCII floats 0–1, tab-separated |
| DaVinci | 3D | Plain text .dat, “LUT SIZE” header, legacy DaVinci
(pre-Resolve-cube) format |
33×33×33 | 17/33/65 | ASCII floats 0–1 |
| Evertz | 1D (per-channel, R/G/B blocks) | Plain text .lut, simple size +
# red/green/blue channel markers |
1024 points/channel | hardware-dependent | ASCII integers, scaled ~0–1023 |
| ICC | N/A — device/color profile, not a grading LUT in the cube/curve sense | Binary ICC profile (ColorSync-readable), contains an A2B/B2A CLUT internally | internal CLUT grid (vendor-defined) | n/a (profile-based) | Binary, ICC v2.2 structure, includes absolute colorimetric intent + PCS values |
| IRIDAS | 3D | Plain text .cube (identical syntax family to
BMD/AMIRA/BlackMagic) |
33×33×33 | 17/33/65 | ASCII floats 0–1 |
| IRIDAS 1D | 1D | Plain text .lut, LUT_1D_SIZE +
DOMAIN_MIN/MAX keywords |
1024-point curve | 1024/2048/4096 | ASCII floats 0–1 |
| LUTher | 3D | Plain text .txt, FilmLight’s LUTher-utility-style
header (# channels: c3, # entries) |
17×17×17 (4913 = 17³) | configurable | ASCII integers, 10-bit (0–1023) |
| Nucoda | 3D | Plain text .cms, NUCODA_3D_CUBE keyword,
otherwise cube-family syntax |
16×16×16 | 16/17/33 | ASCII floats 0–1 |
| Panasonic | 3D | Plain text .vlt, “panasonic vlt” comment +
LUT_3D_SIZE |
17×17×17 | 17/33/65 | ASCII integers, 12-bit-scale (0–4095) |
| Pandora | 3D | Plain text .mda, Pandora-specific header block
(#HEADER/#type/in/out) |
16-in / 65536-out (i.e. 16³ grid, 16-bit output range) | configurable in/out depth | ASCII integers, asymmetric in (12-bit-ish)/out (16-bit) scaling |
| Quantel | 3D | Plain text .txt, descriptive header (“max value 1023”,
“vertices 17”, channel order notes) |
17×17×17 | 17 fixed per this export | ASCII integers, 10-bit (0–1023) |
| Quantel 65x65x65 | 3D | Plain text .txt, same Quantel family but
float-normalized |
65×65×65 | fixed at 65 (per format name) | ASCII floats 0–1 |
| Scratch | 3D | Plain text .3dl, Autodesk-mesh family, large grid |
32×32×32 | 17/32/33/65 | ASCII integers, 16-bit (0–65535) |
| Sony | 3D | Plain text .cms, Sony BVM-L proprietary “MESHSCMS”
header |
33×33×33 | fixed mesh sizes per monitor model | ASCII floats, can exceed 1.0 (extended/HDR range), upper-triangular coordinate order |
| Sony BVME | 3D | Plain text .lut, Sony BVM-E proprietary key/value
header (#Color Space, #Gamma,
#Grid Num) |
33×33×33 | fixed mesh sizes per monitor model | ASCII floats 0–1 |
(LUT_1D and LUT_3D sizes above reflect what this specific export produced — Baselight lets you change resolution before export for most of these, within each format’s supported range.)
2. Family groupings — formats that are essentially the same thing wearing a different label
A.
The “.cube” family (Resolve-style ASCII cube, floats 0–1,
LUT_3D_SIZE keyword)
AMIRA, BMD, BlackMagic, IRIDAS, Truelight cube’s 3D
portion are all the same underlying syntax —
plain-text, LUT_3D_SIZE N, then N³ rows of
R G B floats from 0–1. Differences in comment
header text.
Any app that reads “Resolve cube” will read all of these interchangeably.
B. The Autodesk “.3dl” mesh family (ASCII integers, input-code-value header line)
Autodesk, Arri, DVS, Scratch, Autodesk Lustre,
LUTher classic .3dl structure: a
header line listing the input code values
(e.g. 0 64 128 192...1023), then rows of output
R G B integers. Differences: – Bit depth of the
output values varies: Autodesk/Arri/DVS use 10–12-bit scale
(0–1023/4095), Scratch uses full 16-bit (0–65535), LUTher uses 10-bit
but with a plain entry-count header instead of a code-value line. –
Arri explicitly lists 10-bit (0–1023) input code values
rather than Autodesk’s 12-bit (0–4095) range. – Lustre
adds extra non-standard tokens (3DMESH, Mesh,
trailing LUT8 gamma block) on top of the same mesh body — a
generic .3dl parser that doesn’t expect these tokens may
choke on a Lustre file even though the numeric mesh itself is standard.
This is the most fragmented family: same idea (integer mesh + code-value
header), different bit depths and optional wrapper tokens.
C. The Quantel/DVS/Evertz “plain row” 1D & similar small-header families
DVS 1D, Colorfront 1D, Quantel (17³), Evertz all reduce to: minimal/no header, then rows of values. These are the most “fragile” formats — barely any metadata, so the receiving software must already know the grid size and scale convention.
D. XML process-list formats (chainable, ACES-adjacent)
CLF and Autodesk CTF are structurally the same idea:
an XML <ProcessList> containing one or more typed
nodes (<Range>, <Matrix>,
<LUT1D>, <LUT3D>), each with
explicit inBitDepth/outBitDepth and an
<Array dim="..."> of values. Difference:
CLF is the official, vendor-neutral AMPAS/ACES standard
(xmlns="urn:AMPAS:CLF:v3.0") with mandatory
InputDescriptor/OutputDescriptor color-space
tags — built for interchange. CTF is Autodesk’s
earlier, proprietary precursor format with similar structure but no
formal interoperability guarantee outside Autodesk/FilmLight tools. CLF
is the one you should prefer for archival/interchange; CTF is mainly for
Flame/Lustre pipelines.
E. Camera/monitor manufacturer “branded” formats
Canon gamma 1D / Canon gamut 3D, Panasonic, Sony, Sony BVME, Arri, AMIRA are not really new mathematical formats — they’re cube/mesh/1D data wrapped in a header the manufacturer’s own software (or monitor firmware) expects to see, often with a specific grid size or coordinate convention (Sony’s “MESHCOORDINATES UPPER” is a non-trivial difference — it changes how the mesh is indexed, not just the wrapper). Treat these as “give the camera/monitor what its own ingest tool wants,” not as a distinct color science.
F. Proprietary/binary outliers
Barco (packed binary “LUT-CLUT”) and ICC (binary ICC color profile with embedded CLUT) are not human-readable text at all and aren’t really “LUT files” in the editable sense — they’re compiled binary containers meant only for their target device (Barco projector, ICC-aware color-managed app/OS).
G. Vendor-system “mesh in proprietary key-value” formats
Pandora, Nucoda, Quantel 65x65x65, CineSpace each invent their own small header syntax around an otherwise ordinary R/G/B float or integer grid. CineSpace stands out because it also supports independent pre-LUT 1D shaper curves per channel ahead of the 3D cube — a feature most of the others lack.
3. Compatibility — grading software & cameras
| Format | Native/best support in | Notes on incompatibility |
|---|---|---|
Resolve .cube family (AMIRA/BMD/BlackMagic/IRIDAS) |
DaVinci Resolve, Nuke, most modern NLEs/grading tools, OBS, FFmpeg | BlackMagic’s 16³ cap is below what some apps expect as a minimum (some require ≥17³) |
.3dl mesh family
(Autodesk/Arri/DVS/Scratch/Lustre) |
Autodesk Flame/Lustre, Assimilate Scratch, many VFX pipelines | Bit-depth mismatches: a tool expecting 12-bit code values may misread a 10-bit Arri file (clipped/scaled wrong) unless it auto-detects |
| CTF | Autodesk Flame, FilmLight | Not a recognized ACES/CLF interchange format outside those ecosystems |
| CLF | Any ACES-compliant pipeline (Nuke, Resolve OCIO configs, Baselight, ACES-aware tools) | Oldest grading tools without CLF/OCIO support won’t parse it |
| Canon gamma/gamut | Canon Cine-Servo lenses/cameras’ onboard look tools, Canon RAW Development software | Not generally importable into non-Canon camera firmware |
Panasonic .vlt |
Panasonic VariCam/camera monitoring tools | Specific to Panasonic ecosystem; integer scale may not auto-normalize elsewhere |
Sony .cms / BVME .lut |
Sony BVM-L / BVM-E reference monitors | Monitor-model-specific mesh size; not meant for general grading software ingestion |
| Barco | Barco projection/calibration systems only | Binary, vendor-locked, unusable elsewhere without Barco tools |
| ICC | OS-level/Photoshop/print & color-managed display workflows | Not a grading-tool LUT; describes a device profile, not a “look” |
| Evertz | Evertz broadcast routers/converters with onboard LUT processing | Not intended for offline grading software import |
| Pandora | Pandora Pixel Engine systems | Asymmetric in/out bit depth handling is unusual; generic LUT readers may misinterpret |
| Quantel / Quantel65 | Quantel/Grass Valley finishing systems | Legacy; many modern tools no longer have a native importer, would
need manual reformat to .cube/.3dl |
| Nucoda | Digital Vision Nucoda | NUCODA_3D_CUBE keyword usually only recognized by
Nucoda itself, though body is cube-compatible |
| CineSpace | Assimilate Scratch, many grading tools that support
.csp |
Pre-LUT shaper curves may be ignored by simpler .csp
parsers, changing the result |
Colorfront .1dlut/.3dmesh |
Colorfront Transkoder/On-Set Dailies | No header at all — totally reliant on the receiving app already knowing the convention; not portable to a generic reader |
| LUTher | FilmLight LUTher utility, and tools that accept generic
.3dl-style triplets |
Header comment style is FilmLight-specific, but numeric body is standard 3D mesh |