diff --git a/Makefile b/Makefile
index c6db8611b0324c64bcbb4550564b74f0d5df0106..70575d8633344e0b3b9cb8ca6ac95b89379cca09 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,7 @@ SUBDIR+=	gerard-bauzil
 SUBDIR+=	hatponboard-lib
 SUBDIR+=	head-action
 SUBDIR+=	histodet
+SUBDIR+=	hpp-centroidal-dynamics
 SUBDIR+=	hpp-environments
 SUBDIR+=	hpp-romeo
 SUBDIR+=	hpp-spline
diff --git a/hpp-centroidal-dynamics/DESCR b/hpp-centroidal-dynamics/DESCR
new file mode 100644
index 0000000000000000000000000000000000000000..fa98535f9970f2d7e4e5c32231c250782784f53d
--- /dev/null
+++ b/hpp-centroidal-dynamics/DESCR
@@ -0,0 +1 @@
+Utility classes for testing (robust) equilibrium of a system in contact with the environment, and other centroidal dynamics methods.
diff --git a/hpp-centroidal-dynamics/Makefile b/hpp-centroidal-dynamics/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..48a11b939c444c5ad440a54f52a44c1f9933c741
--- /dev/null
+++ b/hpp-centroidal-dynamics/Makefile
@@ -0,0 +1,27 @@
+# robotpkg Makefile for:	wip/hpp-centroidal-dynamics
+# Created:			Guilhem Saurel on Thu, 3 Jan 2019
+#
+
+HPP_PACKAGE=	hpp-centroidal-dynamics
+HPP_COMMENT=	testing equilibrium
+
+CATEGORIES=	wip
+
+DEPEND_ABI.python+=	python<3
+
+USE_BOOST_LIBS=		python
+
+include ../../meta-pkgs/hpp/Makefile.common
+
+include ../../math/py-eigenpy/depend.mk
+include ../../math/eigen3/depend.mk
+include ../../optimization/qpoases/depend.mk
+
+include ../../devel/boost-headers/depend.mk
+include ../../devel/boost-libs/depend.mk
+
+include ../../wip/mk/sysdep/libcdd.mk
+include ../../mk/sysdep/python.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++.mk
+include ../../mk/robotpkg.mk
diff --git a/hpp-centroidal-dynamics/PLIST b/hpp-centroidal-dynamics/PLIST
new file mode 100644
index 0000000000000000000000000000000000000000..128580880234cc241696bed0ceb2848b3605eab2
--- /dev/null
+++ b/hpp-centroidal-dynamics/PLIST
@@ -0,0 +1,15 @@
+@comment Fri Jan 4 10:50:58 CET 2019
+include/hpp/centroidal-dynamics/centroidal_dynamics.hh
+include/hpp/centroidal-dynamics/config.hh
+include/hpp/centroidal-dynamics/deprecated.hh
+include/hpp/centroidal-dynamics/local_config.hh
+include/hpp/centroidal-dynamics/logger.hh
+include/hpp/centroidal-dynamics/solver_LP_abstract.hh
+include/hpp/centroidal-dynamics/solver_LP_clp.hh
+include/hpp/centroidal-dynamics/solver_LP_qpoases.hh
+include/hpp/centroidal-dynamics/stop-watch.hh
+include/hpp/centroidal-dynamics/util.hh
+include/hpp/centroidal-dynamics/warning.hh
+lib/libhpp-centroidal-dynamics.so
+lib/pkgconfig/hpp-centroidal-dynamics.pc
+${PYTHON_SITELIB}/hpp_centroidal_dynamics.so
diff --git a/hpp-centroidal-dynamics/depend.mk b/hpp-centroidal-dynamics/depend.mk
new file mode 100644
index 0000000000000000000000000000000000000000..b3355ea4e318ee4a3dea3b7b5d6684cc5fa8e3c4
--- /dev/null
+++ b/hpp-centroidal-dynamics/depend.mk
@@ -0,0 +1,28 @@
+# robotpkg depend.mk for:	wip/hpp-centroidal-dynamics
+# Created:			Guilhem Saurel on Fri, 2 Jan 2019
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+HPP_CENTROIDAL_DYNAMICS_DEPEND_MK:=	${HPP_CENTROIDAL_DYNAMICS_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		hpp-centroidal-dynamics
+endif
+
+ifeq (+,$(HPP_CENTROIDAL_DYNAMICS_DEPEND_MK)) # --------------------------------------
+
+PREFER.hpp-centroidal-dynamics?=	robotpkg
+
+DEPEND_USE+=		hpp-centroidal-dynamics
+
+DEPEND_ABI.hpp-centroidal-dynamics?=	hpp-centroidal-dynamics>=4.2.0
+DEPEND_DIR.hpp-centroidal-dynamics?=	../../wip/hpp-centroidal-dynamics
+
+SYSTEM_SEARCH.hpp-centroidal-dynamics=\
+	include/hpp/centroidal-dynamics/config.hh	\
+	lib/hpp-centroidal-dynamics.so	\
+	'lib/pkgconfig/hpp-centroidal-dynamics.pc:/Version/s/[^0-9.]//gp'
+
+endif # HPP_CENTROIDAL_DYNAMICS_DEPEND_MK --------------------------------------------
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/hpp-centroidal-dynamics/distinfo b/hpp-centroidal-dynamics/distinfo
new file mode 100644
index 0000000000000000000000000000000000000000..27d5f81de5974c5fe40a896564d115ea6fb37876
--- /dev/null
+++ b/hpp-centroidal-dynamics/distinfo
@@ -0,0 +1,4 @@
+SHA1 (hpp-centroidal-dynamics-4.3.0.tar.gz) = 69307b6dc0f5737c76cf73941a6fde828bcef6f5
+RMD160 (hpp-centroidal-dynamics-4.3.0.tar.gz) = 8dd50189a730d3580a2bc4e39c115ca886d8d594
+Size (hpp-centroidal-dynamics-4.3.0.tar.gz) = 839478 bytes
+SHA1 (patch-aa) = dbeee89873ca72cefca81c19dc6caa8b1c9980c2
diff --git a/hpp-centroidal-dynamics/patches/patch-aa b/hpp-centroidal-dynamics/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..de5a7958e8a66d4406f55f3d8baa95339939a3da
--- /dev/null
+++ b/hpp-centroidal-dynamics/patches/patch-aa
@@ -0,0 +1,42 @@
+cdd headers ar in /usr/include in ArchLinux, /usr/include/cdd in Ubuntu and /usr/include/cddlib in Fedora
+
+--- cmake2/FindCDD.cmake.orig	2019-01-29 15:13:37.000000000 +0100
++++ cmake2/FindCDD.cmake	2019-01-31 10:33:17.193453803 +0100
+@@ -6,8 +6,8 @@
+ #  CDD_DEFINITIONS - Compiler switches required for using CDD
+ 
+ 
+-find_path(CDD_INCLUDE_DIR cdd/cdd.h
+-          HINTS ${CDD_INCLUDEDIR} /usr/include
++find_path(CDD_INCLUDE_DIR cdd.h
++          HINTS ${CDD_INCLUDEDIR} /usr/include /usr/include/cdd /usr/include/cddlib
+           PATH_SUFFIXES CDD )
+ 
+ find_library(CDD_LIBRARY NAMES libcdd.so
+--- include/hpp/centroidal-dynamics/util.hh.orig	2019-01-29 15:13:37.000000000 +0100
++++ include/hpp/centroidal-dynamics/util.hh	2019-01-31 10:33:35.180077087 +0100
+@@ -13,10 +13,10 @@
+ #include <Eigen/Dense>
+ #include <Eigen/src/Core/util/Macros.h>
+ 
+-#include "cdd/cddmp.h"
+-#include "cdd/setoper.h"
+-#include "cdd/cddtypes.h"
+-#include "cdd/cdd.h"
++#include <cddmp.h>
++#include <setoper.h>
++#include <cddtypes.h>
++#include <cdd.h>
+ 
+ namespace centroidal_dynamics
+ {
+--- src/CMakeLists.txt.orig	2019-01-29 15:13:37.000000000 +0100
++++ src/CMakeLists.txt	2019-01-31 10:43:08.167931216 +0100
+@@ -20,6 +20,7 @@
+ ADD_LIBRARY(${LIBRARY_NAME} SHARED ${${LIBRARY_NAME}_SOURCES})
+ 
+ TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${CDD_LIBRARIES} ${QPOASES_LIBRARY})
++TARGET_INCLUDE_DIRECTORIES(${LIBRARY_NAME} PUBLIC ${CDD_INCLUDE_DIRS})
+ PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} eigen3)
+ 
+ if(CLP_FOUND)