New Feature: Nearest Neighbor Data Association

A new fresh feature has been added to NICP, now it is possible align point clouds using a nearest neighbor correspondence search. Check it out on the tutorials page.

Getting Started

Normal ICP is released as a standalone open source C++ library. It can be downloaded directly from Github and its dependencies are only Eigen and OpenCV (also Qt4 and QGLViewer if you need also the visualization part).

Depth Camera Tracking

Normal ICP library provides a precise and robust depth camera tracking system. The code, minimal and simple, can be easily integrated in your system with a very little effort.

3D Laser Scan Registration

In addition to depth camera images, Normal ICP library can register point clouds generated by 3D laser sensors by using spherical depth images. Spherical depth images allow to describe scenes having a field of view even of 360°.

Interactive Testing Tools

Normal ICP library provides a set of interactive testing tools that allows to change on the fly input and parameters of the algorithm. This helps the user to understand how the algorithm is behaving!

About Normal ICP

Normal ICP is a novel algorithm for point cloud registration. Based on a different error function, it is more accurate and robust than other recent algorithms!


The code is minimal and easy to integrate in your system. Download it from Github and start using it right now! It will only require Eigen and OpenCV.


To get started faster, give a look to our easy tutorials! With our step-by-step explanation of the code you will be able to put your hands in the library in few time.


Have you got bugs, code issues or question on how to use Normal ICP C++ Library? Register and post your questions on the NICP dedicated forum now!


Check out some of the most notable features of the Normal ICP C++ library