Strike dead center → ball stops on contact. Strike above center → ball follows through (top spin). Strike below center → ball comes back at you (draw, backspin). Strike side → english/spin tilts the cue ball's path off the rails.
This demo simplifies physics to a clean reflection — no spin — so you can see the agent's angle belief without it being confounded by english.
What a bank shot is
The angle the cue ball leaves the rail equals the angle it arrives at — like light off a mirror. The agent's Q-row finds the one launch angle whose mirror line drops into the pocket. A 2-bank shot uses two rails, a 3-bank uses three.
The numbered diamonds on the rail are the same ones a real-table player uses for the diamond system. Read the trajectory's entry/exit diamond values like a real shot.
The cut angle
When the cue ball strikes another ball, the target travels along the line connecting their two centers at contact. Aim the ghost ball spot, not the object ball. This demo skips object balls to keep the agent's learnable space small — just the cue ball, six pockets, one variable: angle.
The diamond system, applied
Departure diamond + arrival diamond = aim line. Watch the trajectory readout on the rail when you sweep your mouse around: every bounce is labeled with the diamond coordinate it hit, the same number you would call out at a real table. Bank that math — you're studying it for real.
Same loop, different substrate: belief → guess → move → reality → surprise → sharper belief. Your nervous system runs it in 200ms. The agent runs it in your browser in 2 seconds.
That’s all the physics this demo needs. The rest is just the agent filling in the row.
A deliberate forgetting
Wipe the agent’s entire memory?
Every Q-row the coach has taught will be erased. The agent
will return to a blank slate — no native reflex, no
learned angles, no priors. Every pocket becomes new terrain
again.
⌫ All trained variants forgotten
⌫ Native reflex cleared
⌫ On-disk snapshot deleted
Useful when you want to show someone the demo from absolute zero.