puck op• Data kinds: none → table (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.puck_table(*, x_half: 'float' = 0.974, y_half: 'float' = 0.519, puck_radius: 'float' = 0.03165, mass: 'float' = 0.01, mu: 'float' = 0.02, e: 'float' = 0.8, kt: 'float' = 1.0, g: 'float' = 9.81, goal_half: 'float' = 0.125, damping: 'float' = 0.005) -> 'dict' (to call the implementation directly, import puck; puck.puck_table(*, x_half: 'float' = 0.974, y_half: 'float' = 0.519, puck_radius: 'float' = 0.03165, mass: 'float' = 0.01, mu: 'float' = 0.02, e: 'float' = 0.8, kt: 'float' = 1.0, g: 'float' = 9.81, goal_half: 'float' = 0.125, damping: 'float' = 0.005) -> 'dict'; from the registry, opsdrive.get("puck_table"))
• GPU: none (CPU reference implementation only)
Numbers for the table and the puck (defaults are values read from table.xml of the Robot Air Hockey Challenge, MIT, arXiv 2411.05718).
Inner faces of the walls: the end rim has centre |x| = 1.019 and half-thickness 0.045 → x_half = 0.974; the side rim has |y| = 0.564 and half-thickness 0.045 → y_half = 0.519. The end rim is open for |y| < 0.125 (the goal, goal_half). Puck: cylinder of radius 0.03165, mass 0.01 kg. mu (Coulomb) and e/kt (wall restitution coefficients, normal and tangential) are absent from the MJCF (deceleration is viscous damping, walls are soft contacts), so the defaults here are assumptions. The return value is a dict (table sort).
• 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.
• gallery_drive_ballistics — py -3.11 examples/gallery_drive_ballistics.py
• poc_air_hockey_intercept — py -3.11 examples/poc_air_hockey_intercept.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
puck)puck_wall_bounce · 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.