Filmgrid

What is a LUT?

A LUT is a lookup table that maps every input colour to an output colour. That is the whole idea — the rest is detail worth understanding.

A LUT — Look-Up Table — answers one question for every colour in your image: given this colour in, what colour comes out? It is a translation table, not a filter with settings. There is no brightness slider inside a LUT and no logic that inspects your photo. Feed it the same pixel twice and you get the same answer twice.

1D versus 3D

A 1D LUT handles each channel on its own: red in becomes red out, green in becomes green out, and the three never talk to each other. That is enough to change contrast or gamma, but it cannot make a specific shade of teal warmer without dragging every other colour with a similar green value along with it.

A 3D LUT treats red, green and blue together as a coordinate in a cube. Each point in that cube maps to an output colour, which means it can shift one hue without touching its neighbours. Every LUT on this site is a 3D LUT in the .cube format — that is what makes film emulation possible, because film's whole character lives in how it renders particular colours rather than in overall brightness.

What is actually inside a .cube file

Open one in a text editor and it is readable:

TITLE "Example"
LUT_3D_SIZE 33
0.000000 0.000000 0.000000
0.031250 0.000000 0.000000
...

LUT_3D_SIZE 33 means the cube is sampled 33 times along each axis: 33 × 33 × 33 = 35,937 colour entries, listed with red changing fastest. Colours falling between entries are interpolated — usually trilinearly, which is what your software and this site both do. A size of 33 is the common standard; 17 is coarser and faster, 65 is finer and rarely necessary.

What a LUT cannot do

This is the part that trips people up. A LUT is a colour mapping and nothing else, so it cannot:

This matters when judging film emulation. Grain and halation are a large part of why film looks like film, and they have to be added separately — which is why the Filmgrid tool has grain and halation sliders alongside the LUT rather than baking them in.

Where a LUT belongs in your edit

Apply it late, on top of an image that is already exposed and white-balanced the way you want. LUTs are usually built assuming a normal, roughly neutral starting point, so feeding one a heavily graded or log-encoded image gives results that have little to do with the intended look. Correct first, then look.

Next: how to load a .cube LUT in your software →