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’d be interested in performance reports across different GPUs, browsers, and platforms. Feedback on the architecture is welcome.
supernes•2mo ago
Tested it on a RX 7800XT on Chromium 142 (Windows) and it maintains 60fps up to ~6M nodes, very impressive.
ajlaston•2mo ago
Great! I pushed it to 120 million and my PC froze. There is diffing and culling but in this benchmark all nodes are drawn since they exist within screen bounds.
ajlaston•2mo ago
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.
supernes•2mo ago
ajlaston•2mo ago