Table tennis
Dueln = 12 matches
Four models, 11 sports, 100 valid matches.
Four models, 11 sports, 100 valid matches.
| Model | Gold | Silver | Bronze |
|---|---|---|---|
| GPT-6 Astra | 7 | 3 | 0 |
| Claude Opus 5.5 | 3 | 6 | 2 |
| Claude Fable 5.1 | 2 | 3 | 6 |
| GPT-6 Luna | 1 | 1 | 1 |
n = 100 matches across 11 events
n = 12 matches per duel event; 4 runs per single event
n = 12 matches
n = 12 matches
n = 12 matches
n = 12 matches
n = 12 matches
n = 12 matches
n = 12 matches
n = 4 matches
n = 4 matches
n = 4 matches
n = 4 matches
7 duel sports; each pair plays twice with sides swapped, one seed.
n = 6 duels per model per sport
| Sport | GPT-6 Astra | Claude Opus 5.5 | Claude Fable 5.1 | GPT-6 Luna |
|---|---|---|---|---|
| Table tennis | 6 of 6n = 6 | 3 of 6n = 6 | 3 of 6n = 6 | 0 of 6n = 6 |
| Tennis | 4 of 6n = 6 | 5 of 6n = 6 | 3 of 6n = 6 | 0 of 6n = 6 |
| Badminton | 5 of 6n = 6 | 3 of 6n = 6 | 4 of 6n = 6 | 0 of 6n = 6 |
| Baseball | 5 of 6n = 6 | 3 of 6n = 6 | 3 of 6n = 6 | 1 of 6n = 6 |
| Darts (501) | 3 of 6n = 6 | 3 of 6n = 6 | 5 of 6n = 6 | 1 of 6n = 6 |
| Billiards (8-ball) | 5 of 6n = 6 | 3 of 6n = 6 | 2 of 6n = 6 | 2 of 6n = 6 |
| Curling | 5 of 6n = 6 | 5 of 6n = 6 | 2 of 6n = 6 | 0 of 6n = 6 |
4 single sports; one run per model, ranked by score.
n = 1 run per model per sport
| Sport | GPT-6 Astra | Claude Opus 5.5 | Claude Fable 5.1 | GPT-6 Luna |
|---|---|---|---|---|
| Archery | total 115✓n = 1 | total 112✓n = 1 | total 112✓n = 1 | total 113✓n = 1 |
| Basketball shooting | made 8✓n = 1 | made 8✓n = 1 | made 9✓n = 1 | made 6✓n = 1 |
| Ten-pin bowling | total 190–n = 1 | total 245✓n = 1 | total 202✓n = 1 | total 247✓n = 1 |
| Mini-golf putting | total 7✓n = 1 | total 7✓n = 1 | total 10–n = 1 | total 11–n = 1 |
7 duel sports; each pair plays twice with sides swapped, one seed.
4 single sports; one run per model, ranked by score.
Tied players share a place.
Earlier rules: before the real-robot limits and the per-player randomness fix.
Real-time sports slowed ×10.
96 of 100 exhibition matches have replays; the 4 basketball replays are truncated.
| Sport | Format | Seed | Side A | Side B | Score | Winner | Minutes | n | Replay |
|---|---|---|---|---|---|---|---|---|---|
| Table tennis | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 6:4 | Claude Opus 5.5 | 22.2 | n = 1 match | |
| Table tennis | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 5:3 | Claude Fable 5.1 | 22.8 | n = 1 match | |
| Table tennis | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 3:5 | GPT-6 Astra | 13.4 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 5:1 | GPT-6 Astra | 12.7 | n = 1 match | |
| Table tennis | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 5:2 | Claude Opus 5.5 | 14.6 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 0:5 | Claude Opus 5.5 | 14.1 | n = 1 match | |
| Table tennis | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 0:5 | GPT-6 Astra | 20.6 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 5:1 | GPT-6 Astra | 20.4 | n = 1 match | |
| Table tennis | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 5:2 | Claude Fable 5.1 | 16.9 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 0:5 | Claude Fable 5.1 | 13.6 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 5:2 | GPT-6 Astra | 16.1 | n = 1 match | |
| Table tennis | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 0:5 | GPT-6 Astra | 10.0 | n = 1 match | |
| Tennis | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 5:7 | Claude Fable 5.1 | 35.3 | n = 1 match | |
| Tennis | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 2:5 | Claude Opus 5.5 | 28.1 | n = 1 match | |
| Tennis | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 5:3 | Claude Opus 5.5 | 28.6 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 1:5 | Claude Opus 5.5 | 14.4 | n = 1 match | |
| Tennis | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 5:3 | Claude Opus 5.5 | 19.8 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 2:5 | Claude Opus 5.5 | 19.5 | n = 1 match | |
| Tennis | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 6:7 | GPT-6 Astra | 37.4 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 7:5 | GPT-6 Astra | 37.6 | n = 1 match | |
| Tennis | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 5:0 | Claude Fable 5.1 | 24.6 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 1:5 | Claude Fable 5.1 | 22.7 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 6:4 | GPT-6 Astra | 20.6 | n = 1 match | |
| Tennis | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 2:5 | GPT-6 Astra | 12.3 | n = 1 match | |
| Badminton | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 3:5 | Claude Fable 5.1 | 22.7 | n = 1 match | |
| Badminton | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 1:5 | Claude Opus 5.5 | 34.4 | n = 1 match | |
| Badminton | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 0:5 | GPT-6 Astra | 14.2 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 5:2 | GPT-6 Astra | 18.6 | n = 1 match | |
| Badminton | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 5:2 | Claude Opus 5.5 | 17.8 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 1:5 | Claude Opus 5.5 | 16.9 | n = 1 match | |
| Badminton | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 0:5 | GPT-6 Astra | 25.8 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 2:5 | Claude Fable 5.1 | 25.1 | n = 1 match | |
| Badminton | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 5:2 | Claude Fable 5.1 | 21.8 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 1:5 | Claude Fable 5.1 | 21.5 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 5:1 | GPT-6 Astra | 12.6 | n = 1 match | |
| Badminton | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 0:5 | GPT-6 Astra | 10.4 | n = 1 match | |
| Baseball | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 8:11 | Claude Fable 5.1 | 36.9 | n = 1 match | |
| Baseball | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 7:17 | Claude Opus 5.5 | 35.5 | n = 1 match | |
| Baseball | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 3:12 | GPT-6 Astra | 18.7 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 8:14 | Claude Opus 5.5 | 25.9 | n = 1 match | |
| Baseball | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 9:12 | GPT-6 Luna | 36.8 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 3:5 | Claude Opus 5.5 | 34.6 | n = 1 match | |
| Baseball | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 13:16 | GPT-6 Astra | 53.1 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 11:3 | GPT-6 Astra | 30.0 | n = 1 match | |
| Baseball | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 8:4 | Claude Fable 5.1 | 44.1 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 5:8 | Claude Fable 5.1 | 48.0 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 7:3 | GPT-6 Astra | 26.6 | n = 1 match | |
| Baseball | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 3:11 | GPT-6 Astra | 32.2 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 0:2 | Claude Fable 5.1 | 12.4 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 2:0 | Claude Fable 5.1 | 23.0 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 1:2 | GPT-6 Astra | 44.6 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 1:2 | Claude Opus 5.5 | 23.7 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 2:0 | Claude Opus 5.5 | 18.9 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 0:2 | Claude Opus 5.5 | 24.9 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 1:2 | GPT-6 Astra | 50.2 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 1:2 | Claude Fable 5.1 | 48.1 | n = 1 match | |
| Darts (501) | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 2:0 | Claude Fable 5.1 | 31.8 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 1:2 | Claude Fable 5.1 | 31.5 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 1:2 | GPT-6 Luna | 40.0 | n = 1 match | |
| Darts (501) | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 1:2 | GPT-6 Astra | 35.5 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 0:3 | Claude Opus 5.5 | 23.0 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 0:0 | Claude Opus 5.5 | 31.3 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 1:0 | GPT-6 Astra | 65.8 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 0:7 | GPT-6 Astra | 9.4 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 0:6 | Claude Opus 5.5 | 7.1 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 5:1 | GPT-6 Luna | 8.0 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 2:0 | GPT-6 Astra | 30.0 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 1:0 | Claude Fable 5.1 | 22.5 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 0:0 | Claude Fable 5.1 | 23.4 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 0:0 | GPT-6 Luna | 30.5 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 0:6 | GPT-6 Astra | 11.6 | n = 1 match | |
| Billiards (8-ball) | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 4:0 | GPT-6 Astra | 24.5 | n = 1 match | |
| Curling | Duel | 1 | Claude Opus 5.5 | Claude Fable 5.1 | 4:2 | Claude Opus 5.5 | 41.3 | n = 1 match | |
| Curling | Duel | 1 | Claude Fable 5.1 | Claude Opus 5.5 | 2:4 | Claude Opus 5.5 | 29.8 | n = 1 match | |
| Curling | Duel | 1 | Claude Opus 5.5 | GPT-6 Astra | 2:3 | GPT-6 Astra | 16.8 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Astra | Claude Opus 5.5 | 2:5 | Claude Opus 5.5 | 24.6 | n = 1 match | |
| Curling | Duel | 1 | Claude Opus 5.5 | GPT-6 Luna | 4:3 | Claude Opus 5.5 | 24.3 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Luna | Claude Opus 5.5 | 2:5 | Claude Opus 5.5 | 28.4 | n = 1 match | |
| Curling | Duel | 1 | Claude Fable 5.1 | GPT-6 Astra | 2:3 | GPT-6 Astra | 42.3 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Astra | Claude Fable 5.1 | 3:2 | GPT-6 Astra | 42.3 | n = 1 match | |
| Curling | Duel | 1 | Claude Fable 5.1 | GPT-6 Luna | 5:1 | Claude Fable 5.1 | 40.0 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Luna | Claude Fable 5.1 | 1:9 | Claude Fable 5.1 | 29.7 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Astra | GPT-6 Luna | 4:1 | GPT-6 Astra | 23.1 | n = 1 match | |
| Curling | Duel | 1 | GPT-6 Luna | GPT-6 Astra | 1:8 | GPT-6 Astra | 22.1 | n = 1 match | |
| Archery | Single | 20260929 | Claude Opus 5.5 | No opponent | total 112 | – | 7.2 | n = 1 match | |
| Archery | Single | 20260929 | Claude Fable 5.1 | No opponent | total 112 | – | 15.9 | n = 1 match | |
| Archery | Single | 20260929 | GPT-6 Astra | No opponent | total 115 | – | 8.7 | n = 1 match | |
| Archery | Single | 20260929 | GPT-6 Luna | No opponent | total 113 | – | 8.5 | n = 1 match | |
| Basketball shooting | Single | 7 | Claude Opus 5.5 | No opponent | made 8 | – | 6.9 | n = 1 match | – |
| Basketball shooting | Single | 7 | Claude Fable 5.1 | No opponent | made 9 | – | 13.9 | n = 1 match | – |
| Basketball shooting | Single | 7 | GPT-6 Astra | No opponent | made 8 | – | 7.4 | n = 1 match | – |
| Basketball shooting | Single | 7 | GPT-6 Luna | No opponent | made 6 | – | 6.6 | n = 1 match | – |
| Ten-pin bowling | Single | 20260930 | Claude Opus 5.5 | No opponent | total 245 | – | 15.3 | n = 1 match | |
| Ten-pin bowling | Single | 20260930 | Claude Fable 5.1 | No opponent | total 202 | – | 13.9 | n = 1 match | |
| Ten-pin bowling | Single | 20260930 | GPT-6 Astra | No opponent | total 190 | – | 8.4 | n = 1 match | |
| Ten-pin bowling | Single | 20260930 | GPT-6 Luna | No opponent | total 247 | – | 7.5 | n = 1 match | |
| Mini-golf putting | Single | 20260928 | Claude Opus 5.5 | No opponent | total 7 | – | 8.9 | n = 1 match | |
| Mini-golf putting | Single | 20260928 | Claude Fable 5.1 | No opponent | total 10 | – | 23.3 | n = 1 match | |
| Mini-golf putting | Single | 20260928 | GPT-6 Astra | No opponent | total 7 | – | 8.5 | n = 1 match | |
| Mini-golf putting | Single | 20260928 | GPT-6 Luna | No opponent | total 11 | – | 7.5 | n = 1 match |
Checked against the simulator's ground truth, the models located the ball to within 0.7–0.8 cm (median) and predicted the contact point to within 3.6–4.6 cm, yet those errors did not separate returned from missed balls (135 vs 31 balls, p = 0.92), and the model that saw most accurately won 1 of 6 matches. Points are lost in execution and placement, not in seeing.
n = 3 matches with logging + 3 without per model (18 model matches); 3 models; the reference player logged 3 matches
n = 3 models × 3 matches with logging · n = 135 returned balls, 31 missed balls (all players)
Table tennis, single player against the scripted opponent (L1 seeds 101 and 111, L2 seed 202), Athlete mode, cameras only, slowed ×10.
This measures perception and physical prediction, not reading the opponent.
Asking for the log changes the program; only 3 matches per model per condition.
Both modes are defined and have been validated in pilots.
Sample sizes are shown per pilot; fewer than 5 runs are shown as numbers only.
On a humanoid, Opus 5.5 and Astra implemented a table-tennis hit that beat our own platform skill on the hidden API test (mean 22.7 and 21.7 vs 8 of 29); the matches themselves were all lost because the body caps the outcome.
3 runs per model (9 model runs); each run = one match + post-match evaluation
3 runs per model (9 model runs); each run = one match + post-match evaluation
| GPT-6 Astra | 21.7 |
|---|---|
| Claude Opus 5.5 | 22.7 |
| GPT-6.1 SOL | 8.7 |
3 runs per model (9 model runs); each run = one match + post-match evaluation
| GPT-6 Astra | 28, 25, 12 |
|---|---|
| Claude Opus 5.5 | 24, 21, 23 |
| GPT-6.1 SOL | 3, 13, 10 |
3 runs per model (9 model runs); each run = one match + post-match evaluation
| GPT-6 Astra | 4 |
|---|---|
| Claude Opus 5.5 | 2 |
| GPT-6.1 SOL | 0 |
| platform skill (ours) | 0 |
Matches won 0 of 9 (best: Astra 5:7)
3 runs per model (9 model runs); each run = one match + post-match evaluation
| platform skill (ours) | 8 |
|---|---|
| tools-only reference (ours) | 12 |
| boundary baseline: walk + IK block, no swing | 0 |
Unitree G1 table tennis pilot. Robotics Engineer mode: the agent gets the robot model, an IK library, a joint-target interface with real limits and Unitree's walking policy, and must implement hit(t, pos, normal, vel) itself. After the match the final implementation is scored in a separate container on 29 hidden, feasible hit requests (success = position ≤ 8 cm, face ≤ 10 deg, speed error ≤ 0.5 m/s + 30%, time ±20 ms, no rejected command, no fall). Observation: true state (no cameras) in this pilot. Slowed ×10, L1 seed 101.
In fencing an implementation can pass all 40 hidden API requests and still win only 5 of 24 games when our reference strategy plays with it, so both numbers must be reported.
2 matches per model per mode (12 model matches)
2 matches per model per mode (12 model matches)
| GPT-6 Astra | 40, 31 |
|---|---|
| Claude Opus 5.5 | 39, 39 |
| GPT-6.1 SOL | 40, 28 |
2 matches per model per mode (12 model matches)
| GPT-6 Astra | 13, 12 |
|---|---|
| Claude Opus 5.5 | 22, 15 |
| GPT-6.1 SOL | 5, 2 |
Athlete 6 of 6 (5:0 to 5:2)
Robotics Engineer 5 of 6
2 matches per model per mode (12 model matches)
| platform implementation | API test: 40 · Competition test: 24 |
|---|---|
| tools-only reference | API test: 40 · Competition test: 24 |
| boundary baseline (IK only) | API test: 0 · Competition test: 4 |
Epee fencing, Franka Panda + 1-axis rail, against scripted L1. Skill API strike(t, point, dir, vel). Robotics Engineer mode: the agent implements strike from joint interface + IK library; post-match API test on 40 hidden requests and a competition test (our fixed reference strategy drives the agent's strike, 24 games).
All three models located the ball to under 1 cm (median 0.7–0.8 cm), yet the error did not separate returned from missed balls (p = 0.92) and the most accurate model won 1 of 6 matches: points are lost in execution and placement, not in seeing.
3 matches with logging + 3 without, per model (18 model matches); the reference player logged 3 matches
3 matches with logging + 3 without, per model (18 model matches); the reference player logged 3 matches
| GPT-6 Astra | 0.7 |
|---|---|
| Claude Opus 5.5 | 0.7 |
| GPT-6.1 SOL | 0.8 |
| reference player | 0.4 |
3 matches with logging + 3 without, per model (18 model matches); the reference player logged 3 matches
| GPT-6 Astra | 3.6 |
|---|---|
| Claude Opus 5.5 | 3.8 |
| GPT-6.1 SOL | 4.6 |
| reference player | 3.1 |
3 matches with logging + 3 without, per model (18 model matches); the reference player logged 3 matches
| GPT-6 Astra | 0.3 |
|---|---|
| Claude Opus 5.5 | 0.4 |
| GPT-6.1 SOL | 0.3 |
| reference player | 29.5 |
3 matches with logging + 3 without, per model (18 model matches); the reference player logged 3 matches
| GPT-6 Astra | 5 |
|---|---|
| Claude Opus 5.5 | 1 |
| GPT-6.1 SOL | 6 |
n = 135 returned balls, 31 missed balls (all players)
| Returned | 2.4 |
|---|---|
| Missed | 2.1 |
Table tennis, single player against the scripted opponent (L1 seeds 101 and 111, L2 seed 202), Athlete mode, cameras only, slowed ×10. In the logging condition the player's program writes its own estimate (ball position and velocity, predicted bounce and contact point, opponent paddle position) before every command; after the match the recording is replayed bit-exactly and each line is compared with the simulator state.
Claims about the opponent were checked against landing data across 192 reviews; 0 were wrong after the fact-label fix.
n = 192 reviews across 14 valid matches and 5 conditions.
Table tennis duels GPT-6.1 SOL vs GPT-6 Astra; the between-point reviews are scored by an LLM judge for opponent-directed understanding or prediction; conditions: no prompt / prompt asking to read the game / scouting report, 5- and 11-point games.
The legged bodies won 0 of 20 model matches in this table-tennis pilot (n = 20 model matches).
1 match per cell; per body: Franka 12, RB-Y1 12, R1 Pro 12, G1 8, H1-2 12 model matches
1 match per cell; per body: Franka 12, RB-Y1 12, R1 Pro 12, G1 8, H1-2 12 model matches
| Franka Panda (fixed base) | Athlete: 4/6 · Robotics Engineer: 3/6 |
|---|---|
| Rainbow RB-Y1 (wheeled) | Athlete: 5/6 · Robotics Engineer: 0/6 |
| Galaxea R1 Pro (wheeled) | Athlete: 3/6 · Robotics Engineer: 0/6 |
| Unitree G1 (legged) | Athlete: 0/5 · Robotics Engineer: 0/3 |
| Unitree H1-2 (legged) | Athlete: 0/6 · Robotics Engineer: 0/6 |
Table tennis single player against the scripted opponent (L1 seed 101, L2 seed 202), slowed ×20, cameras only, both modes; each body evaluated as a prototype. One match per body × mode × level × model.