tsdf_fusion op• Data kinds: sdf × depth → sdf
• Call: import fullseye as fs; fs.ledger.integrate(tsdf: 'np.ndarray', weight: 'np.ndarray', depth: 'np.ndarray', K, R, t, trunc: 'float', bounds: 'Optional[Bounds]' = None) -> 'None' (to call the implementation directly, import tsdf_fusion; tsdf_fusion.integrate(tsdf: 'np.ndarray', weight: 'np.ndarray', depth: 'np.ndarray', K, R, t, trunc: 'float', bounds: 'Optional[Bounds]' = None) -> 'None'; from the registry, ops3d.get("integrate"))
Integrate one depth frame into the volume by projective TSDF (in place, a weighted running average).
Projects each voxel centre with (K,R,t) (X_cam = R X + t, u = fx*X/Z+cx) and compares the observed depth d_meas of the corresponding pixel with the voxel's camera depth d_voxel = Z_cam. sdf = min(1, (d_meas - d_voxel)/trunc) is applied only to voxels satisfying all of the following:
inside the image, d_meas>0 and finite, (d_meas - d_voxel) >= -trunc (more than trunc behind the surface = the occluded region is unobservable and is not updated). On this valid set sdf ∈ [-1,1].
Update: tsdf = (w*tsdf + sdf)/(w+1), weight = w+1 (weight 1 per 1 frame).
When bounds are passed, voxel centres are interpreted in world coordinates and (K,R,t) is world→camera. With bounds=None (default), voxel centres are interpreted in the grid-index frame ((i+0.5,...)) and (K,R,t) is grid→camera (fuse passes bounds, so fusion happens in world coordinates).
• depth_sensors — Depth sensors — ranging principles, real-device figures, how dropouts appear
• 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 · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract · sdf_smooth_union
tsdf_fusion)*Provenance: tsdf_fusion.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.