How it works
Custom ShaderMaterial; pointer is smoothed with Vector2.lerp and passed as a uniform.
An icosphere whose vertices ripple outward from the cursor, with a normal-based palette.
Custom ShaderMaterial; pointer is smoothed with Vector2.lerp and passed as a uniform.
Renders through the single shared <Canvas> via drei <View> — no extra WebGL context, and the render loop only runs while a view is mounted. Playground writes straight into uniforms.value — zero React renders while dragging a slider.
In reduced mode the scene renders on demand only: a static, fully lit frame with no idle motion.
uniform float uStrength; // 0.25 uniform float uFrequency; // 12 uniform float uSpeed; // 2