{
 "id": "GEN_F_r04a_s32_g2",
 "emotion": "neutral",
 "fps": 30,
 "face_frames": 412,
 "body_frames": 411,
 "face": "face.json",
 "body": "body.vrma",
 "audio": "audio.wav",
 "body_source": "generator + codec decoder (continuous)",
 "body_writer": "baked_template_channel_write",
 "bones": 50,
 "run_id": "solo_body_v1__50b_vel__scratch__r04a_hygiene",
 "generator_ckpt": "../motion-blender/experiments/wave-hands/outputs/gen_train/runs/solo_body_v1__50b_vel__scratch__r04a_hygiene/generator/epoch_2000.pth",
 "generator_epoch": 1999,
 "guidance": 2.0,
 "steps": 32,
 "cond_time_zero": false,
 "rng_seed": 20260806,
 "compare_with": "GT_17_median_seg123",
 "root_translation": "codec velocity integrated from origin",
 "motion_stats": {
  "generated": {
   "speed_deg_per_frame": 1.0363142964681404,
   "speed_p95": 3.157720002098626,
   "arms_speed": 1.213251703309043,
   "fingers_speed": 0.5871641990691923,
   "rest_frac": 0.0,
   "jerk_p99": 1.4442212336634506,
   "frames": 411,
   "travel_cm": 249.20518286526203,
   "net_travel_cm": 70.5608901977539
  },
  "ground_truth": {
   "speed_deg_per_frame": 1.239993775436027,
   "speed_p95": 4.91380225659432,
   "arms_speed": 1.9883894074950441,
   "fingers_speed": 0.38967421680331044,
   "rest_frac": 0.12926829268292683,
   "jerk_p99": 9.046834871628896,
   "frames": 411,
   "travel_cm": 200.5533605946652,
   "net_travel_cm": 70.67283915661568
  }
 },
 "writer_report": {
  "frames": 411,
  "skipped": [
   "upperChest"
  ],
  "root_translation": true,
  "template": "/data/mocap-convertor/datasets/solo_20260722_body_v1/artifacts/templates/kemix.vrma"
 },
 "note": "생성기는 GT를 재현하지 않는다 — 오디오에 맞는 새 모션을 만든다. 프레임별 각도 차이는 의미가 없고 분포(속도·정지비율·이동)를 본다.",
 "timing": {
  "face_s": 0.0,
  "body_s": 1.42,
  "total_s": 5.19
 }
}