scene_flow3d op• Data kinds: points × points → flow_scattered
• Call: import fullseye as fs; fs.ledger.smooth_flow(pts0, pts1, k: 'int' = 10, n_iter: 'int' = 5) -> 'np.ndarray' (to call the implementation directly, import scene_flow3d; scene_flow3d.smooth_flow(pts0, pts1, k: 'int' = 10, n_iter: 'int' = 5) -> 'np.ndarray'; from the registry, ops3d.get("smooth_flow"))
Return a regularised flow (N, 3): the nearest-neighbour flow locally smoothed by neighbourhood averaging.
Iteratively averages the raw flow of nearest_neighbor_flow (noisy because it comes from nearest-neighbour correspondence) over the k-nearest-neighbour topology in pts0 space (including the point itself, built only 1 time). It suppresses zero-mean noise while largely preserving smooth displacement fields (Jacobi iteration = Laplacian smoothing of the flow field). Linear fields are unbiased with symmetric neighbourhoods; fields with curvature shrink slightly (an honest smoothing bias).
Args:
pts0: (N, 3) point cloud at time 0.
pts1: (M, 3) point cloud at time 1.
k: number of neighbours used for averaging (including itself).
n_iter: number of smoothing iterations.
Returns:
(N, 3) smoothed displacement vector field.
Raises:
ValueError: invalid shape, or pts1 empty while pts0 is non-empty.
• 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.
• scene_flow_rigid — py -3.11 examples_3d/scene_flow_rigid.py
flow_scattered as input)scene_flow3d)nearest_neighbor_flow · rigid_flow
*Provenance: scene_flow3d.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.