{
  "schema_version": 1,
  "generator": "tools/export_driving_gifs.py",
  "generator_sha256": "354b7ddd524e63ab5401e357fe2c969b7bf97dd40086766a3c0e603c22097c8c",
  "font_sha256": "b76b0433203017ca80401b2ee0dd69350349871c4b19d504c34dbdd80541690a",
  "bold_font_sha256": "faa5f3656a78b2e2d450d27fe8382c778bc2b6bb5ea29c986664a6a435056ceb",
  "gifsicle_version": "LCDF Gifsicle 1.94",
  "pillow_version": "12.0.0",
  "ffmpeg_version": "ffmpeg version 6.1.1-3ubuntu5 Copyright (c) 2000-2023 the FFmpeg developers",
  "notes": [
    "Selected excerpts, not independent trials or a success-rate estimate.",
    "Recorded sample timing at 1x simulation time; not inference throughput.",
    "No smoothing, interpolation, or edits to controls; history-only plots.",
    "Synthetic BEV shows ground-truth obstacles and detector/tracker boxes separately.",
    "End notice adds 1.2 seconds; the final source sample retains its normal duration."
  ],
  "clips": [
    {
      "name": "carla_lead_braking",
      "title": "前车急刹 · 从跟车到停车",
      "file": "carla_lead_braking.gif",
      "poster": "carla_lead_braking.jpg",
      "sha256": "2ab8ac7d315b4241c117d01fd6df4158722d42ac5cda8e86cf07171e3a3ad886",
      "bytes": 10099766,
      "size_px": [
        1000,
        600
      ],
      "source": "docs/assets/driving/carla_lead_braking.json",
      "source_sha256": "58b3387b3a51e1becf3af57b7f1c1c9875120e393d9cbc6b70716ad827038b35",
      "source_kind": "carla",
      "detector": "lidar",
      "clip_start_s": 4.000000059604645,
      "clip_end_s": 11.000000163912773,
      "recorded_fps": 10,
      "playback_rate": 1,
      "interpolation": "none",
      "source_frame_indices": [
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        59,
        60,
        61,
        62,
        63,
        64,
        65,
        66,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79,
        80,
        81,
        82,
        83,
        84,
        85,
        86,
        87,
        88,
        89,
        90,
        91,
        92,
        93,
        94,
        95,
        96,
        97,
        98,
        99,
        100,
        101,
        102,
        103,
        104,
        105,
        106,
        107,
        108,
        109
      ],
      "gifsicle_lossy": 40,
      "source_times_s": [
        4.000000059604645,
        4.100000061094761,
        4.200000062584877,
        4.300000064074993,
        4.400000065565109,
        4.500000067055225,
        4.6000000685453415,
        4.700000070035458,
        4.800000071525574,
        4.90000007301569,
        5.000000074505806,
        5.100000075995922,
        5.200000077486038,
        5.300000078976154,
        5.4000000804662704,
        5.500000081956387,
        5.600000083446503,
        5.700000084936619,
        5.800000086426735,
        5.900000087916851,
        6.000000089406967,
        6.100000090897083,
        6.200000092387199,
        6.3000000938773155,
        6.400000095367432,
        6.500000096857548,
        6.600000098347664,
        6.70000009983778,
        6.800000101327896,
        6.900000102818012,
        7.000000104308128,
        7.1000001057982445,
        7.200000107288361,
        7.300000108778477,
        7.400000110268593,
        7.500000111758709,
        7.600000113248825,
        7.700000114738941,
        7.800000116229057,
        7.900000117719173,
        8.00000011920929,
        8.100000120699406,
        8.200000122189522,
        8.300000123679638,
        8.400000125169754,
        8.50000012665987,
        8.600000128149986,
        8.700000129640102,
        8.800000131130219,
        8.900000132620335,
        9.00000013411045,
        9.100000135600567,
        9.200000137090683,
        9.300000138580799,
        9.400000140070915,
        9.500000141561031,
        9.600000143051147,
        9.700000144541264,
        9.80000014603138,
        9.900000147521496,
        10.000000149011612,
        10.100000150501728,
        10.200000151991844,
        10.30000015348196,
        10.400000154972076,
        10.500000156462193,
        10.600000157952309,
        10.700000159442425,
        10.800000160932541,
        10.900000162422657,
        11.000000163912773
      ],
      "frame_durations_ms": [
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        100,
        1200
      ],
      "loop_notice_ms": 1200,
      "duration_s": 8.3,
      "metrics_scope": "full_source_run",
      "metrics": {
        "goal_reached": false,
        "collision_events": 0,
        "lane_invasion_events": 0,
        "max_lateral_offset_m": 0.055860022529964394,
        "final_speed_mps": 3.026095566820905e-08,
        "elapsed_simulation_s": 13.700000204145908,
        "distance_along_route_m": 26.535240999591032,
        "stationary_duration_s": 3.0000000000000013,
        "min_separating_axis_gap_m": 0.6930811461446973,
        "longitudinal": {
          "control_samples": 137,
          "pedal_reversals": 3,
          "cruise_pedal_reversals": 0,
          "unexpected_cruise_stops": 0,
          "restarts_after_stop": 0,
          "normal_acceleration_limit_violations": 0,
          "cruise_speed_rmse_mps": null,
          "max_speed_mps": 5.08756349534867
        },
        "control_acceptance": true,
        "planning_control_ms": {
          "mean": 8.047409116011792,
          "p95": 11.186599172651768
        },
        "success": true,
        "lead_max_speed_mps": 3.3727303649588465
      },
      "source_video": "docs/assets/driving_carla_lead_braking.mp4",
      "source_video_sha256": "823d29f65ba00eeef52e5a35e38c209cb9849c05e9344d8871a0be9692e5476e"
    },
    {
      "name": "cut_in",
      "title": "邻道切入 · 减速跟车",
      "file": "cut_in.gif",
      "poster": "cut_in.jpg",
      "sha256": "4f7d0e63b3dfbc057136412caca08457247906f652d3bafdf4a86d19e8d179a2",
      "bytes": 466591,
      "size_px": [
        1000,
        600
      ],
      "source": "docs/assets/driving/lidar/cut_in.json",
      "source_sha256": "18595f4eaf3e53b81d02c1f27babcba86b2d1db5dd24f45121bec6bb7a920ec6",
      "source_kind": "synthetic",
      "detector": "lidar",
      "clip_start_s": 2.0,
      "clip_end_s": 10.0,
      "recorded_fps": 5,
      "playback_rate": 1,
      "interpolation": "none",
      "source_frame_indices": [
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50
      ],
      "gifsicle_lossy": 0,
      "source_times_s": [
        2.0,
        2.2,
        2.4,
        2.6,
        2.8,
        3.0,
        3.2,
        3.4,
        3.6,
        3.8,
        4.0,
        4.2,
        4.4,
        4.6,
        4.8,
        5.0,
        5.2,
        5.4,
        5.6,
        5.8,
        6.0,
        6.2,
        6.4,
        6.6,
        6.8,
        7.0,
        7.2,
        7.4,
        7.6,
        7.8,
        8.0,
        8.2,
        8.4,
        8.6,
        8.8,
        9.0,
        9.2,
        9.4,
        9.6,
        9.8,
        10.0
      ],
      "frame_durations_ms": [
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        1200
      ],
      "loop_notice_ms": 1200,
      "duration_s": 9.4,
      "metrics_scope": "full_source_run",
      "metrics": {
        "success": true,
        "goal_reached": true,
        "expected_outcome": "goal",
        "behavior_demonstrated": true,
        "collision_samples": 0,
        "road_boundary_samples": 0,
        "red_light_violation_samples": 0,
        "min_separating_axis_gap_m": 3.665937622464803,
        "max_lateral_offset_m": 0.0,
        "final_speed_mps": 0.17853207446103864,
        "goal_distance_m": 0.6342350687693994,
        "elapsed_simulation_s": 21.699999999999626,
        "statuses": [
          "cruise",
          "following",
          "goal_approach",
          "goal_reached",
          "yielding"
        ],
        "max_abs_acceleration_mps2": 3.0,
        "planning_control_ms": {
          "mean": 9.101618199348621,
          "p95": 10.56703690555878,
          "max": 10.86442603264004
        }
      }
    },
    {
      "name": "obstacle",
      "title": "静态绕障 · 规划与实际轨迹",
      "file": "obstacle.gif",
      "poster": "obstacle.jpg",
      "sha256": "6ebbd162baa36f0605b64282c664e9c952c07fa2968cbeab373ef888d1a71350",
      "bytes": 430967,
      "size_px": [
        1000,
        600
      ],
      "source": "docs/assets/driving/lidar/obstacle.json",
      "source_sha256": "cd29ec0287613a3c170de32a2c82529f5ba3d3274c83f2b53e5757fa600b9e24",
      "source_kind": "synthetic",
      "detector": "lidar",
      "clip_start_s": 2.0,
      "clip_end_s": 9.0,
      "recorded_fps": 5,
      "playback_rate": 1,
      "interpolation": "none",
      "source_frame_indices": [
        10,
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45
      ],
      "gifsicle_lossy": 0,
      "source_times_s": [
        2.0,
        2.2,
        2.4,
        2.6,
        2.8,
        3.0,
        3.2,
        3.4,
        3.6,
        3.8,
        4.0,
        4.2,
        4.4,
        4.6,
        4.8,
        5.0,
        5.2,
        5.4,
        5.6,
        5.8,
        6.0,
        6.2,
        6.4,
        6.6,
        6.8,
        7.0,
        7.2,
        7.4,
        7.6,
        7.8,
        8.0,
        8.2,
        8.4,
        8.6,
        8.8,
        9.0
      ],
      "frame_durations_ms": [
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        1200
      ],
      "loop_notice_ms": 1200,
      "duration_s": 8.4,
      "metrics_scope": "full_source_run",
      "metrics": {
        "success": true,
        "goal_reached": true,
        "expected_outcome": "goal",
        "behavior_demonstrated": true,
        "collision_samples": 0,
        "road_boundary_samples": 0,
        "red_light_violation_samples": 0,
        "min_separating_axis_gap_m": 1.1389194030569338,
        "max_lateral_offset_m": 3.092106858723044,
        "final_speed_mps": 0.1839738974269275,
        "goal_distance_m": 0.6715818138357591,
        "elapsed_simulation_s": 14.699999999999775,
        "statuses": [
          "avoidance",
          "cruise",
          "goal_approach",
          "goal_reached",
          "yielding"
        ],
        "max_abs_acceleration_mps2": 3.0,
        "planning_control_ms": {
          "mean": 8.889667062888023,
          "p95": 9.049078909447417,
          "max": 28.096562949940562
        }
      }
    },
    {
      "name": "signal_crossing",
      "title": "绿灯之后 · 继续礼让行人",
      "file": "signal_crossing.gif",
      "poster": "signal_crossing.jpg",
      "sha256": "36da715f3f7991bc73d80c74522f1656c68d5036ab0d8c2f2127164818a03679",
      "bytes": 580590,
      "size_px": [
        1000,
        600
      ],
      "source": "docs/assets/driving/lidar/signal_crossing.json",
      "source_sha256": "7312eb38f85b4a57973347f6d55b110ea46c5efd6c2009b6b965411ab0c4ced8",
      "source_kind": "synthetic",
      "detector": "lidar",
      "clip_start_s": 8.0,
      "clip_end_s": 19.0,
      "recorded_fps": 5,
      "playback_rate": 1,
      "interpolation": "none",
      "source_frame_indices": [
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50,
        51,
        52,
        53,
        54,
        55,
        56,
        57,
        58,
        59,
        60,
        61,
        62,
        63,
        64,
        65,
        66,
        67,
        68,
        69,
        70,
        71,
        72,
        73,
        74,
        75,
        76,
        77,
        78,
        79,
        80,
        81,
        82,
        83,
        84,
        85,
        86,
        87,
        88,
        89,
        90,
        91,
        92,
        93,
        94,
        95
      ],
      "gifsicle_lossy": 0,
      "source_times_s": [
        8.0,
        8.2,
        8.4,
        8.6,
        8.8,
        9.0,
        9.2,
        9.4,
        9.6,
        9.8,
        10.0,
        10.2,
        10.4,
        10.6,
        10.8,
        11.0,
        11.2,
        11.4,
        11.6,
        11.8,
        12.0,
        12.2,
        12.4,
        12.6,
        12.8,
        13.0,
        13.2,
        13.4,
        13.6,
        13.8,
        14.0,
        14.2,
        14.4,
        14.6,
        14.8,
        15.0,
        15.2,
        15.4,
        15.6,
        15.8,
        16.0,
        16.2,
        16.4,
        16.6,
        16.8,
        17.0,
        17.2,
        17.4,
        17.6,
        17.8,
        18.0,
        18.2,
        18.4,
        18.6,
        18.8,
        19.0
      ],
      "frame_durations_ms": [
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        1200
      ],
      "loop_notice_ms": 1200,
      "duration_s": 12.4,
      "metrics_scope": "full_source_run",
      "metrics": {
        "success": true,
        "goal_reached": true,
        "expected_outcome": "goal",
        "behavior_demonstrated": true,
        "collision_samples": 0,
        "road_boundary_samples": 0,
        "red_light_violation_samples": 0,
        "min_separating_axis_gap_m": 0.8006887390229679,
        "max_lateral_offset_m": 0.0,
        "final_speed_mps": 0.19330493880920127,
        "goal_distance_m": 0.6423375975255254,
        "elapsed_simulation_s": 25.69999999999954,
        "statuses": [
          "cruise",
          "goal_approach",
          "goal_reached",
          "stop_line",
          "yielding"
        ],
        "max_abs_acceleration_mps2": 3.0,
        "planning_control_ms": {
          "mean": 11.29300025825988,
          "p95": 13.298006914556026,
          "max": 15.529802069067955
        }
      }
    },
    {
      "name": "dropout",
      "title": "感知超时 · 制动与恢复",
      "file": "dropout.gif",
      "poster": "dropout.jpg",
      "sha256": "42ef0f4c04abe6831fc439a7541d3c047068fdeeb0607c49aada61d7ed98669a",
      "bytes": 238797,
      "size_px": [
        1000,
        600
      ],
      "source": "docs/assets/driving/lidar/dropout.json",
      "source_sha256": "f6a87454eb433068ab9025d09e5ed1bffd18de77ffe5f5539fcd4d3b7e96ecad",
      "source_kind": "synthetic",
      "detector": "lidar",
      "clip_start_s": 3.0,
      "clip_end_s": 10.0,
      "recorded_fps": 5,
      "playback_rate": 1,
      "interpolation": "none",
      "source_frame_indices": [
        15,
        16,
        17,
        18,
        19,
        20,
        21,
        22,
        23,
        24,
        25,
        26,
        27,
        28,
        29,
        30,
        31,
        32,
        33,
        34,
        35,
        36,
        37,
        38,
        39,
        40,
        41,
        42,
        43,
        44,
        45,
        46,
        47,
        48,
        49,
        50
      ],
      "gifsicle_lossy": 0,
      "source_times_s": [
        3.0,
        3.2,
        3.4,
        3.6,
        3.8,
        4.0,
        4.2,
        4.4,
        4.6,
        4.8,
        5.0,
        5.2,
        5.4,
        5.6,
        5.8,
        6.0,
        6.2,
        6.4,
        6.6,
        6.8,
        7.0,
        7.2,
        7.4,
        7.6,
        7.8,
        8.0,
        8.2,
        8.4,
        8.6,
        8.8,
        9.0,
        9.2,
        9.4,
        9.6,
        9.8,
        10.0
      ],
      "frame_durations_ms": [
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        200,
        1200
      ],
      "loop_notice_ms": 1200,
      "duration_s": 8.4,
      "metrics_scope": "full_source_run",
      "metrics": {
        "success": true,
        "goal_reached": true,
        "expected_outcome": "goal",
        "behavior_demonstrated": true,
        "collision_samples": 0,
        "road_boundary_samples": 0,
        "red_light_violation_samples": 0,
        "min_separating_axis_gap_m": null,
        "max_lateral_offset_m": 0.0,
        "final_speed_mps": 0.17946560135154452,
        "goal_distance_m": 0.6315801637302627,
        "elapsed_simulation_s": 20.699999999999648,
        "statuses": [
          "cruise",
          "goal_approach",
          "goal_reached",
          "stale_input"
        ],
        "max_abs_acceleration_mps2": 7.0,
        "planning_control_ms": {
          "mean": 5.18778053251131,
          "p95": 6.541297526564449,
          "max": 10.531275998800993
        }
      }
    }
  ]
}
