All work
Tools

DitherGlyph Lite

A picture you can scan

The camera tier of the family. A chunky posterised picture that reads as art across the room, and as a message when a phone looks closely — up to about 4,600 characters.

v1.0.0
DitherGlyph Lite
A photograph of Benjamin that is also the message. The dither carries the text; the four magenta cat's eyes are the finders, and being circular they read the same at any rotation.
DitherGlyph Lite interface
Make it and scan it in the same page — type a message, pick a size, and point a camera at the result.
The itch

DitherGlyph is lossless and beautiful and completely unscannable, on purpose. So the obvious next question was whether the same idea survives a camera at all. I wanted to find out how far it could be pushed before it stopped being a picture.

The hard part

A phone camera is a hostile channel — glare, angle, rotation, compression, and a sensor that never sees the pixels you actually drew. Fine dither dies instantly. And the reader has to find the glyph in the frame before it can read anything.

How I built it

Fixed-rate cells big enough to survive resampling, colour pairs derived from the source picture so it still looks like a photograph, and Reed–Solomon underneath to absorb the errors that get through anyway. Detection is a cat's-eye finder — a white disc with a magenta iris and a black outline — which is circular, so it reads the same at any rotation. The scanner runs continuously with no countdown and recovers orientation by trying all four.

Where it landed

Verified on a real phone: it scans almost instantly, up to 4,665 characters at the largest size. The cat's-eye finder worked well enough that I went back and retrofitted it onto all three LumiCode formats.

Devlog

live from git
  1. v4: XL/XXL grids, cover-crop, auto orientation, true 4-rotation recovery
  2. v3 finders: the cat's eye — identical, circular, bigger, rotation-proof
  3. v2: full colour + high-res grids + spread permutation
  4. DitherGlyph Lite v1: chunky scannable glyphs + phone scanner

Getting something to work in a lab is the easy half. If you need it to work through a phone camera in bad light, that's the half I enjoy.

This one answered a question I'd been asking since LumiCode — the crack was findable, and it turned out to be the finder, not the payload.

Let’s build something