← Back to project

X2 SONIC 50k: Corrected Evaluation

The 38% diagnosis is withdrawn; evaluation semantics are now source-audited | 2026-07-25
SONICX2evaluationcorrection

1 | Correction

The historical 50k policy was substantially better than the former 38% report. The corrected 512-motion primary result is 480/512 (93.75%), with 95.32% progress, successful-only MPJPE-L 44.29 mm, and all-motion MPJPE-L 47.56 mm.

The deleted project-local evaluator checked root XY and full 3D endpoint error. SONIC success checks root/end-effector height and root orientation. The old number cannot be reused as SONIC success, a framework ceiling, or evidence that this checkpoint failed.

2 | Final primary contract

LayerSetting
DataFrozen 512-motion GMR v4 ruler
EncoderFixed robot-motion encoder (internal key g1)
TerminationPaper thresholds: root/end-point height 0.25 m, root orientation 1 rad, timeout succeeds
RuntimeReleased-code startup randomization, observation noise, and random micro-terrain retained
X2 mappingHand endpoint and hand-mass target use wrist_roll, not G1 wrist_yaw

3 | Two upstream mismatches

The released config merge retains the training foot_pos_xyz guard, adding a 0.2 m full ankle XYZ termination absent from the paper prose. It also leaves startup domain randomization, observation corruption, and rough terrain active even though the paper describes domain randomization as a training setting. We report these facts instead of calling release-code and paper protocols identical.

4 | What remains valid

5 | Paper context

Lower MPJPE is better. SONIC reports 23.2 mm in its main comparison, 27.5/26.3 mm for the 32-GPU FSQ-32-32 ablation, and 23.8/22.5 mm for the 128-GPU robot encoder.

The paper reports MPJPE-L but not MPJPE-G and does not identify whether its number maps to the callback's successful-only or all-motion aggregate. See SONIC arXiv v3.

Source-audited SONIC im_eval; frozen internal X2 v4 ruler