reflect_points — 3D symmetry op

• Data kinds: points → points

• Call: import fullseye as fs; fs.ledger.reflect_points(points, plane_point, plane_normal) (to call the implementation directly, import symmetry3d; symmetry3d.reflect_points(points, plane_point, plane_normal); from the registry, ops3d.get("reflect_points"))

Usage

Mirror a point set in a plane (point plane_point, normal plane_normal). → (N,3).

For each point p, takes the signed distance from the plane d = (p - plane_point) · n (n is the normalised normal) and returns p' = p - 2 d n (Householder reflection). Points on the plane do not move; points on the two sides of the plane swap. The point order is preserved, so p'[i] is the mirror image of p[i]. Coordinate units are unchanged.

• points: (N,3) array (converted to float). The shape is not validated.

• plane_point: 1 point on the plane (3,). plane_normal: normal (3,) (any length, normalised internally. The sign does not affect the result).

Note: the normal is divided by its norm plus 1e-12, so passing a zero vector raises no exception and the point cloud is returned almost unchanged (not fail-closed). Besides being used inside reflection_symmetry_score / detect_reflection_symmetry, it can be used for shape completion that fills the missing side with a detected symmetry plane (concatenating the mirror image to the original point cloud).

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.

Runnable examples (verified samples that actually call this op)

• reflection_symmetry — py -3.11 examples_3d/reflection_symmetry.py

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

points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d

Same category (symmetry)

detect_reflection_symmetry · detect_rotational_symmetry · reflection_symmetry_score


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