Kernel Methods for SE(3) Data (a C++ machine-learning library)


Nuklei is a C++ library that implements kernel methods for \(SE(3)\) data. Nuklei provides kernel functions for \(SE(3)\) data, algorithms for kernel density estimation, and two-class nonlinear classification of \(SE(3)\) data via kernel logistic regression. Nuklei also provides tools for 3D object pose estimation, for manipulating \(SE(3)\) transformations, and for manipulating point clouds.


Project page:


Lots of speed improvements over the past months. We removed libkdtree++ in favor of nanoflann, yielding x2 speedups on pointclouds of 2000-4000 points. Pose estimation is fully parallel thanks to OpenMP. Parallelization is also accessible via Posix Threads or fork().
The command-line tool nuklei is now available in binary format (static Linux executable). The archive comes with an example of how to use Nuklei for pose estimation.
Added a class for pose estimation (see nuklei::PoseEstimator)
Sourceforge has migrated the Nuklei git repository to a new URL. The old URL is still accessible, but frozen to its state of May 2013. In order to continue pulling updates to your local copy, cd to your nuklei directory and type
git remote set-url origin git://
You can also delete your copy of Nuklei and clone it again with
git clone git:// nuklei
Documentation is improving rapidly. Take a look at the Module page and at the examples.
Initial release of Nuklei!


Nuklei includes implementations of efficient algorithms for:

  • Evaluating and simulating Gaussian distributions and von Mises-Fisher distributions.
  • Evaluating and simulating arbitrary \( SE(3) \) distributions with kernel density estimation (see kde_evaluate.cpp and kde_sample.cpp).
  • Kernel logistic regression (see klr_classify.cpp).
  • 3D object pose estimation (see
  • Reading, writing, transforming clouds of \( SE(3) \) points.

Potential applications of \( SE(3) \) density models: robot position and orientation (navigation), object pose (pose estimation), gripper pose (grasping).

Get Nuklei

The source code is available from the Sourceforge version control server:

git clone git:// nuklei

For more info, see the install page.


The Background section introduces the mathematical concepts applied in Nuklei (density estimation, kernels, 6D poses, quaternions, von Mises-Fisher distributions, ...). This is a good starting point for those who are discovering Nuklei. The page to read next is Kernels, kernel density estimation, kernel regression, which explains how these concepts are implemented in Nuklei.

Other resources are available on the Modules page. The central Nuklei classes are KernelCollection and the kernel classes (kernel::base and its subclasses).


The Bingham statistics library provides another open-source implementation of probability distributions on \( SO(3) \) data. More specifically, The Bingham statistics library contains implementations of the Bingham distribution for directional (axial) statistics on the unit spheres S1, S2, and S3. In addition, finite element approximations are available via tessellations of S2 and S3. If you are looking for an anisotropic, parametric distribution on \( SO(3) \), check it out at


Nuklei is distributed under the terms of the GNU General Public License (GPL).

If the code is used for research purposes, I would appreciate that you cite the following publications:

  • R. Detry, D. Kraft, O. Kroemer, L. Bodenhagen, J. Peters, N. Krüger and J. Piater, Learning Grasp Affordance Densities. In Paladyn. Journal of Behavioral Robotics, 2011.
    Author = {R. Detry and D. Kraft and O. Kroemer and L. Bodenhagen and J. Peters and N. Krüger and J. Piater},
    Journal = {Paladyn.\ Journal of Behavioral Robotics},
    Note = {accepted},
    Title = {Learning Grasp Affordance Densities},
    Year = {2011}}
  • R. Detry and J. Piater, Continuous Surface-point Distributions for 3D Object Pose Estimation and Recognition. In Asian Conference on Computer Vision, pages 572–585, 2010.
    Author = {Renaud Detry and Justus Piater},
    Booktitle = {Asian Conference on Computer Vision},
    Doi = {10.1007/978-3-642-19318-7_45},
    Pages = {572--585},
    Title = {Continuous Surface-point Distributions for {3D} Object Pose Estimation and Recognition},
    Year = {2010}}

I will be happy to hear from projects that make use of Nuklei, and if desired participate and provide support to these projects. If your project uses Nuklei, please let me know!.


Nuklei is developped by Renaud Detry.

© Copyright 2007-2013 Renaud Detry.
Distributed under the terms of the GNU General Public License (GPL).
(See accompanying file LICENSE.txt or copy at
Revised Fri Feb 6 2015 13:52:00. Logo