What Is a .3dl File? Autodesk's 3D LUT Format Explained
A .3dl file is a three-dimensional colour lookup table in the format Autodesk introduced with Lustre and still uses across Flame. Like a .cube, it maps input colours to output colours; unlike a .cube, it writes them as integers and leaves several things implicit.
If you have been handed a .3dl and your software wants a .cube, the conversion is straightforward — but there is one detail that silently ruins it, and it is worth knowing before you trust a converter.
What is inside a .3dl
The file is plain text. It may open with a header — 3DMESH on one line, then Mesh followed by two numbers — or with nothing at all. Then comes a single line of many integers, the shaper ramp, whose length tells you the grid size. Then one line per lattice point, three integers each.
Compared with .cube, three things are missing or different. The values are integers rather than decimals between 0 and 1. There is no field naming the grid size explicitly; you infer it from the ramp or from the entry count. And there is no statement of what scale the integers are on.
- ·3DMESH — optional header keyword
- ·Mesh <input depth> <output depth> — optional, Lustre style
- ·A single long line of integers — the shaper ramp, one entry per grid step
- ·n³ lines of three integers each — the lookup table
The bit depth is not written down
A .3dl's values are integers on some scale, and the file does not say which. Ten-bit data tops out at 1023, twelve-bit at 4095, sixteen-bit at 65535. The only available evidence is the largest number present, so readers infer the depth from it.
This is what OpenColorIO does, and its source comment on the matter is refreshingly blunt about the situation: there is no better way to determine it from the file. It works reliably in practice and fails in one specific way — a LUT whose brightest output never approaches full scale can be read one step low, which renders the image washed out. If a converted .3dl looks flat and lifted, that is the first thing to check.
The channel order trap
This is the detail worth carrying away. A .cube lists its entries with red varying fastest — the second line is one step of red, not one step of blue. A .3dl lists them with blue varying fastest. The two formats iterate their cubes in opposite directions.
A converter that copies triplets across in order therefore produces a file that is structurally perfect: correct entry count, valid values, opens without complaint in any application. And every colour has its red and blue axes exchanged. There is no error message, because nothing is malformed — the numbers are simply in the wrong places.
The symptom is unmistakable once you know it: skies turn orange, skin turns blue, and the effect is far too large to be a subtle grading difference. If a converted LUT does that, the ordering was not transposed.
When you actually need .3dl
Almost every current application prefers .cube, and if both are offered there is no reason to choose .3dl. It still turns up in Flame and Lustre pipelines, in some hardware LUT boxes, and in older on-set workflows where the format was standard when the equipment was designed.
Converting to .cube is lossless — integers become decimals with room to spare. Converting the other way quantises, which at twelve bits is a rounding error around 0.012% and invisible in practice.
Frequently asked questions
How do I convert a .3dl to .cube?
Any converter that handles both, provided it transposes the channel order. RawCut's 3DL ↔ CUBE tool does it in the browser in both directions, reports the bit depth it inferred, and renders the result on a sample frame so you can confirm it before downloading.
Is .3dl better or worse than .cube?
Neither, as data. Both describe the same kind of lookup table at the same grid sizes. .cube is easier to work with because it states its size and uses an unambiguous 0–1 scale; .3dl files are smaller as text because integers are shorter than decimals. Use whichever your software asks for.
Why does my converted LUT have orange skies?
The channel order was not transposed. .cube advances red fastest and .3dl advances blue fastest, so copying entries across in order swaps the red and blue axes of the entire transform. The file is not corrupt — it is a valid LUT describing the wrong thing.
What does the first long line of numbers mean?
It is the shaper ramp: the input code values the grid points correspond to. Its length is the grid size, so a line of 17 numbers means a 17³ LUT. Some files omit it entirely, in which case the size has to be derived from the cube root of the entry count.
Can Photoshop or Premiere open a .3dl?
Premiere and After Effects accept .3dl in their LUT slots. Photoshop's Color Lookup layer prefers .cube and .3dl support is patchier. Converting to .cube first is the reliable route for Adobe stills work.
Drop a .3dl into RawCut's converter for a .cube — with the channel order transposed properly, and the inferred bit depth shown so you can check it.
Convert a .3dl now