puck_wall_bounce — DRIVE puck op

• Data kinds: signal × signal × scalar × scalar → table

• Call: import fullseye as fs; fs.ledger.puck_wall_bounce(v, normal, e: 'float', kt: 'float' = 1.0) -> 'dict' (to call the implementation directly, import puck; puck.puck_wall_bounce(v, normal, e: 'float', kt: 'float' = 1.0) -> 'dict'; from the registry, opsdrive.get("puck_wall_bounce"))

Usage

Collision with a wall: normal component vₙ' = −e vₙ, tangential component vₜ' = kₜ vₜ (e = normal coefficient of restitution, kₜ = tangential retention ratio = tangential coefficient of restitution).

No rotation is carried (the spin introduced by wall friction is folded into the tangential loss. Cross 2022 writes the tangential coefficient of restitution for disc collisions as "sliding or gripping" —— those 2 regimes are not included). Returns {"v", "vn_in", "vn_out", "vt_in", "vt_out", "energy_ratio"}. For a normal-only collision, energy_ratio = e² (gate). If v·n ≥ 0 (moving away), nothing is done.

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• poc_air_hockey_intercept — py -3.11 examples/poc_air_hockey_intercept.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (puck)

puck_table · puck_slide_predict · puck_state_at · puck_crossing_point · puck_mirror_path · puck_stop_distance · puck_camera · puck_pinhole_camera


*Provenance: puck.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.