geodesic op• Data kinds: points → signal
• Call: import fullseye as fs; fs.ledger.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray (to call the implementation directly, import geodesic3d; geodesic3d.geodesic_distances(points: numpy.ndarray, source: int, k: int = 8) -> numpy.ndarray; from the registry, ops3d.get("geodesic_distances"))
Geodesic distances from a source to every point (Dijkstra on the kNN graph). → (N,) float (inf where unreachable).
Makes the k-nearest-neighbour graph built by knn_graph(points, k) (edge weight = Euclidean distance between points = chord length) undirected with directed=False, and solves single-source shortest paths with scipy.sparse.csgraph.dijkstra. d[i] is the path length on the graph from source to point i with d[source] = 0; points in connected components not connected to source are inf. Units are the coordinate units as-is.
• points: (N,3) point cloud (converted to float64).
• source: index of the start point (an integer in 0..N-1; out of range raises on the scipy side).
• k: number of neighbours (default 8). Too small splits the graph and increases inf; too large creates "shortcuts" that directly link distant surfaces, giving distances that do not follow the surface (both sides of a thin plate, folded-back surfaces, etc.).
Accuracy: edges are chord lengths, so arcs are slightly underestimated, while zigzag paths cause overestimation (see the bounding estimate by Bernstein et al. in the module docstring). If you have a triangle mesh, use geodesic_mesh, which does not depend on the number of neighbours. To subsample evenly by this distance, use farthest_point_sampling.
• 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.
• geodesic_distance — py -3.11 examples_3d/geodesic_distance.py
signal as input)geodesic)geodesic_mesh · farthest_point_sampling · knn_graph
*Provenance: geodesic3d.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.