integrate — 3D 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"))

Usage

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).

Background guides (the physics and conventions behind this op)

• depth_sensors — Depth sensors — ranging principles, real-device figures, how dropouts appear

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• transforms_repr — py -3.11 examples_3d/transforms_repr.py

Ops the type connects to (they accept sdf as input)

sdf_to_occupancy · fuse_to_voxel · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract · sdf_smooth_union

Same category (tsdf_fusion)

fuse · extract_surface_points


*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.