Shibori cloth: folded, bound, dipped. Where the binding held, the cloth stayed pale in soft-edged squares; everywhere else the dye crept in and pooled darker along the folds. The pointer is wet dye; it bleeds into the pale squares around it.
Tune here, paste once — it ships as about a kilobyte of WebGL.
Pick a palette, drag the sliders, hit randomize. The prompt carries the values you see, not the defaults.
Single HTML by default. Switch to Next.js, React, Vue, Astro, WordPress, Shopify or Webflow and the output contract changes with it.
Claude, Cursor, ChatGPT, Copilot, v0 — anything that writes code. You get a self-contained canvas with the shader inline.
First child of a relative container, content above it. Add a scrim if text needs more contrast.
The uniforms stay named and the CONFIG object sits at the top of the script. Nothing is baked.