{
  "schema_version": 1,
  "frozen_utc": "2026-09-14T06:52:16.691002+00:00",
  "source_commit": "a68b97b9363aa0be9ccb0c8291b021f3afdd807d",
  "tutorial": "examples/tutorials/IK_motion_planning_grasp.py",
  "runtime": {
    "python": "3.12.3",
    "genesis": "1.4.1",
    "quadrants": "1.3.0",
    "torch": "2.11.0+cpu",
    "mujoco": "3.12.0"
  },
  "initialization": {
    "backend": "cpu",
    "precision": "32",
    "seed": 0,
    "use_deterministic_algorithms": true,
    "threads": 1
  },
  "clocks": {
    "physics_dt_seconds": 0.01,
    "substeps": 1,
    "control_hz": 100,
    "camera_hz": 100,
    "steps": 700,
    "samples": 701
  },
  "camera": {
    "renderer": "native Rasterizer",
    "resolution": [
      640,
      480
    ],
    "pos": [
      3,
      -1,
      1.5
    ],
    "lookat": [
      0,
      0,
      0.5
    ],
    "up": [
      0,
      0,
      1
    ],
    "vertical_fov_degrees": 30,
    "GUI": false,
    "debug": false
  },
  "capture_changes": [
    "Set explicit seed 0 and deterministic algorithms; declare single-thread runtime settings",
    "Disable interactive viewer and add native headless RGB observer at the source viewer pose/FOV",
    "Capture sample zero and every post-step state/RGB frame; preserve source debug-path calls; added camera does not display debug nodes",
    "No changes to original model bytes, native physics options, source IK/planner defaults, gains, limits, control commands or phase lengths"
  ],
  "phases": [
    {
      "name": "planned path",
      "first_step": 1,
      "last_step": 200
    },
    {
      "name": "settle",
      "first_step": 201,
      "last_step": 300
    },
    {
      "name": "reach",
      "first_step": 301,
      "last_step": 400
    },
    {
      "name": "grasp",
      "first_step": 401,
      "last_step": 500
    },
    {
      "name": "lift",
      "first_step": 501,
      "last_step": 700
    }
  ],
  "controller": {
    "kind": "native IK / RRTConnect / mixed position and force control",
    "checkpoint": null,
    "position_gains": [
      4500,
      4500,
      3500,
      3500,
      2000,
      2000,
      2000,
      100,
      100
    ],
    "velocity_gains": [
      450,
      450,
      350,
      350,
      200,
      200,
      200,
      10,
      10
    ],
    "force_limits": [
      87,
      87,
      87,
      87,
      12,
      12,
      12,
      100,
      100
    ],
    "finger_force_newtons": [
      -0.5,
      -0.5
    ]
  },
  "outcome": {
    "origin": "authored before first native trial; tutorial has no success predicate",
    "all_required": true,
    "hold_samples": [
      601,
      602,
      603,
      604,
      605,
      606,
      607,
      608,
      609,
      610,
      611,
      612,
      613,
      614,
      615,
      616,
      617,
      618,
      619,
      620,
      621,
      622,
      623,
      624,
      625,
      626,
      627,
      628,
      629,
      630,
      631,
      632,
      633,
      634,
      635,
      636,
      637,
      638,
      639,
      640,
      641,
      642,
      643,
      644,
      645,
      646,
      647,
      648,
      649,
      650,
      651,
      652,
      653,
      654,
      655,
      656,
      657,
      658,
      659,
      660,
      661,
      662,
      663,
      664,
      665,
      666,
      667,
      668,
      669,
      670,
      671,
      672,
      673,
      674,
      675,
      676,
      677,
      678,
      679,
      680,
      681,
      682,
      683,
      684,
      685,
      686,
      687,
      688,
      689,
      690,
      691,
      692,
      693,
      694,
      695,
      696,
      697,
      698,
      699,
      700
    ],
    "minimum_lift_above_initial_m": 0.1,
    "maximum_hold_linear_speed_m_per_s": 0.1,
    "maximum_hold_cube_to_hand_origin_distance_m": 0.18,
    "definition": "Every sample 601 through 700 must meet all three thresholds, using cube authored origin and its world linear velocity, and authored hand origin. Initial cube height is sample 0. No reward or environment termination is invented."
  },
  "replay": {
    "initial_state_absolute_tolerance": 1e-06,
    "trajectory_absolute_tolerance": 1e-05,
    "force_diagnostic_absolute_tolerance": 0.0001,
    "method": "Fresh original source setup stopped before first IK; no IK/planner evaluation or recorded-state teleportation; apply recorded mixed commands before each native step",
    "divergence_policy": "Report maxima and failing samples; do not loosen tolerances or select a different seed after observing results"
  },
  "bounds": {
    "max_wall_seconds": 1800,
    "max_physics_steps": 700,
    "prohibit_environment_variable": "PYTEST_VERSION",
    "one_native_experiment_at_a_time": true
  },
  "credit": {
    "learned_policy_evaluations": 0,
    "benchmark_suites": 0,
    "published_recordings": 0
  }
}
