traffic op• Data kinds: any → scalar
• Call: import fullseye as fs; fs.ledger.occlusion_reveal_distance(ego_xy, ego_heading: 'float', parked_box, emerge_xy) -> 'float' (to call the implementation directly, import drivetraffic; drivetraffic.occlusion_reveal_distance(ego_xy, ego_heading: 'float', parked_box, emerge_xy) -> 'float'; from the registry, opsdrive.get("occlusion_reveal_distance"))
Longitudinal distance at which a point emerge_xy hidden behind a car parked at the roadside (an oriented box) becomes visible for the first time from the ego vehicle's eye.
The ego vehicle's eye moves along p(s) = ego_xy + s h (h = (cos ψ, sin ψ), s ≥ 0 = forward travel). It sees e if the line of sight = the segment p(s) → e does not pass through the interior of the box. Since the box is convex, the "not visible s" form an interval, whose ends are where the line of sight grazes a corner of the box or where the path crosses an edge of the box. For each corner c, the intersection s_c of the line e + λ(c − e) with the path is solved as a 2×2 system (closed form); the candidates {0, s_c, intersections of the path with the edges} are checked for visibility in increasing order, and at the first visible s*, d = h · (e − p(s*)) is returned.
Axis-parallel example (path y = 0, heading +x, shadowing corner c, e beyond the box): d = (e_x − c_x) · e_y / (e_y − c_y).
parked_box = (cx, cy, length, width, yaw) (centre, overall length, overall width, heading). If visible from the start, the longitudinal distance at s* = 0; if never visible however far one travels (e inside the box), inf. A negative d (e already passed by the time it becomes visible) is returned as is. A line of sight grazing a corner counts as "visible" (the box is shrunk by just 1e-9 relative before testing so that floating-point jitter does not split the decision).
Raises ValueError: shape, non-finite, dimension ≤ 0.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_driving_traffic — py -3.11 examples/poc_driving_traffic.py
scalar as input)spin_from_marker_sequence · carla_transform_matrix · carla_pose_to_world · carla_camera_pose · carla_xy_yaw · carla_scene_load · town_chain · osm_parse
traffic)idm_accel · idm_equilibrium_gap · idm_platoon_simulate · driver_style · lateral_wobble · ou_estimate · social_force_step · pedestrian_crossing
*Provenance: drivetraffic.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.