Benchmark
One scripted pass over every demo: each route runs on WebGPU, then again with the fallback forced (?forceWebGL=1 for rendering, ?forceWasm=1 for inference). Both columns are measured — never estimated.
0.0 s elapsed · budget 90 s
17 of 20 demos are automated; the rest are marked manual. Frame-rate demos warm up 500 ms and sample 900 ms. First run on a cold dev server includes route compilation.
| Demo | Metric | WebGPU | Fallback | WebGPU speed-up | Paired bars |
|---|---|---|---|---|---|
| Capability lab | fps (1 s EMA, averaged) | pending | pending | — | |
| glTF viewer | fps (1 s EMA, averaged) | pending | pending | — | |
| TSL playground | fps (1 s EMA, averaged) | pending | pending | — | |
| Post-processing | fps (1 s EMA, averaged) | pending | pending | — | |
| Clustered lights | fps (1 s EMA, averaged) | pending | pending | — | |
| 1M particles | fps (1 s EMA, averaged) | pending | pending | — | |
| Rigid bodies | fps (1 s EMA, averaged) | pending | pending | — | |
| Boids | fps (1 s EMA, averaged) | pending | pending | — | |
| SPH fluid | fps (1 s EMA, averaged) | pending | pending | — | |
| Cloth | fps (1 s EMA, averaged) | pending | pending | — | |
| N-body | fps (1 s EMA, averaged) | pending | pending | — | |
| Vision | inference ms | pending | pending | — | |
| Speech (Whisper) | inference ms | pending | pending | — | |
| Semantic search | query embed ms | pending | pending | — | |
| Depth → mesh | inference ms | pending | pending | — | |
| Chat (WebLLM) | tokens / s | pending | pending | — | |
| Image filters | filter GPU ms (vs JS) | pending | pending | — | |
| Live video | fps (1 s EMA, averaged) | pending | pending | — | |
| SDF raymarcher | fps (1 s EMA, averaged) | pending | pending | — | |
| Reaction-diffusion | fps (1 s EMA, averaged) | pending | pending | — |