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.
close