I’ve been experimenting with WebGPU and built a benchmark that simulates and renders up to *15,000,000 moving nodes(rectangles)* in real time in the browser.
Each node has its own position, velocity, size, and color. All simulation and rendering happens entirely on the GPU:
• GPU compute shader updates positions
• GPU performs visibility checks
• GPU maintains a visibility counter via atomics
• Indirect draw calls per chunk
• CPU does minimal work (just submits commands)
The demo starts at 50,000 nodes, but you can type any number up to ~15M and reset.
Warning:
This is a GPU stress test. Large node counts may cause slowdowns, thermal spikes, or browser crashes on some hardware.
I’ve been experimenting with WebGPU and built a benchmark that simulates and renders up to *15,000,000 moving nodes(rectangles)* in real time in the browser.
Each node has its own position, velocity, size, and color. All simulation and rendering happens entirely on the GPU:
• GPU compute shader updates positions • GPU performs visibility checks • GPU maintains a visibility counter via atomics • Indirect draw calls per chunk • CPU does minimal work (just submits commands)
The demo starts at 50,000 nodes, but you can type any number up to ~15M and reset.
Warning: This is a GPU stress test. Large node counts may cause slowdowns, thermal spikes, or browser crashes on some hardware.
Demo: https://ajlaston.github.io/Nova-Web/
Code: https://github.com/ajlaston/Nova-Web
I’d be interested in performance reports across different GPUs, browsers, and platforms. Feedback on the architecture is welcome.