Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This is a sample application using the KinectFusionLib. It implements cameras (for data acquisition from recordings as well as from a live depth sensor) as data sources. The resulting fused volume can then be exported into a pointcloud or a dense surface mesh.


  • GCC 5 as higher versions don't work with current nvcc (as of 2017).
  • CUDA 8.0 or higher. In order to provide real-time reconstruction, this library relies on graphics hardware. Running it exclusively on CPU is not possible.
  • OpenCV 3.0 or higher. This library heavily depends on the GPU features of OpenCV that have been refactored in the 3.0 release. Therefore, OpenCV 2 is not supported.
  • Eigen3 for efficient matrix and vector operations.
  • OpenNI2 for data acquisition with a live depth sensor.


  • Adjust CUDA architecture: Set the CUDA architecture version to that of your graphics hardware
SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-O3 -gencode arch=compute_52,code=sm_52)

Tested with a nVidia GeForce 970, compute capability 5.2, maxwell architecture

  • Set custom opencv path (if built from source):
SET("OpenCV_DIR" "/opt/opencv/usr/local/share/OpenCV")


Setup the data sources in main.cpp. Then, start the application.

Use the following keys to perform actions:

  • 'p': Export all camera poses known so far
  • 'm': Export a dense surface mesh
  • ' ': Export nothing, just end the application
  • 'a': Save all available data


This library is licensed under MIT.