Skip to the report

The label that lies

A cart-pole with a spring at the pivot: the spring is the substrate, the body's own mechanics, holding the pole with no sensor and no delay. Two policies were cloned from the same demonstrations. One learned from the actions the demonstrator actually logged. The other learned from actions an observer reconstructed from the motion, the way video pipelines reconstruct hand pose. The observer's physics has no spring in it, so everything the spring did ends up inside the labels. This instrument runs both policies, live, from the exact coefficients the bench trained.

Predict first

The reconstructed labels are provably wrong: at this stiffness they absorb the spring's whole restoring torque. In calm air, both clones survive every episode anyway. Now a steady 1.5 N side-load is switched on, for training and for testing alike, so the spring holds a displacement the way an arm holds gravity. What does the reconstructed-label clone do?

The labels

Reconstruction inverts the textbook cart-pole, no spring, no damper, no knowledge of the wind, on each observed transition. From outside, the spring's torque and the motor's are indistinguishable, so the label credits the motor with the spring's work. That is what an inverse-dynamics or hand-pose pipeline does to every video frame.

The air

Each clone was trained on demonstrations recorded in the condition it is tested in, 128 episodes, the bench's own seeds. The wind is not a distribution shift. It is a load the substrate holds, and the question is who the labels say was holding it.

The body

Pivot stiffness is fixed at kp = 1.00 N·m/rad, above the critical 0.5264, so the pole is passively stable: this body balances with the motor unplugged. What it cannot do alone is follow the moving target, which is the policy's whole job.

Run the score

The live view runs one episode at a time. This button runs 64 more without drawing, so the region column converges while you watch. The bench's number is 256 episodes on disjoint seeds.

Where these numbers come from
QuantityValueStatus
BenchTWO-OS/1, ARM 2 and ARM 3 (TR-2026-43)measured · ours
Region, calm, true labels1.000 ±0.000measured, 256 seeds
Region, calm, reconstructed1.000 ±0.000measured, 256 seeds
Region, loaded, true labels1.000 ±0.000measured, 256 seeds
Region, loaded, reconstructed0.000 ±0.000measured, 256 seeds
Policy coefficients4 × 257, RFF-256 ridgeexported from the bench, not re-fit
Browser port vs benchmax state deviation 2.4e-14 over 12 replayed episodesmeasured in node, this file

The four policies here are the bench's own: random-Fourier-feature ridge regressions trained at kp=1.00, sigma=0.10 on seeds 5000 (calm) and 9000 (loaded), exported to 9 significant digits. The aggregates above were re-measured with the exported, rounded coefficients before this page was allowed to quote them. The plant is SENSE/1's, the same source the bench executes by AST extraction. Verification: the node check replays 12 bench episodes through this file's own physics with the bench's exact noise sequences. Result: 12 of 12 episode outcomes match, maximum state deviation 2.4×10−14, and rerunning all four 256-seed aggregates with this page's own random numbers lands on the bench values exactly: 1.000, 1.000, 1.000, 0.000.

Episodes
0
Survived
0
Region, here
Region, bench