PRO

WebGL Dissolve Scroll

A hero image progressively dissolved from the bottom up by a real-time WebGL noise field as you scroll: an fbm-driven edge eats across the frame in a colored wash while a stacked headline below fades in one word at a time.

Component

Morphogenesis

Solid form gives way to liquid movement.

An underlying field of motion pushes and pulls the image across its surface, redistributing pixels in a way that feels organic and constantly in flux.

This animation is driven by a real-time WebGL displacement process where interaction introduces force into the surface, causing form to bend, stretch, and reorganize dynamically. Rather than relying on fixed keyframes, the visual state evolves continuously, allowing motion to feel organic, responsive, and materially present as the page progresses.

Install
npx shadcn@latest add https://ui.aryank.space/r/webgl-dissolve-scroll.json

Installs from ui.aryank.space. To add it by hand, copy the files in Usage below, or register the @compronents namespace via the docs.

Files

API
PropTypeDefaultDescription
heroImagestringBLANK-hosted JPGImage dissolved by the WebGL field.
dissolveColor / spread / speedstring / number / number"#ebf5df" / 0.5 / 2Wash color, edge noise amount, and scroll-to-dissolve rate.
embeddedbooleantrueOwn the scroll container; set false to ride the window scroll.
Customize
dissolveColor / spread / speedtuple

Wash color, noise displacement, and scroll multiplier.

eyebrow / headerText / bodyText / aboutTexttextarea

The layered hero and about copy.

Dependencies
gsaplenisthree