The puck moves; bet on where it lands next. A taller stack means a bigger share, and every
stack within ε of the ball pays.
The table
—
Next position = this matrix × current position. The exporter checks every table is linear before the page sees it.
Preset predictors
One click lays the whole hand; a second click takes it back while the table still holds it untouched.
This run
Runs are pre-recorded draws: Run 3 plays the same noise every time, so only your stacks change. Export records the run, which is what lets the script replay it.
Restart asks for a second press; there is no undo. Keep my layout still applies to the new run.
Table display
Same game either way; the flat table needs no GPU.
Three things on this screen are the three things the package is made of, and the page is a second, visible implementation of the same rule.
epsilon-logarithm score: log of the share of your bet that landed within ε
The table's own movement is given — that is the setting: the nominal model is known, the noise is not. Only the percentages on the stacks matter: a weight on its own is a free parameter, which is why the page never asks you to pick one.
| so far — average paid a round | — |
| so far — average score | — |
| par — the best any hand could average | — |
| gap to par | — |
| growth a round — the rate that compounds | — |
Paid is what a round gave back; score is log of it. The average
score is a rate — raise e to it for the growth a round. The average payout
does not compound.
| average score a round | — |
| par for this table | — |
| best round | — |
| worst round | — |
What you played, and what it paid here
Nothing is saved anywhere. Copy puts one hand on the clipboard; Export
downloads the run. Score either with
python experiments/pmf_betting/run.py --bets your_file.json.
running self-check…
Bet on where the puck lands next. A taller stack is a bigger share; every stack
within ε of the landing pays.
| Tap the felt | put a stack there; while one is selected, the first tap elsewhere only closes its toolbar |
| Tap a stack | select it; tap again to let go. Shift-click adds it to a group |
| Drag a stack | move it; with several selected the group moves, or nothing does if a destination is taken |
| Drag the felt | turn the table; in Select mode this draws a box instead |
| Scroll / pinch | zoom |
| Select | tap stacks or drag a box; the slider, −/+ and Remove then act on all of them. Turn it off to place new stacks |
| D | deal / next round · P hide the panel · ? this guide |
| Any ? badge | every non-obvious control explains itself. The switches on the table are see and auto; the rest are in the panel |
Place a stack where the puck will land; tap it and drag the slider (or −/+) to set its share; press Deal and read what it paid. Height stops at 8× a fresh stack — a readability cap, not a claim about weights; the shares are what the score uses. −/+ moves a stack by 12% a press, or hold to repeat.
Cover the noise support (Game settings → Preset predictors) lays equal
stacks whose ε squares tile the support: no landing pays nothing. On
skewed noise safe is not best — aiming at the fat band pays more and can pay nothing.
Par is the best average any hand could reach: a line to watch, not a target. One table
keeps its law, so it has no par and no safety badge.
The prediction switch draws the law around the prediction in gold, at a low opacity: an exact box, weighted bands, or a 3σ window (a window, not a guarantee). A table that keeps its law draws nothing. The boundary is drawn over the chips, so you can always see where the law reaches.
A run is the number of rounds you chose; it ends when they run out or a round pays nothing (−∞). A settled round stops so you can read it. auto next round advances after a pause; auto all rounds also places and deals. Both stop with the run.
The tour starts on every visit as a card in the table's lower-left corner, and a bouncing arrow points at the one thing each step is about. The page stays live underneath. The card's Next only unlocks after you have done what the step asks; Back returns to the previous step and undoes nothing on the table. Skip closes it for this visit and keeps the empty-table hint out of the way; the teaching switch next to Hide panel brings it back, and Show the tour below restarts it. Nothing is saved between visits.