A flow field assigns every point in space a vector — "if you’re here, move this way." This demo turns a single Simplex noise value into an angle (angle = noise(x, z) * 2π) to build that direction — since noise changes smoothly, neighboring points get similar directions, so particles read as one continuous flow rather than independent dots.
Each frame it re-samples the noise angle at every particle’s current position and steps it forward along that direction. three/addons/math/SimplexNoise.js runs on the CPU thousands of times per frame; once particle counts climb into the tens of thousands, moving the noise computation into a shader (see gpgpu) pays off.
Particles that drift past the bounds respawn at a random spot instead of wrapping to the opposite edge, so the flow keeps feeding fresh particles rather than visibly teleporting. Color is mapped from the flow angle, so hue itself reveals the field’s "grain."
When to use
Visualizing data flow, natural phenomena like wind or currents, or organic ambient background motion.