# GPGPU Particles **Track:** Advanced Shaders & GPU — Advanced Creative Coding — proposed (50) **Framework / surface:** GLSL **Level:** Hard **Prerequisites:** Feedback / Ping-Pong Buffers, Particle Systems **In one line:** Positions/velocities in float textures; curl-noise motion at scale. ## Theory, aesthetics & inspiration Simulating millions of particles on the GPU means abandoning per-object state for texture memory: each pixel of a floating-point render target holds one particle's position, another its velocity, updated every frame by a fragment shader and read back by the vertex stage for drawing. Motion gains life from curl noise—Robert Bridson, Jim Houriham, and Marcus Nordenstam's 2007 technique of taking the curl of a noise field to produce a divergence-free flow that swirls without sources or sinks, mimicking incompressible fluid. three.js exposes the pattern through its GPUComputationRenderer. The aesthetic is volumetric and turbulent: dense clouds of points eddying coherently, fast enough for real time at hundreds of thousands of elements.