Kintinuous
Whelan 2012 · Paper
One-line summary — Extended KinectFusion to unbounded environments with a continuously shifting (cyclical-buffer) TSDF volume that streams departing surface slices into an incrementally built triangular mesh, plus early loop-closure machinery (DBoW+SURF, iSAM) that matured into deformation-based map correction.
Problem
KinectFusion’s fixed-size TSDF volume cannot represent environments larger than a desk or small room — once the camera moves beyond the volume boundary, tracking fails. Its ICP odometry also fails in areas with poor 3D geometry (e.g. straight corridors). Large-scale indoor and outdoor mapping requires extending the reconstruction indefinitely in real time while keeping a path open to correcting accumulated drift.
Method & architecture
Rolling (cyclical) TSDF volume. The TSDF (size voxels, dimension meters, voxel size ) no longer stays anchored at the starting position. The system continuously checks camera distance from the volume origin; when it exceeds a movement threshold , the volume is virtually translated to re-center the camera. The shift is quantized to whole voxels: with camera translation ,
where is the new in-volume camera position and tracks the volume’s global position in voxel units. No voxels are moved in memory: the 3D array is treated as cyclical, with lookups remapped as (same for ), so re-centering only updates base index offsets.
Slice extraction and meshing. The slice of voxels that leaves the volume is ray-cast orthogonally along each axis to extract zero-crossing vertices, deduplicated with a voxel-grid filter (leaf size ), zeroed for reuse, and streamed to the CPU. Each boundary crossing adds a pose-graph element storing the pose and its associated surface slice ; slices (extracted with 2-voxel overlap) feed a greedy triangulation algorithm producing a seamless mesh bounded only by system memory.
Multi-threaded architecture. A hierarchical design keeps the GPU front-end unblocked: the TSDF tracking/integration thread signals a CloudSliceProcessor thread (transforms + downsampling), which signals a pool of ComponentThreads (mesh generation, place recognition, …), so map post-processing never stalls 30 Hz tracking.
Odometry alternatives and loop closure. To survive geometrically degenerate scenes, the ICP odometry can be replaced by the feature-based FOVIS visual odometry — trading some local mesh smoothness for robustness in corridors. For loop closure the paper integrates DBoW place recognition with SURF descriptors as a ComponentThread, propagating detected pose constraints back to the TSDF virtual frame via the stored vectors, and experiments with iSAM pose-graph optimization — observing that a mesh deformation is required alongside pose updates. The mature Kintinuous line implements exactly that with an embedded deformation graph, moving each mesh vertex with its nearby graph nodes: , so the dense map bends into consistency instead of being rebuilt.
Results
On a desktop with an Intel i7-2600 (3.4 GHz), 8 GB RAM, and a GTX 560 Ti (2 GB), with and 15 FPS handheld/vehicle Kinect captures, four datasets were mapped in real time: a research lab (LAB, 31.07 m pose-to-pose odometry, 6 m volume), two floors of an apartment (APT, 42.31 m), a suburban estate filmed from a car at night (CAR, 136.18 m, 20 m volume, 81.6 x 22.8 x 81.5 m bounding cuboid), and a straight corridor (CORR, 56.08 m, using FOVIS). Final meshes reach 1.5-3.1 million triangles (63-118 MB). TSDF update times of 33.8-41.3 ms show the front-end can sustain the Kinect’s full 30 FPS, unaffected by map growth; the CloudSliceProcessor adds only 2.6-4.7 ms per slice, and mesh generation keeps pace on average. FOVIS odometry costs 14.71 +/- 4.39 ms versus 10.54 +/- 0.21 ms for CUDA ICP — slower but still real-time, with reduced drift in the corridor at the cost of local mesh smoothness (frame-to-frame vs frame-to-model).
Why it matters for SLAM
Kintinuous was the first system to take dense volumetric fusion out of a single fixed volume and into corridors, apartments, and streets, showing that dense RGB-D SLAM could be a genuine large-scale mapping tool rather than a desktop scanning demo. Its cyclical-buffer rolling volume was adopted and refined by later systems (InfiniTAM’s voxel hashing solves the same scalability problem differently), and its loop-closure investigations — pose graph plus mesh deformation — became the core mechanism of ElasticFusion, its direct successor by the same lead author.