← All demos watch a race · the budget frontier

Live wavefront pruning

The budget solve of the mean-field race, running in your browser.

A Poisson cloud of Brownian paths starts at zero with the intensity you choose. The solver prices path-time by dual bisection, generates wavefront policies from the obstacle problem, and mixes them by Frank–Wolfe until the dual gap closes. Move a slider and the whole solve reruns; nothing is pre-baked. The port is parity-locked against the Python package by tests/test_js_parity.py.

10.0 100
computing…
What to look for: no baseline may beat the returned policy by more than its certified suboptimality, and one-shot screening must never fall below static thinning; a larger inversion anywhere would falsify the solver. Ties are legitimate: the baselines coincide at tight budgets (screening at time zero, before paths separate), and all three policies coincide when the budget funds the whole cloud. The certificate is the Frank–Wolfe gap plus the complementary-slackness term λ(B−C) — the gap alone bounds nothing at the requested budget when the returned policy underspends. The cull is immediate and the survivor curve then thins slowly; the kill-below cutoff rises over most of the horizon and collapses near maturity, where a final step of carry is cheap next to the terminal option value.

Discretization: 50 time steps on a 301-point state grid, coarser than the committed Python example (100 × 601), so headline numbers here sit a few hundredths below the committed ones. The solver is bb_core.js, a direct port of brownianbandit/mean_field.py.