augment op• Data kinds: points → points
• Call: import fullseye as fs; fs.ledger.elastic_deform(points, sigma: 'float', alpha: 'float', seed: 'int' = 0) -> 'np.ndarray' (to call the implementation directly, import pcl_augment; pcl_augment.elastic_deform(points, sigma: 'float', alpha: 'float', seed: 'int' = 0) -> 'np.ndarray'; from the registry, ops3d.get("elastic_deform"))
Elastic deformation by a smooth random displacement field (correlation length sigma, RMS amplitude alpha).
Places an independent Gaussian random vector at each point and smooths it with spatial Gaussian weights exp(-d²/2σ²) to generate a displacement field (nearby points move coherently). The field is normalised to RMS 1 and then multiplied by alpha, so the RMS norm of the displacement is exactly alpha (as σ→∞ the field becomes a constant = rigid translation; as σ→0 each point is independent). For non-rigid object deformation / training on flexible objects.
Caution (honest): the neighbour search is cKDTree.query_pairs(r=3σ). The closer σ is to the diameter of the cloud, the closer the number of pairs gets to O(N²), so for large clouds keep σ at a local scale.
sigma < 0 raises ValueError. With sigma == 0 or a cloud of only 1 point no smoothing is done and each point gets an independent displacement. alpha is not validated (0 means no displacement; a negative value just flips the field). Deterministic with seed. The return value is float64 (N,3) with point count and order preserved (correspondence before and after deformation is known by index, so the error of non-rigid registration can be measured directly). Empty input returns 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.
• sensor_seg — py -3.11 examples_3d/sensor_seg.py
points as input)points_to_voxel · gaussians_to_voxel · estimate_point_normals · to_points · match_points_ncc · match_pca · moment_axes · icp_point2point_3d
augment)jitter · random_rotation · random_scale · random_dropout · cutout
*Provenance: pcl_augment.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.