← all repositories
andyzeng/tsdf-fusion-python

TSDF fusion in Python: 75× faster with a GPU

A lightweight Python port of KinectFusion-style volumetric reconstruction that trades C++ complexity for NumPy and optional CUDA acceleration.

tsdf-fusion-python
Velocity · 7d
+0.5
★ / day
Trend
steady
star history

What it does Takes a stack of registered RGB-D frames and fuses them into a truncated signed distance function (TSDF) voxel volume. From that volume you extract a mesh or point cloud — the same pipeline that powers classic KinectFusion, but written in Python with NumPy, Numba, and optional PyCUDA.

The interesting bit The CPU path is brutally honest: 0.4 FPS. Flip on GPU mode and the same demo jumps to ~30 FPS. That’s the difference between “grab coffee” and “watch it work.” The projective TSDF approach itself dates back to SIGGRAPH 1996, but this implementation is deliberately lightweight — a single script, not a full SLAM system.

Key highlights

  • Fuses 1000 frames from the 7-scenes dataset into a 405×264×289 volume at 2cm resolution
  • GPU mode via PyCUDA; CPU fallback via Numba/NumPy
  • Outputs standard PLY meshes viewable in Meshlab
  • Cited in 3DMatch, SSCNet, and Deep Sliding Shapes (CVPR 2016–2017)
  • Part of the broader 3DMatch Toolbox

Caveats

  • Requires Python 2.7+ (README explicitly says 2.7+, though dependencies suggest modern Python may work)
  • “Tested on Ubuntu 16.04” — mileage on newer distros is unclear
  • No pose estimation included; frames must already be registered

Verdict Grab this if you need a minimal, hackable TSDF implementation for research or prototyping. Skip it if you need real-time SLAM with tracking — this fuses, it doesn’t localize.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.