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.

Per row: paired bars normalised to the row maximumWebGPUFallback
DemoMetricWebGPUFallbackWebGPU speed-upPaired bars
Capability labfps (1 s EMA, averaged)pendingpending
glTF viewerfps (1 s EMA, averaged)pendingpending
TSL playgroundfps (1 s EMA, averaged)pendingpending
Post-processingfps (1 s EMA, averaged)pendingpending
Clustered lightsfps (1 s EMA, averaged)pendingpending
1M particlesfps (1 s EMA, averaged)pendingpending
Rigid bodiesfps (1 s EMA, averaged)pendingpending
Boidsfps (1 s EMA, averaged)pendingpending
SPH fluidfps (1 s EMA, averaged)pendingpending
Clothfps (1 s EMA, averaged)pendingpending
N-bodyfps (1 s EMA, averaged)pendingpending
Visioninference mspendingpending
Speech (Whisper)inference mspendingpending
Semantic searchquery embed mspendingpending
Depth → meshinference mspendingpending
Chat (WebLLM)tokens / spendingpending
Image filtersfilter GPU ms (vs JS)pendingpending
Live videofps (1 s EMA, averaged)pendingpending
SDF raymarcherfps (1 s EMA, averaged)pendingpending
Reaction-diffusionfps (1 s EMA, averaged)pendingpending