| 1 – 9 | ghost that policy in the 3D scenes (row number in the matrix) |
| 0 | back to default ghosts (primary + hold baseline) |
| [ / ] | previous / next primary policy — drives the big ratio and the strip |
| b | focus one body, press again to cycle |
| s | kitchen set on / off — the set is drawn by us, nothing in it was ever observed |
| space | pause / resume · r restart from t=0 |
| ← / → | scrub 1 s |
| drag / wheel | orbit + zoom (all scenes move together, on purpose) |
| a | auto-orbit on/off · c recentre · f fullscreen |
| o | booth view ⇄ operator view (matrix, ratios, strip, all per-panel diagnostics).
Link straight to it with ?view=operator or #operator |
The hold baseline cannot be switched off. If it scores near zero the metric is not separating these policies, the bars are withheld, and the screen says so — that is a rule in the code, not a slide someone has to remember.
The kitchen is set dressing: flat unlit line-art, no colour, and it cannot occlude
anything. Solid lit markers are the only measured objects, and each one carries its
src and conf. In every session shipped so far there are none,
and the panel says so instead of quietly showing a cucumber the system never tracked.
obs.objects carries a pose but no size, so the measured layer can only ever
draw a pose marker — anything with a shape is, by construction, set.
The set is fitted to the trajectory, not to the arm: the counter is drawn as a
section, so its visible ends are framing, not real edges, and the bar under each
canvas prints the fit factor. A frame can hold more than one grade of "not measured" —
a capsule-fitted arm standing on a drawn set is two — and that bar counts them.
Leave it alone for 20 s and it returns to attract mode by itself: orbits, plays, loops.
Start with python3 serve.py in shadow/display/ →
http://localhost:8777/. Live: ?mode=live. No Python:
double-click booth.html.