feature op• Data kinds: voxel → sdf
• Call: import fullseye as fs; fs.ledger.edt_jfa(seed_bool, device='cpu') (to call the implementation directly, import match3d; match3d.edt_jfa(seed_bool, device='cpu'); from the registry, ops3d.get("edt_jfa"))
• Return value through the ledger: fullseye.ledger.edt_jfa(...) returns only the declared out type sdf (the underlying function also returns auxiliary values). When you need what was dropped, use fullseye.ledger.edt_jfa.raw(...) or call match3d.edt_jfa directly.
• GPU: this op has a GPU path (device="cuda")
3-D Euclidean distance transform via the Jump Flooding Algorithm (GPU). Each voxel → the distance to its nearest seed.
Measured to match scipy EDT exactly (max|err|=0, N≤160, JFA+2). scipy (C implementation) is faster for small N, but GPU-JFA overtakes it at N≥96 (measured on RTX5090: 96→2.6× / 128→4.7×). Running all voxels in parallel, it can stay resident on the GPU; the point is to make chamfer an all-GPU pipeline without CPU round trips. The final step=1 is done as 2 passes (JFA+2), which also removes the approximation error for large N. Returns the distance field (D,H,W) as a torch tensor.
Argument seed_bool is a (D,H,W) bool (True=seed, distance 0). Returns a torch float32 tensor (D,H,W) (on device, not numpy; via the ledger fs.ledger.edt_jfa it is converted to numpy). Distances are Euclidean distances between voxel centres (in voxel units). If there is not even 1 seed, every voxel saturates at 1e6 (no exception). It jumps in 26 directions × log2(max(D,H,W)) stages, so memory is a few (3,D,H,W) float32 arrays.
Uses: signed_distance_field (both sides), match_chamfer_3d(edt="jfa"). The CPU version gives the same values as scipy.ndimage.distance_transform_edt(~seed).
• 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.
• diff_features — py -3.11 examples_3d/diff_features.py
sdf as input)sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract
feature)sobel3d · hessian3d · curvature_maps · edt_jfa_vector · vol_frangi · vol_local_std · vol_local_thickness · vol_orientation_coherence
*Provenance: match3d.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.