Uploaded February 2020 | Updated September 2026, 2 weeks ago
FluidX3D is a real time 3D fluid simulation based on the lattice Boltzmann method. It is written in OpenCL C (GPU code) and optimized to the physical limit (video memory bandwith, ~520GB/s).
All demonstrations are simulated and visualized on a Nvidia Titan Xp. The video is sped up by 16x, so it was about 10 minutes of compute time for all simulations combined. Graphics are done with the OpenCL C version of Line3D, the fastest graphics engine ever written for primitive shapes like lines, dots and circles. It can handle up to 2 billion lines per second.
The free surface is done with the volume-of-fluid (VoF) extension to LBM. It allows simulating free surfaces with a sharp interface layer.
The volume force (gavity) is implemented with the Gou forcing scheme.
Visualization of the surface is done with the marching cubes algorithm (implemented in OpenCL C).
paulbourke.net/geometry/polygonise
Hardware Setup:
CPU: Intel Core i7-8700K @ 4.5GHz all core
GPU: Nvidia Titan Xp
RAM: 2x8GB Corsair Vengeance LPX DDR4 3200MHz CL16
Mainboard: ASUS ROG STRIX Z370-I GAMING
SSD 1: Samsung 970 PRO 512GB
SSD 2: Samsung 860 EVO 1TB
CPU Cooler: Cooltek LP53
PSU: Corsair SF600
Housing: Fractal Design Node 202
Timestamps:
0:00 - Intro
0:04 - 0 degree
0:12 - 15 degree
0:19 - 30 degree
0:26 - 45 degree
0:33 - 60 degree
0:39 - 75 degree
More information at projectphysx.de
FluidX3D is a real time 3D fluid simulation based on the lattice Boltzmann method. It is written in OpenCL C (GPU code) and optimized to the physical limit (video memory bandwith, ~520GB/s).
All demonstrations are simulated and visualized on a Nvidia Titan Xp. The video is sped up by 16x, so it was about 10 minutes of compute time for all simulations combined. Graphics are done with the OpenCL C version of Line3D, the fastest graphics engine ever written for primitive shapes like lines, dots and circles. It can handle up to 2 billion lines per second.
The free surface is done with the volume-of-fluid (VoF) extension to LBM. It allows simulating free surfaces with a sharp interface layer.
The volume force (gavity) is implemented with the Gou forcing scheme.
Visualization of the surface is done with the marching cubes algorithm (implemented in OpenCL C).
paulbourke.net/geometry/polygonise
Hardware Setup:
CPU: Intel Core i7-8700K @ 4.5GHz all core
GPU: Nvidia Titan Xp
RAM: 2x8GB Corsair Vengeance LPX DDR4 3200MHz CL16
Mainboard: ASUS ROG STRIX Z370-I GAMING
SSD 1: Samsung 970 PRO 512GB
SSD 2: Samsung 860 EVO 1TB
CPU Cooler: Cooltek LP53
PSU: Corsair SF600
Housing: Fractal Design Node 202
Timestamps:
0:00 - Intro
0:04 - 0 degree
0:12 - 15 degree
0:19 - 30 degree
0:26 - 45 degree
0:33 - 60 degree
0:39 - 75 degree
More information at projectphysx.de


![PhysX3D [GRAVITY SIMULATION] Sonnensystem
Hier zu sehen ist unser Sonnensystem mit allen größeren Monden und Asteroiden mit einem Durchmesser über 160km. Die Daten aller Objekte stammen aus der JPL-Datenbank:
http://ssd.jpl.nasa.gov/horizons.cgi
Das ganze Programm inklusive der Grafikausgabe ist in Java ausschließlich unter Verwendung der Standardbibliotheken geschrieben.
Auch wenn es so aussieht, als würden sich die Planeten auf Keplerbahnen bewegen, richten sich die Bahnen nach den Planeten. Denn die Berechnung im Hintergrund ist das n-Körper-Problem; jedes Objekt beeinflusst jedes andere.
Ich habe das Bildflackern (zu sehen im letzten Video) behoben, indem alles zunächst auf ein BufferedImage gezeichnet wird, das dann auf den Bildschirm geworfen wird. Dadurch ist die Bildrate auch noch wesentlich flüssiger.
Mehr Informationen auf: http://www.projectphysx.de
Song: CMA - Youre Not Alone PhysX3D [GRAVITY SIMULATION] Sonnensystem](https://i.ytimg.com/vi/f0hyr041gKU/mqdefault.jpg)






![PhysX3D [GRAVITY SIMULATION] 5k body galaxy simulated in real time
PhysX3D got upgrades. I changed the square root implementation to the fast inverse square root algorithm provided by the aparapi Kernel. With this, y=1/sqrt(x) is calculated as fast as a multuplication, resulting in 7.2x overall performance increase compared to the old square root implementation.
GPU acceleration is now about 50x faster than CPU multithreading.
A galaxy containing 5k bodies is simulated on a 1.54Tflops notebook GPU (Nvidia GeForce GTX 960M). The GPU achieves 124 calculation steps per second using Runge Kutta 4th order integration in 3D space. Everything was simulated in real time.
In other words, the GPU calculates roughly 3.5 billion particle interactions every second.
More information at: http://www.projectphysx.de
Music: Puddle of Infinity - Open Sea Morning PhysX3D [GRAVITY SIMULATION] 5k body galaxy simulated in real time](https://i.ytimg.com/vi/j4kejlWBVwA/mqdefault.jpg)
![PhysX3D [GRAVITY SIMULATION] Euler vs. RK4 / Sonnensystem im Jahr 3016
Das Einschrittverfahren Runge-Kutta-4 (RK4) ist um Größenordnungen genauer als das einfachere eulersche Polygonzugverfahren. RK4 erlaubt es, auch bei einer hohen Körperanzahl die Simulationsgeschwindigkeit ohne ohne größere Rechenfehler sehr weit hoch zu schrauben.
Mehr Informationen auf: http://www.projectphysx.de
Musik:
Hans Zimmer - Stay (Interstellar Soundtrack)
Hans Zimmer - Day One(Interstellar Soundtrack) PhysX3D [GRAVITY SIMULATION] Euler vs. RK4 / Sonnensystem im Jahr 3016](https://i.ytimg.com/vi/jr-3WIY9Fmo/mqdefault.jpg)