All work
Tools

DitherGlyph/DitherCode

A picture whose dither is the data.

Two tools that store data in the dithered grain of a photograph. DitherGlyph is the high-resolution tier: text, voice, a 3D mesh, a face capture, hidden in the arrangement of the dither itself. DitherCode is the low-resolution, phone-scannable tier: a chunky posterised picture a camera reads from across the room.

v1.0.0
DitherGlyph/DitherCodeDitherGlyph/DitherCodeDitherGlyph/DitherCodeDitherGlyph/DitherCode
The hero glyph; an ordinary portrait of Benjamin carrying a written message inside its grain. Nothing rides on top of the picture; the arrangement of the dither is the payload.
DitherGlyph/DitherCode interface
The maker: drop a photo, choose a look from fine to riso, pick pure or deep, then add text, voice, a face, a 3D model or any file; the capacity meter measures the picture as you go.

A question I had carried since LumiCode; could the data live in the picture's own grain, with no frame, no finder squares, nothing added on top?

Posterising a photo locks in which pixels are bright, but which exact pixels carry the brightness is free, and that freedom is the whole channel. A phone camera is still hostile territory though: glare, angle, rotation, compression.

Two tiers of one format. DitherGlyph packs dense payloads into the dither arrangement at high resolution, about 0.3 bits per pixel through a PNG; pure, deep at roughly sixteen times the capacity, and sealed with encryption. DitherCode trades resolution for distance; fixed-rate chunky cells and a cat's-eye finder a phone locks onto almost instantly.

Both live: ditherglyph.quiettools.dev and ditherglyph-lite.quiettools.dev. 65 to 105 KB rides in a 2 MP picture; the scannable tier is verified on a real phone at up to 4,665 characters, and its cat's-eye finder worked well enough that I retrofitted it across the LumiCode formats.

Get in touchAll work