transform op• Data kinds: depth → sdf
• Call: import fullseye as fs; fs.ledger.tsdf_from_depth(depth, fx, fy, cx, cy, size=64, bounds=None, trunc=3.0) (to call the implementation directly, import match3d; match3d.tsdf_from_depth(depth, fx, fy, cx, cy, size=64, bounds=None, trunc=3.0); from the registry, ops3d.get("tsdf_from_depth"))
Depth map (2.5-D) → a TSDF volume (the standard representation of RGB-D reconstruction). The depth → TSDF conversion.
Each voxel is projected into the image, and the signed truncated distance [-1,1] to the observed depth along the line of sight is stored (in front of the surface +, behind it −, on the surface 0). The basic representation of the KinectFusion family.
Grid: bounds=(lo, hi) are camera coordinates (X, Y, Z) (same as depth_to_points); None means min−2 / max+2 of the back-projected depth point cloud (in depth units). The output is (size,size,size) float32 with axis order (Z, Y, X), voxel centre = lo + (i + 0.5)/size·(hi − lo). Note that the bounds order (x,y,z) and the array axes (z,y,x) are reversed.
Values: each voxel centre is rounded to a pixel by u = X·fx/Z + cx, v = Y·fy/Z + cy, and from that pixel's observed depth d the value clip((d − Z)/trunc, −1, 1) is computed (trunc in the same unit as the depth). Voxels that fall outside the image, voxels whose observed depth is 0 or less, and voxels with Z of 0 or less are set to +1 (unobserved = free) (they are not clipped to the border pixel to pretend they were observed). Convention: depth 0 is the invalid value.
• If all depths are 0 and bounds=None, the point cloud is empty and numpy's min raises an exception.
• Being a 1-viewpoint TSDF, the far side along the line of sight is filled with −1 (it does not become a closed object).
Downstream: extract the surface with voxel_to_mesh(tsdf, iso=0.0). For occupancy, use sdf_to_occupancy.
• 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
sdf as input)sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract
transform)points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · signed_distance_field
*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.