Particles swarm

GPGPU Particles Swarm is an interactive real-time visual experiment built with Three.js, WebGL, and GPU-based particle simulation. Instead of updating particles on the CPU, the project uses ping-pong framebuffers and custom GLSL shaders to store and evolve particle data directly on the GPU, allowing thousands of particles to move efficiently in complex, fluid patterns. The motion is driven by curl-noise fields, which give the swarm a soft, organic, almost smoke-like behavior rather than simple linear movement.

The project focuses on creating a dense animated particle field that feels alive and responsive. Particles are continuously simulated, rendered as a dynamic point cloud, and shaped into flowing stream-like formations that react smoothly over time. The scene combines custom shader logic, real-time rendering, and interactive controls to produce a visually rich motion study that balances technical performance with an atmospheric, generative look.

At its core, this is both a graphics experiment and a motion-design piece: a study in how GPU simulation, procedural noise, and real-time rendering can be combined to create immersive particle behavior with depth, fluidity, and a strong visual identity.

2 Likes

This looks really good, super polished

The GPGPU setup feels solid and the curl noise gives it that nice organic motion without turning messy. It has that “alive” feel which is hard to nail

I like how dense it is but still smooth. A lot of particle sims start to stutter at that point but this stays fluid. The stream-like flow also adds direction without feeling forced

Curious how you handled the data side. Are you packing position and velocity together or keeping them separate textures? And what kind of precision are you using across devices

Would be cool to see a breakdown or repo if you ever share it

1 Like

Not much to say about it, the initial postions are saved in a texture than updated in the same texutre using curnoise with some simple speed and die off logic is not complicated once you figure it out…

The advantage of using GPGPU is that everyhign is calculated on the GPU you can have milions of particles with perfect performance.