Grasp-SFT demos+one-rig — endpoint, flow head on unseen seeds
Checkpoint grasp_sft_v2_joint_1gpu_pdnorm_onerig/step_003000 (demos + so101_pick_place_v2 ×4 ONLY — clean dropped, ~6% rig share; per-dataset flow norm; launched 18:47Z 08-19, train complete 08:2xZ 08-20, ~13.4 GPU-h) · euler-10, execute-horizon 30, seeds 0–99, 30 s episodes; sim leg wears the sim demos' row + stand-ins substrate pin (frozen serving rules) · frozen decision grid: ≤10 interference-reproduced / 11–19 ambiguous / ≥20 the mix grasps · verdict: 28/100 ≥ 20 — MIX-EXONERATED (read 10:5xZ 08-20); paired +17 vs the 11/100 control (CI95 [8, 26], McNemar p = 0.0009), +27 vs the convicted cell's 1/100 (CI95 [19, 36], p = 1.5e-8) · panel endpoint 28.81 native / 27.26 truth-fit vs 27.40 re-worn disc-1000 / 27.14 released / 25.15 null / 8.37 state-copy
Panel anchor ladder
Wear-corrected class (wear audit 08-18) — the endpoint reads against this class, never the raw 58.14. The endpoint session re-runs pdnorm_panel_ladder_chart.py --endpoint <row> on GO, so the embedded sidecar onerig_panel_ladder.b64 carries the stamped magenta rung.
Estimator seam (pdnorm_endpoint_truthfit_rewear.py, output-side re-expression): endpoint native 28.81 → truth-fit 27.26 (seam +1.55); truth-fit ladder: disc-1000 27.40 / released 27.14 / repo-midpoint null 25.15. The native row stays the headline (a served rig wears recorded tables); the truth-fit row reads the ladder like for like.
28/100
successes (≤3 cm, held)
9 / 11 / 1 / 44
anchors: base / control / convicted mix / probe
72/100
moved the boat >0.5 cm
2.81 cm
mean progress toward disk
0
reset strikes
Against the anchors
Paired read: onerig3000 vs disc1000_demosonly
recorded non-gating read (rides alongside the frozen absolute bands) · pre-reg posts/2026-08-xx-prereg-grasp-sft-v2-joint-pdnorm.md · paired on the 100 shared unseen seeds · reset strikes 0/0. The demosonly control's 11/100 sits inside this pre-reg's own 11–19 ambiguous band, so the paired read rides alongside the frozen absolute bands — it is recorded, never gating.
+17
success-count delta, 28 vs 11 (CI95 [8, 26], excludes 0)
p = 9.1e-04
McNemar exact, 21 vs 4 discordant seeds
-0.27 cm
mean progress delta (CI95 [-1.3224, 0.7643], spans 0)
46%
per-seed progress win rate (0% ties)
Per-seed outcomes
Clips
fastest success — seed 85, final 3.6 cm, success at tick 2362nd fastest success — seed 88, final 4.0 cm, success at tick 248median success — seed 80, final 4.0 cm, success at tick 396nearest miss — seed 61, final 4.4 cm
Per-seed table
seed
spawn cm
min cm
final cm
progress cm
success
0
10.5
4.0
4.0
6.6
✓ @ 639
1
7.3
7.1
12.5
0.2
—
2
10.2
10.2
17.8
0.0
—
3
10.6
10.0
10.0
0.6
—
4
10.3
10.3
13.7
0.0
—
5
8.6
3.9
3.9
4.7
✓ @ 275
6
10.1
9.7
9.7
0.4
—
7
7.8
6.1
19.2
1.7
—
8
7.1
6.2
11.3
0.9
—
9
11.0
6.0
7.1
5.0
—
10
11.6
10.1
10.4
1.5
—
11
9.4
4.2
6.5
5.1
—
12
7.3
4.0
4.0
3.3
✓ @ 298
13
8.6
6.3
8.2
2.3
—
14
10.6
8.0
12.3
2.5
—
15
8.3
7.0
7.0
1.3
—
16
9.7
3.8
3.8
5.9
✓ @ 251
17
11.4
7.6
10.0
3.8
—
18
8.3
7.9
20.2
0.4
—
19
7.4
4.6
9.0
2.7
—
20
9.4
9.4
14.5
0.0
—
21
9.4
4.0
4.0
5.4
✓ @ 377
22
10.6
4.0
4.0
6.6
✓ @ 501
23
9.0
8.4
14.0
0.6
—
24
9.7
4.0
4.0
5.7
✓ @ 483
25
11.6
7.2
13.3
4.4
—
26
10.5
3.9
3.9
6.6
✓ @ 453
27
10.5
6.2
15.4
4.3
—
28
8.5
6.4
16.5
2.1
—
29
9.5
3.8
3.8
5.7
✓ @ 303
30
9.6
9.6
19.1
0.0
—
31
12.0
3.1
4.9
8.9
—
32
9.0
7.7
7.7
1.3
—
33
9.0
7.2
7.7
1.8
—
34
8.0
8.0
14.2
0.0
—
35
9.4
9.4
15.0
0.0
—
36
9.8
2.3
13.8
7.5
—
37
9.0
8.8
13.6
0.2
—
38
10.4
9.5
13.5
0.9
—
39
9.2
3.4
3.4
5.8
✓ @ 364
40
8.9
7.3
9.2
1.6
—
41
9.3
8.4
12.5
0.9
—
42
10.1
10.1
11.6
0.0
—
43
11.6
9.2
13.2
2.4
—
44
10.5
10.5
18.0
0.0
—
45
9.3
7.3
9.3
1.9
—
46
11.9
10.1
11.8
1.9
—
47
8.7
8.7
9.2
0.0
—
48
8.8
4.0
4.0
4.9
✓ @ 414
49
8.8
8.8
9.4
0.0
—
50
8.5
4.0
4.0
4.5
✓ @ 461
51
11.1
9.9
11.1
1.2
—
52
9.2
3.8
3.8
5.4
✓ @ 544
53
8.6
7.9
8.5
0.7
—
54
9.2
4.6
10.0
4.6
—
55
8.5
8.1
15.1
0.3
—
56
11.8
11.8
18.2
0.0
—
57
9.8
9.7
20.5
0.0
—
58
7.5
7.5
18.3
0.0
—
59
8.0
6.0
11.2
2.0
—
60
11.4
4.0
4.0
7.4
✓ @ 326
61
8.0
3.0
4.4
5.0
—
62
8.4
6.4
10.0
2.0
—
63
7.2
7.2
16.3
0.0
—
64
10.2
10.2
19.4
0.0
—
65
9.4
8.9
8.9
0.5
—
66
9.5
8.9
12.2
0.6
—
67
10.9
3.5
3.5
7.4
✓ @ 334
68
7.8
4.0
4.0
3.8
✓ @ 413
69
9.3
9.3
17.3
0.0
—
70
8.3
7.5
7.6
0.7
—
71
9.1
3.2
11.7
5.9
—
72
12.1
5.9
11.1
6.2
—
73
10.2
10.2
21.6
0.0
—
74
10.1
2.1
3.9
8.0
✓ @ 424
75
10.8
3.9
3.9
6.9
✓ @ 753
76
7.9
5.5
8.6
2.4
—
77
9.6
7.5
8.7
2.2
—
78
7.4
4.0
4.0
3.4
✓ @ 600
79
12.0
8.9
8.9
3.1
—
80
11.8
4.0
4.0
7.8
✓ @ 396
81
10.6
10.5
12.0
0.1
—
82
9.1
8.5
13.2
0.6
—
83
11.3
4.0
4.0
7.3
✓ @ 444
84
8.0
6.2
6.4
1.9
—
85
9.6
3.6
3.6
6.1
✓ @ 236
86
10.9
4.0
4.0
7.0
✓ @ 425
87
8.2
7.5
11.7
0.7
—
88
8.4
4.0
4.0
4.4
✓ @ 248
89
8.2
7.8
14.9
0.5
—
90
8.4
2.7
2.7
5.8
✓ @ 333
91
7.4
6.5
6.9
0.9
—
92
11.3
5.7
8.2
5.6
—
93
10.3
9.8
16.2
0.4
—
94
8.0
7.9
11.1
0.1
—
95
7.6
7.1
7.5
0.5
—
96
8.7
4.0
4.0
4.7
✓ @ 389
97
9.9
4.0
4.0
5.9
✓ @ 310
98
8.9
8.7
14.2
0.2
—
99
9.1
3.7
3.7
5.4
✓ @ 340
Regenerate:
fontaine/scripts/grasp_sft_joint_unseen_report.py
from the banked flow_unseen.json only.