Droplets of source imagery merge, split and refract into liquid clusters. Floating shape for FX Stack stickers.
GLSL fragment shader
The effect's own code. The uniforms and helpers above it — uTex, uFeedback, the depth proxy, the frame ring, depthAt(), timeAt() — are the same header every Ether-MOSH shader opens with, and are documented once on the registry rather than reprinted on all 143 pages.
void main(){ vec4 base=texture2D(uTex,vUv); vec2 aspect=vec2(uResolution.x/max(uResolution.y,1.0),1.0); vec2 p=(vUv-0.5)*aspect; float t=uTime*uSpeed; float field=0.0; vec2 bend=vec2(0.0); for(int i=0;i<7;i++) { float k=float(i); float a=k*2.39996+t*(0.12+0.02*k); float orbit=uSize*(0.10+0.23*(0.5+0.5*sin(t*0.6+k*1.7))); vec2 center=vec2(cos(a),sin(a*1.13))*orbit; vec2 d=p-center; float radius=(0.018+uWidth*0.55)*(0.75+0.25*sin(t+k)); float f=radius*radius/(dot(d,d)+0.0005); field+=f; bend+=d*f; } float coverage=smoothstep(0.85,1.05,field); vec2 uv=clamp(vUv+bend*uCurl*uAmount*0.4/aspect,0.0,1.0); vec4 art=texture2D(uTex,uv); float rim=exp(-abs(field-1.05)*5.0); art.rgb=art.rgb*(1.0-rim*0.2)+rim*0.23; gl_FragColor=floatingResult(base,art,coverage); }