{
  "catalog_id": 21,
  "title": "Child retrieves a rolling ball from the road center",
  "source_template": "cargo",
  "summary": "A ball rolls from the southern roadway edge toward the geometric road center. A child leaves the south sidewalk, walks across ego's held corridor, crouches to collect the ball, then carries it back to the sidewalk before ego resumes.",
  "focus_xy": [
    36,
    3.6
  ],
  "initial_review_time_s": 5,
  "ego_stop_x_m": 14,
  "ego_release_s": 19,
  "events": [
    {
      "time_s": -7,
      "label": "The ball is already rolling north from the roadway edge while the child waits on the south sidewalk."
    },
    {
      "time_s": -2,
      "label": "After ego has stopped, the child begins walking toward the rolling ball."
    },
    {
      "time_s": 0,
      "label": "The ball comes to rest near the geometric center of the road."
    },
    {
      "time_s": 5,
      "label": "The child crouches with hands ahead of the body beside the ball."
    },
    {
      "time_s": 7,
      "label": "The child completes the pickup and secures the ball in both hands."
    },
    {
      "time_s": 9,
      "label": "The child finishes turning south and starts carrying the ball back."
    },
    {
      "time_s": 16,
      "label": "The child and held ball have returned fully to the south sidewalk."
    },
    {
      "time_s": 19,
      "label": "Ego may resume after confirming that the child remains safely on the sidewalk."
    },
    {
      "time_s": 40,
      "label": "The child stands farther east on the sidewalk, still holding the same ball."
    }
  ],
  "actors": [
    {
      "id": "c021_child",
      "label": "Child retrieving the rolling ball",
      "kind": "child",
      "role": "Walks from the sidewalk to the road center, picks up the ball, and returns.",
      "color": "yellow",
      "length_m": 0.34,
      "width_m": 0.34,
      "height_m": 1.32,
      "keys": [
        {
          "t": -7,
          "x": 36,
          "y": -5.6,
          "z": 0,
          "heading_deg": 90,
          "pose": "stand"
        },
        {
          "t": -2,
          "x": 36,
          "y": -5.6,
          "z": 0,
          "heading_deg": 90,
          "pose": "walk"
        },
        {
          "t": 5,
          "x": 36,
          "y": 4.2,
          "z": 0,
          "heading_deg": 90,
          "pose": "crouch"
        },
        {
          "t": 7,
          "x": 36,
          "y": 4.2,
          "z": 0,
          "heading_deg": 90,
          "pose": "carry"
        },
        {
          "t": 9,
          "x": 36,
          "y": 4.2,
          "z": 0,
          "heading_deg": 270,
          "pose": "carry"
        },
        {
          "t": 16,
          "x": 36,
          "y": -5.6,
          "z": 0,
          "heading_deg": 270,
          "pose": "carry"
        },
        {
          "t": 18,
          "x": 36,
          "y": -5.6,
          "z": 0,
          "heading_deg": 360,
          "pose": "carry"
        },
        {
          "t": 28,
          "x": 49,
          "y": -5.6,
          "z": 0,
          "heading_deg": 360,
          "pose": "carry"
        },
        {
          "t": 30,
          "x": 50.4,
          "y": -5.6,
          "z": 0,
          "heading_deg": 360,
          "pose": "carry"
        },
        {
          "t": 40,
          "x": 50.4,
          "y": -5.6,
          "z": 0,
          "heading_deg": 360,
          "pose": "carry"
        }
      ],
      "attach_to": "",
      "attach_start_s": -7,
      "attach_end_s": 40,
      "attach_offset_xyz": [
        0,
        0,
        0
      ],
      "interaction": "Walks rather than runs across the stopped ego corridor. At 5 seconds, crouches facing north with the ball 0.4 m ahead. Lifts it through 7 seconds, turns in place, and returns south while retaining a two-hand grip. After returning, turns east on the sidewalk, walks farther along it, and stops."
    },
    {
      "id": "c021_ball",
      "label": "Rolling ball: retrieved and retained",
      "kind": "ball",
      "role": "Single rolling ball that stops at the road center and is carried back.",
      "color": "red",
      "length_m": 0.22,
      "width_m": 0.22,
      "height_m": 0.22,
      "keys": [
        {
          "t": -7,
          "x": 36,
          "y": -3.4,
          "z": 0,
          "heading_deg": 90,
          "pose": "stand"
        },
        {
          "t": -3,
          "x": 36,
          "y": 3.13,
          "z": 0,
          "heading_deg": 90,
          "pose": "stand"
        },
        {
          "t": 0,
          "x": 36,
          "y": 4.6,
          "z": 0,
          "heading_deg": 90,
          "pose": "stand"
        },
        {
          "t": 5,
          "x": 36,
          "y": 4.6,
          "z": 0,
          "heading_deg": 90,
          "pose": "stand"
        },
        {
          "t": 7,
          "x": 36,
          "y": 4.6,
          "z": 0.622275,
          "heading_deg": 90,
          "pose": "carry"
        },
        {
          "t": 9,
          "x": 36,
          "y": 3.8,
          "z": 0.617725,
          "heading_deg": 270,
          "pose": "carry"
        },
        {
          "t": 16,
          "x": 36,
          "y": -6,
          "z": 0.617725,
          "heading_deg": 270,
          "pose": "carry"
        },
        {
          "t": 18,
          "x": 36.4,
          "y": -5.6,
          "z": 0.625731,
          "heading_deg": 360,
          "pose": "carry"
        },
        {
          "t": 30,
          "x": 50.8,
          "y": -5.6,
          "z": 0.625731,
          "heading_deg": 360,
          "pose": "carry"
        },
        {
          "t": 40,
          "x": 50.8,
          "y": -5.6,
          "z": 0.625731,
          "heading_deg": 360,
          "pose": "carry"
        }
      ],
      "attach_to": "c021_child",
      "attach_start_s": 7,
      "attach_end_s": 40,
      "attach_offset_xyz": [
        0.4,
        0,
        0.62
      ],
      "interaction": "Rolls continuously north with decreasing speed until 0 seconds, then stays grounded until pickup begins at 5 seconds. It rises continuously to the child's hands by 7 seconds and thereafter follows the child's forward grip, including both stationary turns. No kick, duplication, or later release occurs."
    }
  ],
  "acceptance_checks": [
    "Require exactly one child and one ball, both present throughout all 941 playback samples.",
    "Check that the rolling ball remains inside the road polygon and stops near y=4.6, the approximate road midpoint at x=36, rather than teleporting to the pickup position.",
    "Require walking cruise speeds of 0.6 to 1.7 m/s, bounded acceleration, and complete stops for pickup and both stationary turns.",
    "Check forward hand contact during the crouched pickup, continuous lift from 5 to 7 seconds, and matching attachment position at 7 seconds within 1 mm.",
    "At 16 seconds, require the child and entire held ball to be inside the south sidewalk polygon; keep them there through 40 seconds.",
    "Keep ego at x=14 through the child's outward and return passages across y=0. Release at 19 seconds only after the complete ego swept corridor is clear.",
    "Human review must approve road-center placement, retained-photo obstacle clearance, ball contact, and the full timeline before image generation; these are unexecuted acceptance requirements."
  ],
  "assumptions": [
    "Image 3 and the cargo map establish broad roadway and sidewalk context. The child, ball, initial rolling momentum, coordinates, and timing are newly authored counterfactuals.",
    "At x=36, the supplied road extends approximately from y=-3.9 to y=13.1; y=4.6 therefore represents its geometric middle. The return destination y=-5.6 is on the mapped south sidewalk.",
    "The ball has already crossed the curb before -7 seconds. Its initial northward speed is approximately 2.29 m/s and decreases to zero over seven seconds, avoiding an invented curb-drop animation or kick.",
    "Playback is finite and non-looping from -7 through 40 seconds at 20 Hz, including both endpoints. Use bounded-speed trajectories, explicit stationary turns, and no interpolation overshoot.",
    "Human and rolling-ball support roots use z=0 on mapped ground. Held-ball support offsets include the supplied ground-plane slope; its attachment transform overrides its own keys from 7 through 40 seconds.",
    "Ego is implicit. It approaches along y=0 from x=13 at -7 seconds, brakes from 2 m/s to rest at x=14 by -6 seconds, and after release accelerates at no more than 0.75 m/s squared to at most 1.5 m/s.",
    "Static parked-vehicle footprints and curb details are not fully supplied and must be reviewed. Any later Image 2.5 generation must edit original Image 3 using this rehearsal only for actor positions and postures, after human approval."
  ]
}
