Performance measurements
Run npm run benchmark to generate benchmarks/results.json. The report identifies the adapter and driver, timestamp support, population, energy representation, grid, geometry, seed, memory allocation, wall time, transport timestamps, history throughput, and collision throughput. Results from software Vulkan must not be presented as discrete-GPU performance.
The benchmark separates the first generation, which can include driver shader JIT, from later generations. Shader construction occurs before the timed calculation. The GPU stage probes time real cross-section lookup, fission-source initialization, and tally reduction dispatches when timestamps are supported. Atomic-contention probes compare concentrated and distributed checked integer additions. They isolate buffer contention and exclude voxel segmentation and stochastic rounding.
The browser test records animation-frame intervals during real computation, control responsiveness, and initialization latency on its reported adapter. A 60 FPS target requires a capable GPU and a suitable canvas resolution; it is a target, not a guaranteed result. Interactive budgets adapt to measured compute submissions. One very long dispatch can still delay graphics; WebGPU offers no application-controlled preemption.
The diagnostics panel shows actual completed histories per second, resident engine memory, active population, fission-bank size, render frame interval, and timestamp availability. GPU transport times appear in exported generation records. The renderer does not read back the voxel grid.
Current constraints include linear CSG traversal, inactive lanes until histories finish, global atomic scoring, f32 moment accumulation, and bank readbacks only at generation boundaries. No material sorting or active-particle compaction is claimed. Time to precision reached is reported only when the statistical criterion is actually met; finishing a configured number of generations does not imply convergence.
Recorded measurements
The 9 October 2026 native run used Dawn/Vulkan with Mesa llvmpipe, LLVM 21.1.8, two software worker threads, 8,192 source histories per generation, a 16³ tally mesh, and 24 generations. Throughput excludes the first generation. These are software-rendered measurements, not discrete-GPU throughput claims.
| Case | Histories/s | Mean transport GPU time/generation | Allocated engine buffers |
|---|---|---|---|
| One-group criticality | 701,429 | 6.556 ms | 6,443,508 bytes |
| Two-group pin cell | 46,680 | 136.608 ms | 6,591,588 bytes |
| Evaluated H-1 fixed source | 871,496 | 4.912 ms | 6,895,668 bytes |
The H-1 lookup probe measured 93.57 million lookups/s. Its concentrated checked-add probe measured 2.52 million additions/s, compared with 225.35 million/s when distributed. This isolates a substantial contention cost; it does not measure complete tally paths. Timestamp precision and software scheduling constrain interpretation. Full inputs, stage timings, and separate 1,024-history runs are in the benchmark record.
The public application was tested separately in Chromium 156 on an Intel Gen-9 adapter. During a real 1,024-history, 24-generation pin-cell calculation, 159 animation-frame intervals had a median of 16.665 ms and a 95th percentile of 16.670 ms. This records browser frame cadence for that workload, not render-only GPU time or a guarantee across devices. The measurement snapshot includes input latency, transport, and actual canvas pixel checks; the latest browser test is a separate release check. None of the short native benchmark runs reached the statistical precision criterion; time to convergence remains unmeasured.