Skip to content
MotionLab

Liquid Image Transition

Noise-displaced liquid morph between images — click, arrow keys or autoplay.

★ showcaseR3FGLSLGSAP

How it works

Fragment shader mixes texA/texB with a noise-shaped threshold; GSAP tweens uProgress, then textures swap.

Performance

Renders through the single shared <Canvas> via drei <View> — no extra WebGL context, and the render loop only runs while a view is mounted. Only one uniform changes per frame.

Accessibility & reduced motion

Prev/next buttons, live region with the image caption; reduced mode crossfades.

Playgroundshader
Export
uniform float uIntensity; // 0.4
uniform float uDuration; // 1.4
uniform float uScale; // 3
uniform bool uAutoplay; // false