GLITCH

Photograph in, damage out — but the damage does what you tell it. Every operator is aimed by a mask, every random choice comes from a seed, and every picture carries the recipe that made it.

or drop one anywhere · or paste from the clipboard

Steerable damage

Glitch art is what happens when a decoder is asked to read something it cannot. The good results are layered — three to six failures stacked, each in a different place — which is usually where the trouble starts: stack enough random effects and you get mud, and you can never get the good one back. Two structural decisions fix both problems.

1 · Seeded, not random

Nothing here calls the random number generator. Every “random” choice — which byte to corrupt, which line to smear, how far a slice slides — comes from hashing the seed together with the position it applies to. So the same photograph, recipe and seed always produce the same picture, down to the byte, and the seed becomes something you can turn rather than something that happens to you. Reroll it and you get a genuinely different arrangement of the same idea.

2 · Where is separate from what

Every layer carries a field: a mask that decides where the operator is allowed to act. Derive it from the picture (brightness, edges), from geometry (bands, a ramp, a circle), from seeded noise, or paint it by hand — and outside that mask the original survives byte for byte. That is what turns a bag of effects into a tool: sort only the sky, corrupt only this band, split channels only along hard edges.

The operators

Most are pure arithmetic and identical in every browser: pixel sorting, PNG predictor smear, channel splitting, slice shifts, wrong stride, 8×8 DCT damage, bit planes, composite video (a real subcarrier, encoded and then decoded with the wrong phase — that is where the rainbow moiré and dot crawl come from), tape damage, datamosh, palette collapse, ghosting.

One is not: jpeg databend encodes a real JPEG, hits bytes inside the entropy-coded scan, and hands the wreckage to the browser’s own decoder. That is the genuine artefact — a desynchronised Huffman reader dragging its error downstream — and it comes with genuine caveats, stated rather than hidden: it can fail (retries are seeded too), byte position maps only loosely to picture position, and canvas JPEG encoders differ between browsers, so this operator alone is reproducible within a browser rather than across them.

Reproducibility

The recipe — operators, parameters, fields, seed — is the whole state of the machine. Copy it, put it in a link, or let it ride along inside the exported PNG. An image nobody can reproduce is a slot machine; an image that carries its recipe is a tool.

Runs entirely in your browser. Part of photo.mino.mobi; its sibling glass does the opposite — the least-damaged version of your photograph it can build.