COLOR HARDER

It can take more.
BUILD NOTES ยท RIBT//LABS
USE THE TOOL  โ†’

I wanted one image to become fifty. Not fifty edits โ€” fifty decisions, made fast enough that I could see the shape of the space I was working in.

So I built a tool that does one thing: take a plate, map its brightness onto colour, and let me press a button until something lands. This is the plate everything below came from.

The source. One engraving, untreated. Everything below is this.BASE PLATE

01THE FIRST VERSION WAS A FILTER

It had contrast, grain, RGB split, pixel sort โ€” everything you'd expect. And every output looked like the original wearing a hat. I kept telling myself it was working. It wasn't.

The actual problem was stupid: there was no contrast control at all. Nothing could ever crush. Flat in, flat out. I'd also picked palettes that were black-to-beige โ€” greyscale wearing a hat, same problem one layer up.

The fix wasn't more effects. It was fewer, and harder. Posterize down to three levels, crush the contrast past 90, map those levels onto colours I actually chose. The image got a structure instead of a coating.

02WHAT I THREW AWAY

CUT

Glitch โ€” RGB split, pixel sort, block displacement, scanlines. Killed three separate times before it stayed dead. It read as digital corruption when everything I liked was reading as print.

Halftone โ€” flattened the engraving's cross-hatching into a uniform screen and threw away the exact thing that made the plate worth using.

Mosaic โ€” rebuilt the image from squares, bars and triangles. Well built, and it looked like software. Every other tier reads as something that could happen to real ink on real paper.

Annotation โ€” bounding boxes and confidence scores stamped over the image. It was the original idea for the whole project, and it kept pulling attention off the colour.

Every single thing I cut made it better. Ten tiers of colour is what was left standing.

03THE LADDER

The tiers aren't "more intense." Each one breaks an assumption the tier below it depends on. Same plate, all ten.

T1 ยท HOUSE
Three tones, ordered dark to light. The restrained one โ€” everything else is a departure from this.
T2 ยท HARD
Three tones, disordered. Acid yellow sitting on cobalt, no neutral anchor anywhere.
T3 ยท STACK
Stop using three. Multiple flat bands, each its own ink โ€” the background gets its own colour.
T4 ยท BURN
Stop mapping in order. Hue cycles as brightness climbs, so the ground shifts through several colours at once.
T5 ยท FIELD
Colour stops depending only on brightness. Two palettes blended by position โ€” green at one edge, magenta at the other.
T6 ยท PLATES
Tonal masks inked separately, offset, overprinted. The speckle is where two plates disagree.
T7 ยท CONTOUR
Read the gradient between pixels, not the pixels. Every hatch line in the engraving gets found and inked.
T8 ยท FLOW
Pixels displaced by their own brightness. Tone inverted โ€” the skull goes pale, the ground goes violet.
T9 ยท TOTAL LOSS
Feedback. The pipeline run on its own output until the hatching breaks into dust.
T10 ยท CHAOS
Every operator at once. Flow, edges and feedback compounding until the plate is barely a plate.

Colours available in a single frame goes 3 โ†’ 8 โ†’ 256 โ†’ 65,536 as you climb. T1 is a colour decision. T5 is a colour field. T10 is complete chaos โ€” every operator firing at once, and no two presses alike.

04THE PLATE DECIDES MORE THAN THE TOOL

I spent a long time blaming the tool for speckly results. It was the source, and I had the rule backwards.

My first instinct was that clean, flat, graphic sources would work best. They don't โ€” not here. If a plate's brightness clusters in one place, most of the palette never appears: the bands land empty and you get two colours out of a six-colour scheme.

SOURCE PLATEBANDS REACHEDLARGEST BAND
white-paper line art4 / 875%
flat gradient sky5 / 879%
toned-paper engraving7 / 836%

Half the palette invisible, on plates that looked perfectly good.

To be clear โ€” you can still make work you'd hang off a flat graphic plate. Two colours and a hard silhouette is a poster, and some of my favourite results are exactly that. It just isn't using the instrument. The tiers past T3 have nothing to grab, so you're running a ten-tier tool at two.

What unlocks the whole thing is toned paper, cross-hatching at several densities, deep blacks and bright highlights all present.

The squint test: if you see roughly even amounts of black, dark grey, mid grey, light grey and white, every band will fire.

05RANDOM COLOUR IS MOSTLY MUD

Pure RGB randomness gives you brown. The generator works in hue-saturation-lightness under harmony rules โ€” mono, analogous, complement, split, triad โ€” with a hard floor on how close the three tones may sit in brightness. Break that floor and the image collapses into a shapeless blob.

Then I measured what it could actually reach. Chopping the space into 300 buckets: 264 reachable, 36 impossible. Mid-lightness greys and near-white vivids simply could not be produced, because the mid tone had a saturation floor and every palette was forced dark-to-light.

Two changes โ€” a tonal key control, and dropping the saturation floor to zero โ€” took it to 300 / 300.

06THEN ANIMATE IT

The obvious move is rotating the hue. It looks like a screensaver. I built five motions and threw away four.

What survived is boil: each frame nudges every pixel slightly before quantising, so pixels sitting near a band edge land on the other side and change ink. Flat interiors barely move โ€” those pixels sit in the middle of a band. All the churn concentrates in the transition zones. Solid shapes hold while their boundaries crawl.

LIVE โ€” the boil engine running in this page

Two problems surfaced immediately. Per-pixel noise is invisible on flat areas, so the noise had to become clumped โ€” a coarse cell field moving as patches, with fine noise breaking up their edges.

And the same setting behaved completely differently depending on the tier: 12% movement on a two-tone image, 67% on a seven-band one, because more bands means narrower bands. Normalising the jitter against band width closed that gap from 57 points to 0.2. One setting now means one thing everywhere.

LEVELPIXELS CHANGING INKPATCH SIZE
ANIMATE5%15px
hard10%12px
HARD18%9px
harder32%6px
HARDER57%3px

07WHAT I ACTUALLY LEARNED

RESTRAINT IS THE FEATURE

Ten tiers exist. The images worth keeping came from three or four of them. The loud ones only land because most of the set stays quiet โ€” and four whole features had to die for the rest to work.

MEASURE INSTEAD OF ARGUING

Every time I had a hunch about why something looked wrong, counting pixels settled it faster than staring did. The plate ranking, the gamut gaps, the boil calibration โ€” all of it came from counting, not taste. Taste decided what to build. Counting decided whether it worked.

THE TOOL DOESN'T MAKE THE ART

It makes the space visible, so you can walk around in it and pick.

OPEN COLOR HARDER  โ†’ MORE INSTRUMENTS AT RIBT//LABS  โ†’