geometry op• Data kinds: points → primitive
• Call: import fullseye as fs; fs.ledger.fit_circle_3d(points) (to call the implementation directly, import match3d; match3d.fit_circle_3d(points); from the registry, ops3d.get("fit_circle_3d"))
Point set → a 3-D circle (fit the plane, then fit a 2-D circle within it). Returns (center, radius, normal).
Gets the plane (c, n) with fit_plane_3d, projects the points onto an orthonormal in-plane basis (e1, e2), solves a 2-D algebraic circle fit (lstsq of |q|² = 2·cc·q + k) and maps the centre back to 3-D. For (N,3), fewer than 3 points raise ValueError (with 3 points the plane is exact and the circle passes through the 3 points). center is a 3-D point on the plane, radius a float (a negative root is clamped to 0), normal the plane's unit normal (arbitrary sign). If only part of the arc is present or many points are off the plane, the radius is biased (a property of algebraic fits; the in-plane residual is not returned).
Uses: centre and diameter of holes, flanges and rings; eccentricity from an axis with distance_point_line.
• 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.
• geometry_metrology — py -3.11 examples_3d/geometry_metrology.py
primitive as input)fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment
geometry)line_from_2points · plane_from_3points · angle_3points · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line
*Provenance: match3d.py — 3D 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.