跳转至

Physics Studio 使用指南

Physics Studio 只负责 source、case selection 和 common rollout/evaluator 边界;每个方法仍运行自己的作者 task 与训练 lifecycle。

source CoDA InterMimic RePHO HDMI Ours
result.pt CoDA-62 OMOMO OMOMO OMOMO → Isaac Lab PHC
ARCTIC official InterAct CoDA-62 OMOMO OMOMO OMOMO → Isaac Lab PHC

这就是完整的 2×5 路由。人类 motion format 只有 CoDA-62、OMOMO、PHC 三种;URDF、完整 object joint trajectory、q0 和 contact 是同一 source 的 side input,不能把 CoDA 或 Ours 强转为 OMOMO。

配置与 source

physics.motion_source 只能是:

  • recon_resultphysics.motion_path 是一个 result.pt
  • datasetphysics.motion_path 是一个官方 InterAct sequence 目录。

ARCTIC 的 40 个 case、时间区间与数据根目录只定义在 configs/datasets/arctic40.json。五个方法各自只有一份 case-independent YAML;不要新增 per-case config 或 manifest。

先在 shell 或调度器中激活兼容环境,再运行命令。仓库 YAML 和 Python 代码不选择 Conda 环境、解释器或 动态库路径;子进程继承启动命令的环境。

ARCTIC-40

先用一个 case 检查训练链,再移除 --case 跑完整 inventory:

python scripts/physics/run_arctic_physics_only.py \
  --config configs/experiments/physics_only/arctic/coda.yaml \
  --case s01/laptop_use_01 --device-id 0

python scripts/physics/run_arctic_physics_only.py \
  --config configs/experiments/physics_only/arctic/intermimic.yaml \
  --case s01/laptop_use_01 --device-id 1

CoDA 的 ARCTIC source 是已验证的作者原生 62-joint MimicArti motion;不恢复也不使用 MimicArtiStudio。InterMimic、RePHO、HDMI 和 Ours 从同一官方 human.npz + object.npz + contact.npz 读取 ARCTIC source。HDMI 的 ARCTIC author-run 尚未 smoke 前,不应声明它可用。

--prepare-only 仅 materialize native input;它不会启动训练。Ours 的普通运行则是一次原生训练:

python scripts/physics/run_arctic_physics_only.py \
  --config configs/experiments/physics_only/arctic/ours.yaml \
  --case s01/laptop_use_01 --device-id 6 --epochs 50 \
  --output output/physics_only/arctic_ours_smoke

--epochs 是 Ours 专用的正整数 override。它不是 partial/full stage,也不会自动 eval 或 resume。

D3D result.pt

python scripts/physics/run_studio_case.py \
  --case-json /absolute/path/case.json \
  --motion /absolute/path/result.pt \
  --config configs/methods/physics/ours.yaml \
  --output /absolute/path/new-output \
  --device-id 0 --epochs 50

Ours 的 public route 为:

load_physics_reference → load_studio_case → PHC-native files → one PHC train

一个 Ours 输出目录只保留真正跨 PHC child-process 边界的输入和训练结果:

studio_input/reference.npz
studio_input/phc/reference/phc_motion.pkl
studio_input/phc/reference/humanoid.xml
studio_input/phc/reference/phc_object_case/{config.json,asset/...}
train/ours.pth
train/train.log

reference.npz 含 object trajectory 和两手 contact;config.json 只描述 PHC object asset、q0、物理 参数及 contact geometry。不会写 materialization.jsonours_resolved_config.jsonphase.jsoncommand.txt、pretraining/partial gate 或 duplicate q/contact NPZ。

当前边界

  • Ours 保持自己的 HumanoidImStudioResidual task;它不进入通用 OMOMO runner。
  • Ours 训练 log 可用于检查 reward 曲线,但 Physics metric/evaluator 仍待冻结;训练完成不代表 benchmark 成功。
  • 每个 case 使用新的输出目录。不要覆盖他人的 checkpoint,也不要让多个 case 共用 Ours policy/RMS。
  • CoDA/InterMimic/RePHO/HDMI 的作者 task、reward、trainer 不在这次通用 source refactor 中合并。