I built a browser-only tool that disrupts invisible AI watermarks using Canvas, geometry, noise, and JPEG recompression. No backend, no uploads, no tracking.
Pipeline: Shake – Random rotation (±0.5°) + slight zoom Stir – Low-amplitude RGB noise via getImageData Crush – JPEG recompression at ~0.85 quality
Tested with SynthID (Google Gemini AI watermarking), and it remained undetected in all tests.
Pipeline improvements? What would you add/change?
