Beat the model running on this page.
A small multi-head convolutional model — trained with self-play and MCTS, compiled to WebAssembly, running entirely in your tab. Close regions to claim territory; whoever owns more cells when the board fills up wins.
An ML model is on this page — follow to see what's next.
I write about how it's built — C++, ML, and the performance rabbit holes around it. Get the next one. Irregular by design.
Double opt-in — I'll send a confirmation email first. Unsubscribe in one click.
What you're facing
Same framework, same model, on-device.
Architecture
Convolutional trunk with split policy and value heads — same multi-head composition shown on the Technical page.
Training
Self-play with MCTS, gradient descent across multiple generations. Driven from a Bazel rule, cached like any other build action.
Runtime
C++20 inference path compiled to WebAssembly via the same toolchain that targets native binaries. No Python, no GPU.
Privacy
All inference runs on this page. No moves, no board state, no telemetry leaves your tab.