{
  "study": "ft-spatula-01",
  "policy": "base",
  "selection": {
    "run": 2,
    "env_id": 2
  },
  "selection_note": "Selected to show attempts on the wooden target in both engines, successful placement in PhysX and repeated grasp failures followed by a drop in Newton.",
  "pairing": "Same policy sampling-noise index.",
  "rendering": "Original RTX policy cameras at 15 fps, original speed. PhysX left, Newton right. Complete scene cameras above complete wrist cameras; no camera field of view is cropped. PhysX holds its final frame after 10.2 s of recording. Newton recording ends at 40.733 s.",
  "poster_time_s": 6,
  "sources": [
    {
      "engine": "physx",
      "path": "ft-spatula-01-eval-base-physx/WoodSpatulaToBowlTask/Put_the_wooden_spatula_in_the_bowl_2_env2.mp4",
      "sha256": "3849d46e922964e1b2909cc341da11b1acd7dc919d623a4623ad1b6031970c87",
      "video": {
        "programs": [],
        "stream_groups": [],
        "streams": [
          {
            "width": 960,
            "height": 270,
            "r_frame_rate": "15/1"
          }
        ],
        "format": {
          "duration": "10.200000"
        }
      },
      "episode": {
        "run": 2,
        "env_id": 2,
        "success": true,
        "duration": 10.266666666666666,
        "events": {
          "SCENE_SETTLING": 1,
          "OBJECT_GRIPPED": 1,
          "OBJECT_CARRIED": 1,
          "OBJECT_GRABBED_SUCCESS": 1,
          "OBJECT_DROPPED": 1,
          "GRIPPER_FULLY_CLOSED": 1,
          "SUBTASK_COMPLETED": 1
        },
        "physics_artifact": false,
        "reason": "Completed subtask 'pick_and_place' 1/1"
      },
      "event_log": {
        "schema_version": 2,
        "dt": 0.06666666666666667,
        "task": "WoodSpatulaToBowlTask",
        "env_id": 2,
        "run": 2,
        "success": true,
        "final_step": 154,
        "events": [
          {
            "step": 15,
            "detected_step": 15,
            "code": 269,
            "name": "SCENE_SETTLING",
            "info": "Scene settling at reset (no contact with the hand): lemon_02 0.026m",
            "score": 0.0
          },
          {
            "step": 103,
            "detected_step": 128,
            "code": 284,
            "name": "OBJECT_GRIPPED",
            "info": "'wooden_spoons' gripped (jaws closed on it)",
            "score": 0.0
          },
          {
            "step": 103,
            "detected_step": 128,
            "code": 283,
            "name": "OBJECT_CARRIED",
            "info": "'wooden_spoons' carried (grasp established)",
            "score": 0.0
          },
          {
            "step": 128,
            "code": 139,
            "name": "OBJECT_GRABBED_SUCCESS",
            "info": "success: object_grabbed(object=wooden_spoons). advanced 1 step(s) to step 1 for wooden_spoons.",
            "score": 0.0
          },
          {
            "step": 138,
            "detected_step": 138,
            "code": 268,
            "name": "OBJECT_DROPPED",
            "info": "'wooden_spoons' dropped (left the closed hand)",
            "score": 0.0
          },
          {
            "step": 138,
            "detected_step": 138,
            "code": 256,
            "name": "GRIPPER_FULLY_CLOSED",
            "info": "Gripper closed on nothing",
            "score": 0.0
          },
          {
            "step": 154,
            "code": 190,
            "name": "SUBTASK_COMPLETED",
            "info": "Completed subtask 'pick_and_place' 1/1",
            "score": 1.0
          }
        ]
      }
    },
    {
      "engine": "newton_mjwarp",
      "path": "ft-spatula-01-eval-base-newton_mjwarp/WoodSpatulaToBowlTask/Put_the_wooden_spatula_in_the_bowl_2_env2.mp4",
      "sha256": "2831d4e2c56c71c149496818717a5fccf3407b46bfdf6c9da0cbca399750db88",
      "video": {
        "programs": [],
        "stream_groups": [],
        "streams": [
          {
            "width": 960,
            "height": 270,
            "r_frame_rate": "15/1"
          }
        ],
        "format": {
          "duration": "40.733333"
        }
      },
      "episode": {
        "run": 2,
        "env_id": 2,
        "success": false,
        "duration": 40.8,
        "events": {
          "SCENE_SETTLING": 1,
          "TARGET_OBJECT_BUMPED": 2,
          "GRIPPER_HIT_OBJECT": 2,
          "OBJECT_CARRIED": 3,
          "OBJECT_GRABBED_SUCCESS": 3,
          "OBJECT_RELEASED": 2,
          "GRASP_ATTEMPT_FAILED": 4,
          "GRIPPER_FULLY_CLOSED": 2,
          "OBJECT_GRIPPED": 2,
          "MULTIPLE_OBJECTS_GRABBED": 1,
          "OBJECT_DROPPED": 1,
          "OBJECT_FELL_OFF_TABLE": 1,
          "TARGET_LOST": 1
        },
        "physics_artifact": false,
        "reason": "Condition not satisfied: object_grabbed(object=wooden_spoons) (step 1/2)"
      },
      "event_log": {
        "schema_version": 2,
        "dt": 0.06666666666666667,
        "task": "WoodSpatulaToBowlTask",
        "env_id": 2,
        "run": 2,
        "success": false,
        "final_step": 612,
        "events": [
          {
            "step": 15,
            "detected_step": 15,
            "code": 269,
            "name": "SCENE_SETTLING",
            "info": "Scene settling at reset (no contact with the hand): lemon_02 0.050m, lemon_01 0.036m, wooden_spoons 0.035m, lime01_01 0.024m",
            "score": 0.0
          },
          {
            "step": 15,
            "detected_step": 15,
            "code": 282,
            "name": "TARGET_OBJECT_BUMPED",
            "info": "Target object bumped: 'wooden_spoons' nudged 0.063m",
            "score": 0.0
          },
          {
            "step": 88,
            "detected_step": 88,
            "code": 264,
            "name": "GRIPPER_HIT_OBJECT",
            "info": "Gripper hit object: 'spatula'",
            "score": 0.0
          },
          {
            "step": 111,
            "detected_step": 126,
            "code": 283,
            "name": "OBJECT_CARRIED",
            "info": "'wooden_spoons' carried (grasp established)",
            "score": 0.0
          },
          {
            "step": 126,
            "code": 139,
            "name": "OBJECT_GRABBED_SUCCESS",
            "info": "success: object_grabbed(object=wooden_spoons). advanced 1 step(s) to step 1 for wooden_spoons.",
            "score": 0.0
          },
          {
            "step": 136,
            "detected_step": 136,
            "code": 267,
            "name": "OBJECT_RELEASED",
            "info": "'wooden_spoons' released (hand opened)",
            "score": 0.0
          },
          {
            "step": 157,
            "detected_step": 157,
            "code": 282,
            "name": "TARGET_OBJECT_BUMPED",
            "info": "Target object bumped: 'wooden_spoons' nudged 0.025m",
            "score": 0.0
          },
          {
            "step": 256,
            "detected_step": 265,
            "code": 266,
            "name": "GRASP_ATTEMPT_FAILED",
            "info": "Grasp attempts on 'wooden_spoons' failed \u00d73 over 0.3s (contact never became a carry)",
            "score": 0.0
          },
          {
            "step": 261,
            "detected_step": 261,
            "code": 256,
            "name": "GRIPPER_FULLY_CLOSED",
            "info": "Gripper closed on nothing",
            "score": 0.0
          },
          {
            "step": 353,
            "detected_step": 367,
            "code": 284,
            "name": "OBJECT_GRIPPED",
            "info": "'wooden_spoons' gripped (jaws closed on it)",
            "score": 0.0
          },
          {
            "step": 353,
            "detected_step": 367,
            "code": 283,
            "name": "OBJECT_CARRIED",
            "info": "'wooden_spoons' carried (grasp established)",
            "score": 0.0
          },
          {
            "step": 367,
            "code": 139,
            "name": "OBJECT_GRABBED_SUCCESS",
            "info": "success: object_grabbed(object=wooden_spoons). advanced 1 step(s) to step 1 for wooden_spoons.",
            "score": 0.0
          },
          {
            "step": 469,
            "detected_step": 469,
            "code": 267,
            "name": "OBJECT_RELEASED",
            "info": "'wooden_spoons' released (hand opened)",
            "score": 0.0
          },
          {
            "step": 532,
            "detected_step": 532,
            "code": 264,
            "name": "GRIPPER_HIT_OBJECT",
            "info": "Gripper hit object: 'storage_box'",
            "score": 0.0
          },
          {
            "step": 560,
            "detected_step": 560,
            "code": 265,
            "name": "MULTIPLE_OBJECTS_GRABBED",
            "info": "Multiple objects grabbed",
            "score": 0.0
          },
          {
            "step": 561,
            "detected_step": 569,
            "code": 266,
            "name": "GRASP_ATTEMPT_FAILED",
            "info": "Grasp attempts on 'wooden_spoons' failed \u00d72 over 0.4s (contact never became a carry)",
            "score": 0.0
          },
          {
            "step": 570,
            "detected_step": 578,
            "code": 266,
            "name": "GRASP_ATTEMPT_FAILED",
            "info": "Grasp attempt on 'wooden_spoons' failed (contact lost before a carry was established)",
            "score": 0.0
          },
          {
            "step": 571,
            "detected_step": 578,
            "code": 284,
            "name": "OBJECT_GRIPPED",
            "info": "'wooden_spoons' gripped (jaws closed on it)",
            "score": 0.0
          },
          {
            "step": 571,
            "detected_step": 578,
            "code": 283,
            "name": "OBJECT_CARRIED",
            "info": "'wooden_spoons' carried (grasp established)",
            "score": 0.0
          },
          {
            "step": 571,
            "detected_step": 603,
            "code": 266,
            "name": "GRASP_ATTEMPT_FAILED",
            "info": "Grasp attempt on 'storage_box' failed (contact lost before a carry was established)",
            "score": 0.0
          },
          {
            "step": 578,
            "code": 139,
            "name": "OBJECT_GRABBED_SUCCESS",
            "info": "success: object_grabbed(object=wooden_spoons). advanced 1 step(s) to step 1 for wooden_spoons.",
            "score": 0.0
          },
          {
            "step": 604,
            "detected_step": 604,
            "code": 268,
            "name": "OBJECT_DROPPED",
            "info": "'wooden_spoons' dropped (left the closed hand)",
            "score": 0.0
          },
          {
            "step": 605,
            "detected_step": 605,
            "code": 256,
            "name": "GRIPPER_FULLY_CLOSED",
            "info": "Gripper closed on nothing",
            "score": 0.0
          },
          {
            "step": 612,
            "detected_step": 612,
            "code": 272,
            "name": "OBJECT_FELL_OFF_TABLE",
            "info": "'wooden_spoons' fell off the table",
            "score": 0.0
          },
          {
            "step": 612,
            "detected_step": 612,
            "code": 273,
            "name": "TARGET_LOST",
            "info": "Target lost: wooden_spoons off the table \u2014 the task can no longer succeed",
            "score": 0.0
          }
        ]
      }
    }
  ],
  "outputs": [
    {
      "path": "media/spatula-grasp-comparison.mp4",
      "sha256": "19850c92b2ce4978343efce846401a1156c6d7c645eb2df4769bbf70d65e77d3",
      "bytes": 4054362
    },
    {
      "path": "media/spatula-grasp-comparison.jpg",
      "sha256": "d0d2de86c0e57dd8c495040915f2624c2d8e2295a2a3d9c55b38d067997a63c4",
      "bytes": 112739
    }
  ]
}
