Glitch Art & Datamosh Studio

Throw an image in, slide the dials, get a corrupted broadcast back. Scanlines, horizontal tear, RGB channel separation, quantization noise — pure Canvas pixel math, no upload.

Drop an image to glitch
PNG · JPEG · WEBP · go heavy on the sliders

How it works

Every effect is a single pass over the source pixel data via getImageData / putImageData:

  • Scanline noise — every Nth row gets its brightness multiplied by a deterministic-random value driven by the seed.
  • Horizontal shift / tear — clusters of rows offset horizontally by random amounts. Picks the worst offenders so you get visible "VHS tracking" bands instead of uniform mush.
  • RGB channel separation — the source is composited three times via globalCompositeOperation = 'lighter' with R, G, B isolated and offset by ±N pixels.
  • Quantization noise — bit-depth reduction (2-8 bits per channel) with ordered dithering, producing a 8-bit / pixel-art-ish corruption.
  • Block displacement — rectangular blocks of the image swap positions, creating the classic "datamoshed I-frame skip" look.

The Seed field drives all random values deterministically — same seed + same sliders = same output. Hit the dice icon for a fresh random seed.