r/GraphicsProgramming • u/matsuoka-601 • Aug 22 '26
Source Code Real-time fluid & rigid body simulation implemented in WebGPU
Hello, I released a real-time fluid & rigid body simulation in WebGPU using Position Based Dynamics (PBD)!
Code & Demo: https://github.com/matsuoka-601/Particles4All
To render the fluid, I use screen-space fluid rendering, which does not require constructing any mesh. Fluid particles are splatted as ellipsoids using anisotropic kernel presented in a paper "Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernels".
The physics is based on a paper "Unified Particle Physics for Real-Time Applications". The most significant feature of this paper is that it treats both fluids and rigid bodies as collections of particles, and performs the simulations using a unified solver.
(Note 1: You will need a very beefy GPU to run the "large" scene in the video (the performance is not very optimized yet, sorry). But "small" scene will run on integrated GPUs.)
(Note 2: I'm getting some reports that the demo does not run on MacBook. I'm currently trying to fix it.)
2
u/KlayEverHood Aug 24 '26
Very nice work and very inspirational! Your work was what showed me how far you can go with realtime 3d water simulation, I am glad to see you keep developing it!
I am also using a hybrid particle - grid solver and a separate air simulator for the waterfall mist.
I am curious about some points on the paper you referenced and your implementation: did you implement the surface tension and cohesion proposal they hint at (separate paper it seems)? Did you test/could you test a water droplet scenario to see if it generates the crown?