Buckets:
| # Segment-level physics violations — human-rating examples | |
| Nine annotated clips (3 per robot/view group) showing **which time segment of a | |
| generated video violates physics**, so a human rater can agree or disagree with | |
| the judge segment by segment instead of on a whole-clip percentage. | |
| Each mp4 is: **PRED** (Ctrl-World / DreamDojo generated) on top, **GT** (the real | |
| video it was conditioned on) below, and a bar at the bottom with one cell per | |
| segment. The playing segment carries a white border; `Y` = violating, `n` = not. | |
| ## The rule | |
| | | statistic per segment | why | | |
| |---|---|---| | |
| | **rigidity** | **MEDIAN** of the per-frame score | a warped limb is a *persistent state* — the median says "the arm was wrong for most of this segment", and one bad frame cannot fake it | | |
| | **jerk** | **MAX** of the per-frame score | a jolt is an *impulsive event* — one frame is the whole thing, so averaging it away would be wrong | | |
| **Segmentation.** `K = clamp(round(duration / 2s), 6, 20)`, then capped so every | |
| segment holds ≥ 5 frames. ~2 s is about as long as a person can hold "was the arm | |
| warped just now?" in their head; the 6–20 clamp keeps the rating task bounded and | |
| the bar readable. Clips here land at 6–20 segments. The cost of the cap is | |
| honest: a 165 s singleview clip gets 20 × 8 s segments, coarser than the 2 s | |
| target. | |
| **Thresholds are calibrated at the segment level**, as the 95th percentile of the | |
| *same* segment statistic measured on real (gt) video of the same robot+view. So | |
| both detectors have a **5% false-positive rate on real footage by construction**, | |
| and "YES" means *outside the top 5% of what real video of this robot ever does*. | |
| > This is a deliberate change from the per-frame thresholds in `thresholds.json`. | |
| > Those are 95th percentiles of per-**frame** values, and a MAX over ~10 frames | |
| > clears a per-frame p95 about 40% of the time by chance. Measured: that rule fired | |
| > on **20–43% of segments of real video** — unusable as a yes/no. Everything here | |
| > uses the recalibrated segment thresholds below. | |
| ## Groups, thresholds, and what the rule measures | |
| | group | robot | view | fps | thr rigidity (median) | thr jerk (max) | clips | segments | | |
| |---|---|---|---|---|---|---|---| | |
| | `single_arm_multiview` | franka_panda | 3 cams, ctrlworld | 5 | 16.70 mm | 195.92 mm/f³ | 257 | 2430 | | |
| | `bimanual_multiview` | aloha_bimanual | 3 cams, ctrlworld | 5 | 31.07 mm | 173.07 mm/f³ | 300 | 4174 | | |
| | `bimanual_singleview` | aloha_bimanual | cam_high, dreamdojo | 10 | 69.27 mm | 141.50 mm/f³ | 188 | 3252 | | |
| Segment violation rate over the whole group (GT is 5.0% by construction): | |
| | group | PRED rigidity | GT rigidity | sep | PRED jerk | GT jerk | sep | | |
| |---|---|---|---|---|---|---| | |
| | `single_arm_multiview` | **27.7%** | 4.9% | **5.6x** | **25.1%** | 5.0% | **5.0x** | | |
| | `bimanual_multiview` | 7.0% | 5.0% | 1.4x | 7.2% | 5.0% | 1.4x | | |
| | `bimanual_singleview` | 10.1% | 5.0% | 2.0x | 12.4% | 5.0% | 2.5x | | |
| **Read this before rating.** Only `single_arm_multiview` separates cleanly — 5–6x | |
| over real video. `bimanual_multiview` at 1.4x is barely above the judge's own | |
| error floor; a rater disagreeing with those labels is probably right, and that | |
| group is included so the disagreement can be measured, not because the labels are | |
| trusted. `bimanual_singleview` sits in between (its reader has a 73.69 mm | |
| validation error, one camera on a 14-DoF arm). | |
| `single_arm` has **no singleview group**: those cells ship no joint ground truth, | |
| so no reader could be trained or calibrated for them. | |
| ## Files | |
| | group | example | segments violating | | |
| |---|---|---| | |
| | `single_arm_multiview` | `worst_rigidity__…episode_002168` | rigidity 13/13, jerk 8/13 | | |
| | | `worst_jerk__…episode_006884` | rigidity 9/11, jerk 11/11 | | |
| | | `clean__…episode_003714` | 0/8 and 0/8 | | |
| | `bimanual_multiview` | `worst_rigidity__…spoons_on_the_cloth__000023` | rigidity 8/8, jerk 3/8 | | |
| | | `worst_jerk__…spoons_on_the_cloth__000018` | rigidity 6/8, jerk 6/8 | | |
| | | `clean__…close_toolbox__000002` | 0/6 and 0/6 | | |
| | `bimanual_singleview` | `worst_rigidity__…episode_0001` | rigidity 10/12, jerk 0/12 | | |
| | | `worst_jerk__…episode_0041` | rigidity 5/20, jerk 18/20 | | |
| | | `clean__…episode_0016` | 0/20 and 0/20 | | |
| `worst_rigidity__…episode_0001` is the useful diagnostic case: 10/12 segments | |
| warped with **zero** jerk segments — the arm is drawn wrong but drawn *smoothly* | |
| wrong, which is exactly the failure a joint→FK reader is structurally blind to | |
| (FK pins limb lengths, so rigidity ≡ 0 there by construction). | |
| Every mp4 has a sidecar `.json` with the per-segment `rigidity_median`, | |
| `jerk_max`, the frame range, and the boolean verdict — the labels are auditable | |
| without watching anything. | |
| `manifest.json` carries the rule, the thresholds, and the group rates in machine | |
| -readable form. | |
| ## Provenance | |
| Scores come from the direct-keypoint runs already in this bucket | |
| (`direct_keypoint/frame_scores.csv` for multiview, the singleview run for | |
| `bimanual_singleview`); nothing was re-scored. Only the *aggregation* — segment | |
| cutting, median/max, and the segment-level recalibration — is new here. | |
Xet Storage Details
- Size:
- 5.15 kB
- Xet hash:
- 1685fa1e00c799c3698837358afd09ed14f4eedf283c82cae42b62a3adb30a54
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.