diabolo op• Data kinds: signal × table → table
• Call: import fullseye as fs; fs.ledger.spheroid_closest(x, sph: 'dict') -> 'dict' (to call the implementation directly, import diabolo; diabolo.spheroid_closest(x, sph: 'dict') -> 'dict'; from the registry, opsdrive.get("spheroid_closest"))
Point x → closest point on the spheroid surface point, signed distance s (> 0 inside, the paper's definition of s) and outward unit normal normal (direction of the gradient at the closest point).
The closest point uses Eberly's bisection on the ellipse in the meridian plane. ★The public implementation shrinks radially from the centre and returns that point (not the closest point; for a point 5 mm outside the ellipsoid it differs by up to 2.2 mm), and approximates the normal by (x/b, y/a, z/b) (the gradient would use squares; off the axes it deviates by up to 12.2°). Here it is written as in the paper's text, "move to the closest point", with the true normal. Raises ValueError: x is not a finite 3-vector, sph is not an ellipsoid dict.
• 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_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
diabolo)diabolo_params · diabolo_spheroid · diabolo_dynamics_step · diabolo_simulate · diabolo_state_sequence · diabolo_throw_catch_truth · string_tension_static · string_tension_from_sag
*Provenance: diabolo.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.