A 3D LUT samples a color transform on a grid of RGB inputs and lists the output color for every grid point. Cube, 3DL, and CSP all store that grid as plain text. They differ in their headers, in whether values are decimals or integer codes, in the order the grid points are listed, and in whether a 1D pre-LUT (shaper) can come before the cube.
| Format | Values | Sample order | Header |
|---|---|---|---|
Cube (.cube) | Decimal | Red changes fastest | LUT_3D_SIZE, optional TITLE and DOMAIN_MIN/DOMAIN_MAX |
Autodesk 3DL, Mesh (.3dl) | Integer codes | Blue changes fastest | 3DMESH and Mesh lines giving grid depth and bit depth |
Vertex-list 3DL (.3dl) | Integer codes | Blue changes fastest | A first line listing the input vertex positions |
CineSpace CSP (.csp) | Decimal | Red changes fastest | CSPLUTV100, 3D, per-channel 1D pre-LUTs, then the cube size |
Cube
Cube is the most widely supported text format. A 3D Cube file declares its grid with LUT_3D_SIZE (for example 33, giving 33 × 33 × 33 points) and then lists one R G B row per point, with red changing fastest. DOMAIN_MIN and DOMAIN_MAX can change the expected input range; most files use 0 to 1. A Cube file can also be a 1D LUT (LUT_1D_SIZE), and some dialects combine a 1D shaper with a 3D cube. Applications differ in which of these variants they accept.
Autodesk 3DL (Mesh)
The Autodesk style of 3DL stores integer output codes at a declared bit depth, such as 10, 12, or 16 bits. A Mesh line gives the grid depth and the bit depth. The grid has 2n + 1 points per axis, so 3, 5, 9, 17, 33, and so on. Rows list blue changing fastest. Because values are integers, converting to this format rounds them to the nearest code, and values outside the 0–1 range cannot be stored.
Vertex-list 3DL
Another 3DL style starts with a line of input vertex positions, for example 0 64 128 … 1023, followed by integer output rows with blue changing fastest. The positions show both the grid size and the input code range. The same .3dl extension covers both styles and several variants, so read the header before assuming which one a file uses.
CineSpace CSP
A CSP file starts with CSPLUTV100 and 3D, then gives a 1D pre-LUT for each channel before the cube size and the decimal output rows. The pre-LUT (shaper) remaps inputs before the cube is applied, which suits log or high-range inputs. When there is no real shaper, the pre-LUTs are simple 0-to-1 ramps.
What changes when you convert
- Decimal to integer: values are rounded to the chosen bit depth. Check the largest change; at 12 bits or more it is usually tiny.
- Out-of-range values: decimals can go below 0 or above 1; integer codes cannot. Keep such LUTs in Cube or CSP.
- Grid size: Mesh 3DL needs a 2n + 1 grid. Other sizes need resampling, which changes the samples.
- Shapers and input ranges: dropping a 1D shaper or a non-default input range changes the result, so a careful converter refuses rather than silently dropping them.
- Color space and range: changing the file format never converts between color spaces or between full and legal range. Confirm what the destination application expects.
The free online LUT converter converts 3D LUTs between these four formats in your browser. It reads every result back and compares it with the source, and it refuses conversions it cannot make exactly instead of guessing.
Other formats
Pipelines also use CLF, Quantel, Truelight, Nucoda CMS, IRIDAS Look, ARRI Look, and others. LUT Tools in PatternSpace for Mac reads these, lets you choose the export grid, keeps compatible shapers as their own stage, and analyzes range, monotonicity, and the neutral axis before you deliver. Analysis is free; writing files requires Pro. See the LUT delivery workflow for batch export with a PDF report.