bounds op• Data kinds: points → primitive
• Call: import fullseye as fs; fs.ledger.obb(points) -> 'dict' (to call the implementation directly, import pcseg; pcseg.obb(points) -> 'dict'; from the registry, ops3d.get("obb"))
Oriented bounding box by PCA.
Returns {center, axes (3,3 columns = box axes), extents (3, half-widths), corners (8,3)}. The tight-fitting box a manipulator uses to reason about an object's size and grasp width once it has been segmented out.
Procedure: from the SVD (full_matrices=False) of the point cloud with the centroid c subtracted, take the principal axes axes (columns = descending singular values, the 1st column is the direction of greatest spread), map the points into principal-axis coordinates, and from the min/max on each axis obtain the half-widths extents and the box center center (in general different from the centroid). corners are the 8 points center + (±extents) @ axes.T, with sign combinations in the order of meshgrid([-1,1],[-1,1],[-1,1]).
• points: anything other than (N,3) raises ValueError, and fewer than 2 points also give ValueError.
• PCA principal axes do not guarantee the "minimum-volume box" (they only follow the point distribution). The signs of the principal axes are decided by the arbitrariness of the SVD, and when the point distribution is nearly isotropic (singular values degenerate), the axis directions become unstable.
• extents are half-widths, so the edge lengths are 2 * extents. The unit is the coordinate unit.
• blender_interop — Using Blender alongside — build the shape, measure it with fullseye (pitfalls: axes, units, ground truth)
• 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.
• hull_bounds — py -3.11 examples_3d/hull_bounds.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
bounds)convex_hull · aabb · min_enclosing_sphere
*Provenance: pcseg.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.