Lab
Gaussian Splats on the GPU
A Metal rasterizer for Gaussian splats in Houdini Solaris, 7 to 12 times faster than the multithreaded CPU renderer.
Techniques
- A Metal compute tile-fill kernel with unified-memory buffers on Apple Silicon
- Opt-in: it appears as a second viewport renderer, Particle Field (Gaussian Splat) (GPU), next to the CPU one
- Bit-exact against the CPU reference. It writes colour only for now, and sorting, projection and binning stay on the CPU
- Three Hydra delegate bugs fixed along the way: the schema never loaded, the viewport flashed on every camera move, and parallel projection
| Splats | CPU fps | GPU fps | Speedup |
|---|---|---|---|
| 10k | 27.2 | 193.2 | 7.1x |
| 100k | 2.5 | 30.5 | 12.1x |
| 500k | 0.5 | 5.7 | 12.2x |
| 1M | 0.2 | 2.4 | 10.9x |
Per-pixel fill, GPU against the multithreaded CPU, at 1280 by 720 on Apple Silicon.
Sources
- Upstream issue: add a GPU splat rasterizer path ↗
- Pull request: Metal GPU rasterizer ↗
- The fork on GitHub ↗
Built on houdini-gsplat by Plattipus (MIT). Splat capture: DayLily by Natural Ai, CC BY 4.0.
- Type
- ASWF Summer Learning Program 2026
- Year
- 2026
- Role
- Houdini, C++, Metal
- Tools
- HoudiniMetalHydraUSDC++