geodesic op• Data kinds: mesh → signal
• Call: import fullseye as fs; fs.ledger.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray (to call the implementation directly, import geodesic3d; geodesic3d.geodesic_mesh(vertices: numpy.ndarray, faces: numpy.ndarray, source: int) -> numpy.ndarray; from the registry, ops3d.get("geodesic_mesh"))
Geodesic distance from a source to each vertex by Dijkstra on the triangle mesh's edge graph. → (V,) float.
Collects the 3 edges (0,1),(1,2),(2,0) of each triangle as undirected edges, makes them unique by (min,max), builds a sparse graph weighted by edge length = Euclidean distance between the two end vertices, and returns the shortest path lengths from source with dijkstra(directed=False). d[source] = 0; vertices not connected to source by edges are inf. Units are the units of the vertex coordinates.
• vertices: (V,3) vertex coordinates (converted to float64). faces: (M,3) vertex indices (converted to int).
• source: index of the start vertex.
• When faces is empty, returns inf for all vertices (0 only at source if it is in range), without raising an exception.
Implementation notes: csr_matrix silently adds the weights when the same (i,j) is passed more than once, so the edges are made unique so that distances do not inflate for meshes with duplicate faces, non-manifold parts or inconsistent winding order. Degenerate edges (i==j) are discarded. The distance is a polyline length along edges, so on a coarse mesh it is longer than the true geodesic distance (anisotropy that depends on how the edges run). The (verts, faces) returned by voxel_to_mesh or convex_hull can be passed as-is.
• 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.
• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py
signal as input)geodesic)geodesic_distances · 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.