How Movie Barcodes Work
Building a movie barcode is a four-step pipeline: sample the film, average each sample to one colour, order the colours by timecode, and draw them as stripes scaled to shot length.
1. Sampling
Classic barcodes sample one frame per second, or one frame per shot. Per-shot sampling gives a cleaner image because a single stripe corresponds to a single lighting setup rather than an arbitrary time slice.
2. Averaging colour properly
Averaging pixels in plain RGB muddies colour — mixing saturated blue and orange in RGB gives grey. Averaging in a perceptual space such as OKLab keeps the mixed colour where your eye expects it, which is why barcodes generated in OKLab look more like the film than naive RGB averages do.
3. Shot length sets stripe width
Average shot length (ASL) is a real film-studies measure: total runtime divided by shot count. A 1970s drama might sit near 8 seconds; a modern action film near 2. Scaling stripe width by shot duration is what makes a barcode's texture recognisable — calm films get wide bands, fast films get a fine comb.
4. Structure and grading
Films are graded per sequence, so barcodes show act structure: an establishing warm act, a cooler middle, a high-contrast climax. This site models that with a three-act envelope over each film's palette, plus per-scene drift, so barcodes have narrative shape instead of uniform noise.
How this site generates them
- A seeded pseudo-random generator keyed to the title — the same film always yields the same barcode.
- A curated palette per catalogued film: hue centre, hue spread, saturation and lightness.
- Real metadata — year, director, runtime, aspect ratio and ASL — driving pacing and stripe count.
- OKLab mixing between neighbouring shots so cuts blend the way film does.
See it in action with the movie barcode generator or read about movie barcode art and prints.