transform op• Data kinds: sdf → voxel
• Call: import fullseye as fs; fs.ledger.sdf_to_occupancy(sdf, iso=0.0) (to call the implementation directly, import match3d; match3d.sdf_to_occupancy(sdf, iso=0.0); from the registry, ops3d.get("sdf_to_occupancy"))
SDF → an occupancy voxel volume (at or below iso = inside = 1). The way back from an SDF to voxels.
An op that is nothing but (sdf <= iso).astype(float64). Under the signed_distance_field convention (inside <0), iso=0.0 gives inside=1, outside=0. The equality is included, so a voxel exactly at iso counts as inside. A positive iso gives occupancy dilated outward by iso voxels, a negative one gives shrunk occupancy (equivalent to isotropic dilation/erosion if the SDF is a true distance). It also works on the output of tsdf_from_depth (in front of the surface +, behind −, unobserved +1) with the same iso=0.0, but unobserved regions end up on the 0 side (outside). Any input shape is accepted; returns float64 of the same shape (0.0 / 1.0). NaN compares false and therefore becomes 0 (no warning).
★If you pass a label volume, the background becomes "inside". backends_typed.TYPE_TO_SORT folds sdf / labels / voxel into the same volume, so wiring the output of label_components or vol_label straight in raises no exception. Labels use 0 for background and 1 or more for foreground, so <= 0 is the background itself. Measured (2026-09-08, 24³ cube, true inside 1,728 voxels): passing the SDF gives 1,728, passing 0/1/2 labels of the same shape gives 9,504 (5.5x) —— the sign is inverted. To build occupancy from labels, write labels > 0 yourself instead of using iso.
• 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.
• transforms_repr — py -3.11 examples_3d/transforms_repr.py
voxel as input)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
transform)points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth
*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.