# GPGPU Particles

**URL:** <https://discourse.threejs.org/t/gpgpu-particles/90558>\
**Category:** Showcase\
**Tags:** ping-pong, ping-pong-fbo, gpgpu-particles\
**Created:** [March 23, 2026, 8:20pm UTC](https://discourse.threejs.org/t/gpgpu-particles/90558 "2026-03-23T20:20:08Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tibi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/tibi/32/61300_2.png) [@Tibi](https://discourse.threejs.org/u/Tibi)\
**Post date:** [March 23, 2026, 8:20pm UTC](https://discourse.threejs.org/t/gpgpu-particles/90558/1 "2026-03-23T20:20:08Z")

</div>

This project uses a ping-pong framebuffer (FBO) simulation pipeline in WebGL + Three.js, where particle positions are updated each frame in custom GLSL shaders using curl-noise motion. The result is a smooth, organic, real-time effect with interactive camera control and live parameter tuning for frequency, amplitude, and max-distance behavior.

> **[GPU Particles](https://fwdapps.net/l/gpu-particles/)**
>
> GPU Particles Playground is a real-time WebGL and Three.js experiment that runs particle simulation fully on the GPU using ping-pong framebuffers (FBO). Particles are sampled from a 3D mesh, updated in custom GLSL shaders with curl-noise flow, and...

 ![222](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/1/8/18fb13ee5b0303e74f7d28ba7123129060bd7f15.jpeg)

---

<div class="post-metadata">

**Author:** ![Umbawa\_Sarosong](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/umbawa_sarosong/32/30107_2.png) [@Umbawa\_Sarosong](https://discourse.threejs.org/u/Umbawa_Sarosong)\
**Post date:** [March 24, 2026, 12:33pm UTC](https://discourse.threejs.org/t/gpgpu-particles/90558/2 "2026-03-24T12:33:04Z")

</div>

The project is visually impressive and technically solid, but it can feel a bit inaccessible. Most viewers might not understand the ping-pong FBO or curl-noise mechanics, so it risks coming across as more of a flashy demo than something with practical use. A small critique would be that some interactive guidance or context could make it easier for newcomers to appreciate what’s really going on.

---

<div class="post-metadata">

**Author:** ![Tibi](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/tibi/32/61300_2.png) [@Tibi](https://discourse.threejs.org/u/Tibi)\
**Post date:** [March 24, 2026, 12:50pm UTC](https://discourse.threejs.org/t/gpgpu-particles/90558/3 "2026-03-24T12:50:27Z")

</div>

This is not a tutorial is just an experiment that I did.

There are many practical use cases like this. One that won site of the year using the curl noise and more advanced particles system…

> **[Active Theory · Creative Digital Experiences](https://activetheory.net/)**
>
> Founded in 2012. We blend story, art & technology as an in-house team of passionate makers. Our industry-leading web toolset consistently delivers award-winning work through quality & performance.
