{
  "schema": "simcompare.controller-transfer.v1",
  "engines": [
    "physx",
    "newton_mjwarp",
    "mujoco_cpu",
    "genesis"
  ],
  "candidates": [
    {
      "id": "p0.5-d0.7-t2",
      "kp_scale": 0.5,
      "kd_scale": 0.7,
      "push_duration_s": 2.0
    },
    {
      "id": "p0.5-d0.7-t3",
      "kp_scale": 0.5,
      "kd_scale": 0.7,
      "push_duration_s": 3.0
    },
    {
      "id": "p0.5-d0.7-t4",
      "kp_scale": 0.5,
      "kd_scale": 0.7,
      "push_duration_s": 4.0
    },
    {
      "id": "p0.5-d1-t2",
      "kp_scale": 0.5,
      "kd_scale": 1.0,
      "push_duration_s": 2.0
    },
    {
      "id": "p0.5-d1-t3",
      "kp_scale": 0.5,
      "kd_scale": 1.0,
      "push_duration_s": 3.0
    },
    {
      "id": "p0.5-d1-t4",
      "kp_scale": 0.5,
      "kd_scale": 1.0,
      "push_duration_s": 4.0
    },
    {
      "id": "p0.5-d1.4-t2",
      "kp_scale": 0.5,
      "kd_scale": 1.4,
      "push_duration_s": 2.0
    },
    {
      "id": "p0.5-d1.4-t3",
      "kp_scale": 0.5,
      "kd_scale": 1.4,
      "push_duration_s": 3.0
    },
    {
      "id": "p0.5-d1.4-t4",
      "kp_scale": 0.5,
      "kd_scale": 1.4,
      "push_duration_s": 4.0
    },
    {
      "id": "p1-d0.7-t2",
      "kp_scale": 1.0,
      "kd_scale": 0.7,
      "push_duration_s": 2.0
    },
    {
      "id": "p1-d0.7-t3",
      "kp_scale": 1.0,
      "kd_scale": 0.7,
      "push_duration_s": 3.0
    },
    {
      "id": "p1-d0.7-t4",
      "kp_scale": 1.0,
      "kd_scale": 0.7,
      "push_duration_s": 4.0
    },
    {
      "id": "p1-d1-t2",
      "kp_scale": 1.0,
      "kd_scale": 1.0,
      "push_duration_s": 2.0
    },
    {
      "id": "p1-d1-t3",
      "kp_scale": 1.0,
      "kd_scale": 1.0,
      "push_duration_s": 3.0
    },
    {
      "id": "p1-d1-t4",
      "kp_scale": 1.0,
      "kd_scale": 1.0,
      "push_duration_s": 4.0
    },
    {
      "id": "p1-d1.4-t2",
      "kp_scale": 1.0,
      "kd_scale": 1.4,
      "push_duration_s": 2.0
    },
    {
      "id": "p1-d1.4-t3",
      "kp_scale": 1.0,
      "kd_scale": 1.4,
      "push_duration_s": 3.0
    },
    {
      "id": "p1-d1.4-t4",
      "kp_scale": 1.0,
      "kd_scale": 1.4,
      "push_duration_s": 4.0
    },
    {
      "id": "p2-d0.7-t2",
      "kp_scale": 2.0,
      "kd_scale": 0.7,
      "push_duration_s": 2.0
    },
    {
      "id": "p2-d0.7-t3",
      "kp_scale": 2.0,
      "kd_scale": 0.7,
      "push_duration_s": 3.0
    },
    {
      "id": "p2-d0.7-t4",
      "kp_scale": 2.0,
      "kd_scale": 0.7,
      "push_duration_s": 4.0
    },
    {
      "id": "p2-d1-t2",
      "kp_scale": 2.0,
      "kd_scale": 1.0,
      "push_duration_s": 2.0
    },
    {
      "id": "p2-d1-t3",
      "kp_scale": 2.0,
      "kd_scale": 1.0,
      "push_duration_s": 3.0
    },
    {
      "id": "p2-d1-t4",
      "kp_scale": 2.0,
      "kd_scale": 1.0,
      "push_duration_s": 4.0
    },
    {
      "id": "p2-d1.4-t2",
      "kp_scale": 2.0,
      "kd_scale": 1.4,
      "push_duration_s": 2.0
    },
    {
      "id": "p2-d1.4-t3",
      "kp_scale": 2.0,
      "kd_scale": 1.4,
      "push_duration_s": 3.0
    },
    {
      "id": "p2-d1.4-t4",
      "kp_scale": 2.0,
      "kd_scale": 1.4,
      "push_duration_s": 4.0
    }
  ],
  "baseline": "p1-d1-t3",
  "selection_layouts": [
    {
      "id": "train-0",
      "width": 0.09,
      "rear_y_m": -0.002
    },
    {
      "id": "train-1",
      "width": 0.09,
      "rear_y_m": 0.0
    },
    {
      "id": "train-2",
      "width": 0.09,
      "rear_y_m": 0.002
    }
  ],
  "heldout_layouts": [
    {
      "id": "test-0",
      "width": 0.09,
      "rear_y_m": -0.003
    },
    {
      "id": "test-1",
      "width": 0.09,
      "rear_y_m": -0.001
    },
    {
      "id": "test-2",
      "width": 0.09,
      "rear_y_m": 0.001
    },
    {
      "id": "test-3",
      "width": 0.09,
      "rear_y_m": 0.003
    },
    {
      "id": "test-4",
      "width": 0.08,
      "rear_y_m": -0.001
    },
    {
      "id": "test-5",
      "width": 0.08,
      "rear_y_m": 0.001
    }
  ],
  "dt": 0.001,
  "seed": 0,
  "repeats": 1,
  "settle_s": 1.5,
  "selection_rule": "All three trials valid; lexicographic: more successful layouts, more passed objects, larger mean minimum-object progress capped at goal, lower mean normalized squared arm effort, closer to baseline, candidate id.",
  "missing_policy": "Require every scheduled selection result, including explicit errors. Any invalid training trial makes that candidate ineligible. Missing files are not failures. No automatic retries.",
  "scope": "Exploratory matched layout transfer, not confidence intervals. Held-out means excluded from controller selection, not historically unseen task geometry. No per-engine physics tuning.",
  "implementation_hashes": {
    "controller_transfer.py": "6b34aed7c8f03132c8073c9393c90a3b6009f7318b5f011978cfd95895e9769f",
    "controller_transfer_run.py": "b6287a14217faf985ba88a76e182ee772eebe69ee722b0ec6bdadebf51774660",
    "controller_transfer_study.py": "11af595acc5ed2aff2a5d532132165ec576f04ebf7d4b514c9c4aa8e5d5cec6f",
    "grasp_run.py": "958f31d9650b8605bd9a6c23b440dd5c6612f4a6f9d880c4b23d7a4fd3531a55",
    "grasp_scene.py": "f44583305ba65672d76ccf6f4646cba9404899ee652dd522d0883435b7bdce3f",
    "grasp_native.py": "ddcd79af7358abb363dd3174e4582e9467efa490933aebdcb50941be31918298",
    "grasp_physx.py": "296a8560c611caad3ff4bd985b466b40c003961a2db6a39f460dddaea5751dd8",
    "push_scene.py": "0aa196fa7327bdf222900c10ffc77f28ae64b5398addab888faf2a56425e3faf",
    "push_report.py": "2fb62550e631d68a3856146ece311b7f22b8d92d139ca47a186a632bd8cd480f",
    "panda_model.py": "e60b9b395cda924896301565e829f34e0eec08166d37c832dd407de3a24fa95b",
    "multi_scene.py": "21ba30916245b95b6344e0763ad6d1006fa1bb68c9e777ee217c8c75b118926b"
  },
  "reference_hashes": {
    "reference-2s.json": "5d6d86d9965a604d36d0847473d0f48e756fe23a8ae57718bf37f68b6a374463",
    "reference-3s.json": "671c55d9837cb7d6c156a504b79f01f4013282a7e0530469e0448a94a2064cc9",
    "reference-4s.json": "625703f5ec04ccb76a9276b3e25ad1d0fd2a2407a2e9ae1f8bc9541b7dd4620c"
  }
}