{
  "source": "https://droid-dataset.github.io/",
  "source_video_url": "https://storage.googleapis.com/gresearch/robotics/droid_raw/1.0.1/PennPAL/success/2023-06-23/Fri_Jun_23_19%3A56%3A41_2023/recordings/MP4/27085680.mp4?generation=1710758525732849",
  "episode": "PennPAL+acda9df3+2023-06-23-19h-56m-41s",
  "camera": "ext2_left_eye:27085680",
  "source_start_s": 17,
  "source_end_s": 42,
  "source_timebase": "Seconds in the camera-timestamp-normalized source, not seconds in the original 60 fps MP4 container.",
  "license": "CC BY 4.0",
  "license_url": "https://creativecommons.org/licenses/by/4.0/",
  "author": "DROID Dataset Team",
  "license_evidence": "https://www.jiajunwu.com/papers/droid_rss.pdf",
  "demonstration_type": "Human teleoperation",
  "video": "droid-sample.mp4",
  "poster": "droid-poster.jpg",
  "method": "Gemini 3.8 Flash proposed action phases from 250 explicitly timestamped JPEG frames at 10 fps. An AI agent then visually inspected all 375 displayed frames and corrected the action semantics and boundaries.",
  "review_status": "AI visually reviewed and corrected model output, not human-reviewed ground truth",
  "boundary_precision": "Task-phase boundaries rounded to 0.1 s after 15 fps inspection. Transition windows record visual ambiguity, not measured error bounds.",
  "review": {
    "date": "2026-09-23",
    "reviewer_type": "AI agent",
    "clip_duration_s": 25,
    "clip_fps": 15,
    "clip_frame_count": 375,
    "clip_resolution_px": [
      960,
      540
    ],
    "reviewed_frame_range_inclusive": [
      0,
      374
    ],
    "all_frames_visually_inspected": true,
    "contact_sheet_frame_resolution_px": [
      320,
      180
    ],
    "boundary_inspection": "Additional cropped frame sequences and larger detail views around each transition.",
    "timebase": "Seconds from displayed clip start; normalized source time = clip time + 17 s.",
    "interval_convention": "Start inclusive, end exclusive; 25 s is the clip endpoint.",
    "segmentation_policy": "Six task phases include reaching, positioning and release motions. Boundaries are not exact physical-contact measurements.",
    "notes_repository_path": "artifacts/annotation/droid-evidence/review.md"
  },
  "actions": [
    {
      "start": 0,
      "end": 2.5,
      "label": "Finish opening drawer"
    },
    {
      "start": 2.5,
      "end": 7.2,
      "label": "Grasp orange object"
    },
    {
      "start": 7.2,
      "end": 11.3,
      "label": "Place object in basket"
    },
    {
      "start": 11.3,
      "end": 18.3,
      "label": "Return to drawer"
    },
    {
      "start": 18.3,
      "end": 21.8,
      "label": "Push drawer closed"
    },
    {
      "start": 21.8,
      "end": 25,
      "label": "Withdraw gripper"
    }
  ],
  "boundary_evidence": [
    {
      "time_s": 2.5,
      "source_time_s": 19.5,
      "transition_window_s": [
        2.3,
        2.7
      ],
      "observation": "The drawer has finished moving outward and the open gripper rises away from the drawer front before approaching the orange object."
    },
    {
      "time_s": 7.2,
      "source_time_s": 24.2,
      "transition_window_s": [
        7.0,
        7.5
      ],
      "observation": "The orange object is held between the fingers and begins rising from the drawer as the arm starts carrying it toward the basket."
    },
    {
      "time_s": 11.3,
      "source_time_s": 28.3,
      "transition_window_s": [
        11.1,
        11.5
      ],
      "observation": "The gripper opens above the basket, the orange object drops below the basket rim, and the empty gripper begins withdrawing."
    },
    {
      "time_s": 18.3,
      "source_time_s": 35.3,
      "transition_window_s": [
        18.1,
        18.6
      ],
      "observation": "After descending toward the drawer front, the gripper finishes alignment and begins the inward push. Visible drawer translation follows."
    },
    {
      "time_s": 21.8,
      "source_time_s": 38.8,
      "transition_window_s": [
        21.6,
        22.0
      ],
      "observation": "The drawer front is flush with the cabinet, and the gripper separates and rises away."
    }
  ],
  "generation": {
    "model_requested": "gemini-3.8-flash",
    "model_returned": "gemini-3.8-flash",
    "fps_supplied": 10,
    "frames_supplied": 250,
    "frame_resolution_px": [
      640,
      360
    ],
    "input_mode": "explicit timestamped JPEG frames",
    "frame_times_s": "0.0, 0.1, ..., 24.9",
    "started_at": "2026-09-24T02:05:21.287240+00:00",
    "http_status": 200,
    "finish_reason": "STOP",
    "response_id": "boW0ar_lHdy1sOIPscCe0AY",
    "request_sha256": "535bc39424ceb7d9f9ae44dc9a8d6acc05ea3f25e9687b47ce553f03709c8912",
    "request_repository_path": "artifacts/annotation/droid-evidence/attempt-2/gemini-request.json.gz",
    "request_metadata_repository_path": "artifacts/annotation/droid-evidence/attempt-2/gemini-request.json",
    "response_repository_path": "artifacts/annotation/droid-evidence/attempt-2/gemini-response.json",
    "original_actions_repository_path": "artifacts/annotation/droid-evidence/attempt-2/gemini-actions-original.json",
    "failed_attempts_retained": 1,
    "failed_attempt_reason": "Attempt 1 reached MAX_TOKENS and produced incomplete JSON; its request and raw response are retained.",
    "authorization_headers_saved": false
  },
  "provenance": {
    "source_video_object_generation": "1710758525732849",
    "raw_video_frame_count": 614,
    "raw_video_encoded_fps": 60,
    "raw_video_encoded_duration_s": 10.233333,
    "normalized_source_duration_s": 43.319,
    "camera_timestamp_count": 615,
    "clock_dataset": "observation/timestamp/cameras/27085680_frame_received",
    "normalization": "Raw frame i is assigned camera timestamp i minus the first timestamp; the last frame is held through the final timestamp.",
    "alignment_limitation": "The raw video has 614 frames and the H5 camera clock has 615 timestamps. Sequential alignment is provisional because the omitted image is not identified. Labels are synchronized to displayed video, not claimed as exact sensor alignment.",
    "timing_repository_path": "artifacts/annotation/droid-evidence/source-timing.json",
    "raw_source_sha256": "2f70cc6a8e5cefaf30df2bb85cdbcd470672dc04ce50878e5860515939299ab6",
    "object_verification_repository_path": "artifacts/annotation/droid-evidence/source-object-verification.json",
    "original_export_code": "https://github.com/droid-dataset/droid/blob/33ae6a67274f36d2e29525b86f23a56616ef43a7/droid/postprocessing/util/svo2mp4.py"
  },
  "quality_flags": [
    "AI model proposal and AI visual review only; no human ground truth or measured annotation accuracy",
    "Initial model timings required correction, including a missed drawer-opening phase",
    "The basket rim briefly occludes the object after release",
    "Source timing normalization has an unresolved one-frame camera-clock discrepancy",
    "The clip starts with the drawer already partly open and ends during gripper withdrawal"
  ],
  "source_sha256": "3af17488ebee82c40cfe0aa948842cc5a6134c33f80d015cf522310b2acdcb6d",
  "clip_sha256": "0305c960458f6b0cbcc486f6041fa2bf99a8b39f960318b1be41c954dffdad0a"
}
