WEBGL STUDY / DYNAMIC ATTRIBUTES

A wave is an attribute update.

A grid of points keeps its topology while CPU code rewrites the position and scale buffers every frame. A tiny ShaderMaterial turns each point into a camera-aware circular particle.

Preparing study—

Creating a dynamic position/scale attribute grid…

The official contract is intentionally WebGL `ShaderMaterial` + `Points`: CPU writes require explicit `needsUpdate` on both attributes, while `gl_PointSize` and `gl_PointCoord` shape the rendered particle.

THREE.JS FOUNDATIONS / BUFFER ATTRIBUTES ARE LIVE STATE