---
title: A Colour Grader Where Distance Was the Whole Idea
description: Pick a colour, transform every nearby colour as a function of distance. A proof-of-concept grader I built to try one interaction idea.
date: 2026-04-30
period: 'June 2018'
thumbnail:
  src: ./_assets/photo-colour-grader.jpg
  alt: Colour grading interface with tonal controls and an edited preview.
article:
  tags: ['graphics', 'web', 'tools']
  role: Interface and image processing author
  stack: ['JavaScript', 'Canvas', 'Image processing']
  outcome: A working proof-of-concept grader and an interaction model I'd still defend
  audience: technical
project:
  title: Photo Colour Grader
  description: Pick a colour, edit every nearby colour as a function of distance. A grader built around one interaction idea.
  thumbnail:
    alt: Screenshot of a colour grading interface applied to a photograph.
---

In June 2018 I got tired of every photo editor making me think in masks. What I wanted was to point at _this orange_ in a photo from one of my [walks](/articles/photo-site-generator/), nudge it, and have the neighbouring reds and yellows come along by however much made sense; the edit defined by distance in colour space, not by a region I'd painted on the image. No tool worked that way, so I built the proof of concept.

The interface was a colour wheel. Click to drop a marker on a colour, drag to shift it, click again to add another marker with its own settings. Every transformation fell off smoothly with distance from the picked colour, so the photo never developed the hard seams that masks produce. There was no mask anywhere in the program, which was the entire experiment.

I never grew it into a real tool, but the idea hasn't stopped feeling right: distance in colour space is the natural unit for the way people describe edits out loud ("warm up the skin a little, leave the sky"). If I came back to it I'd build the pipeline on WebGL rather than canvas, because the interaction only earns its keep when the preview is live on a full-resolution photo, and canvas could never quite get there.
