{
  "run": "ppo_v2_seed42",
  "status": "stopped",
  "progress": {
    "iteration": 83,
    "env_steps": 339968.0,
    "iteration_seconds": 23.12172209005803,
    "elapsed_seconds": 1253.7202562922612,
    "mean_episode_return": 124.17754724377275,
    "success_rate": 0.921875,
    "mean_final_bottom_height": 0.1446886645841885,
    "mean_final_distance": 0.017384294102815608,
    "episodes": 2596.0,
    "weights_sha256": "92a88677ed3b3dec67bcbe2fa1196a937cac8c55b7ef8c80bf098bc61eb9a2a8"
  },
  "launch": {
    "algorithm": "PPO",
    "framework": "Ray RLlib + native SuperDex Lab MochiEnv",
    "seed": 42,
    "workers": 16,
    "iterations": 250,
    "rollout_fragment_length": 256,
    "batch_size": 4096,
    "observation": "43 floats; robot and object state; no images",
    "actions": "4 floats: Cartesian delta XYZ and gripper opening",
    "env_config": {
      "bottle_xy_noise": 0.01,
      "start_xy_noise": 0.005,
      "task_version": 2
    },
    "control_hz": 20,
    "physics_hz": 500,
    "policy_network": [
      128,
      128
    ],
    "initialization": "random weights; no demonstrations or scripted rollouts",
    "resume": null
  }
}
