diff --git a/Makefile b/Makefile
index bbfc479f0a712cb3e6bb877f47b53810a5a42592..3415634821b79b70ecdae886cacd0608b0de7657 100644
--- a/Makefile
+++ b/Makefile
@@ -107,6 +107,7 @@ SUBDIR+=	py-sot-dyninv-v3
 SUBDIR+=	py-sot-pattern-generator-v3
 SUBDIR+=	py-sot-tools-v3
 SUBDIR+=	py-sot-torque-control
+SUBDIR+=	py-tsid
 SUBDIR+=	pyrene-motions
 SUBDIR+=	qgv
 SUBDIR+=	roralink
diff --git a/py-tsid/DESCR b/py-tsid/DESCR
new file mode 100644
index 0000000000000000000000000000000000000000..6e0c9e978eb22e9f1b1b62ab1969e6b405bceb0c
--- /dev/null
+++ b/py-tsid/DESCR
@@ -0,0 +1 @@
+This package provides an efficient library to compute rigid multibody dynamics. (python bindings)
diff --git a/py-tsid/Makefile b/py-tsid/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..21b1afa397b438719d3d6af466ae0836ba6ff91e
--- /dev/null
+++ b/py-tsid/Makefile
@@ -0,0 +1,43 @@
+# robotpkg Makefile for:	wip/py-tsid
+# Created:			Guilhem Saurel on Mon, 4 Mar 2019
+#
+
+ORG=			stack-of-tasks
+NAME=			tsid
+VERSION=		1.2.0
+
+DISTNAME=		${NAME}-${VERSION}
+PKGNAME=		${PKGTAG.python-}${DISTNAME}
+
+MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
+MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}.git
+CHECKOUT_VCS_OPTS+=	--recursive
+
+CATEGORIES=		wip
+COMMENT=		Efficient Inverse Dynamics based on Pinocchio (python bindings)
+LICENSE=		2-clause-bsd
+MAINTAINER=		gepetto-soft@laas.fr
+
+USE_BOOST_LIBS=		unit_test_framework
+
+include ../../${CATEGORIES}/${NAME}/depend.mk
+include ../../devel/boost-headers/depend.mk
+include ../../devel/boost-libs/depend.mk
+include ../../graphics/urdfdom/depend.mk
+include ../../math/eigen3/depend.mk
+include ../../math/py-eigenpy/depend.mk
+include ../../math/pinocchio/depend.mk
+include ../../math/py-pinocchio/depend.mk
+include ../../mapping/octomap/depend.mk
+include ../../path/hpp-fcl/depend.mk
+include ../../pkgtools/pkg-config/depend.mk
+include ../../mk/sysdep/cmake.mk
+include ../../mk/sysdep/doxygen.mk
+include ../../mk/sysdep/python.mk
+include ../../mk/language/c.mk
+include ../../mk/language/c++.mk
+
+DEPEND_ABI.python +=		python<3
+DEPEND_ABI.eigen3 += eigen3>=3.2.0
+
+include ../../mk/robotpkg.mk
diff --git a/py-tsid/PLIST b/py-tsid/PLIST
new file mode 100644
index 0000000000000000000000000000000000000000..452f3b03341c93e6af8449b305a0da86b2f9f5de
--- /dev/null
+++ b/py-tsid/PLIST
@@ -0,0 +1,27 @@
+@comment Mon Mar 4 15:01:27 CET 2019
+include/tsid/bindings/python/constraint/constraint-bound.hpp
+include/tsid/bindings/python/constraint/constraint-equality.hpp
+include/tsid/bindings/python/constraint/constraint-inequality.hpp
+include/tsid/bindings/python/constraint/expose-constraints.hpp
+include/tsid/bindings/python/contacts/contact-6d.hpp
+include/tsid/bindings/python/contacts/contact-point.hpp
+include/tsid/bindings/python/contacts/expose-contact.hpp
+include/tsid/bindings/python/formulations/expose-formulations.hpp
+include/tsid/bindings/python/formulations/formulation.hpp
+include/tsid/bindings/python/robots/expose-robots.hpp
+include/tsid/bindings/python/robots/robot-wrapper.hpp
+include/tsid/bindings/python/solvers/HQPData.hpp
+include/tsid/bindings/python/solvers/HQPOutput.hpp
+include/tsid/bindings/python/solvers/expose-solvers.hpp
+include/tsid/bindings/python/solvers/solver-HQP-eiquadprog.hpp
+include/tsid/bindings/python/tasks/expose-tasks.hpp
+include/tsid/bindings/python/tasks/task-com-equality.hpp
+include/tsid/bindings/python/tasks/task-joint-posture.hpp
+include/tsid/bindings/python/tasks/task-se3-equality.hpp
+include/tsid/bindings/python/trajectories/expose-trajectories.hpp
+include/tsid/bindings/python/trajectories/trajectory-base.hpp
+include/tsid/bindings/python/trajectories/trajectory-euclidian.hpp
+include/tsid/bindings/python/trajectories/trajectory-se3.hpp
+include/tsid/bindings/python/utils/container.hpp
+${PYTHON_SITELIB}/tsid/__init__.py
+${PYTHON_SITELIB}/tsid/libtsid_pywrap${PYTHON_EXT_SUFFIX}
diff --git a/py-tsid/depend.mk b/py-tsid/depend.mk
new file mode 100644
index 0000000000000000000000000000000000000000..6d83e003cb381b0582857e0ad56a3f70217c2b1c
--- /dev/null
+++ b/py-tsid/depend.mk
@@ -0,0 +1,26 @@
+# robotpkg depend.mk for:	wip/py-tsid
+# Created:			Guilhem Saurel on Mon, 4 Mar 2019
+#
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH}+
+PY_TSID_DEPEND_MK:=	${PY_TSID_DEPEND_MK}+
+
+ifeq (+,$(DEPEND_DEPTH))
+DEPEND_PKG+=		py-tsid
+endif
+
+ifeq (+,$(PY_TSID_DEPEND_MK)) # ------------------------------------------
+
+PREFER.py-tsid?=	robotpkg
+
+SYSTEM_SEARCH.py-tsid=\
+	'${PYTHON_SYSLIBSEARCH}/tsid/__init__.py'
+
+DEPEND_USE+=		py-tsid
+
+DEPEND_ABI.py-tsid?=	${PKGTAG.python-}tsid>=1.0.0
+DEPEND_DIR.py-tsid?=	../../wip/py-tsid
+
+endif # PY_TSID_DEPEND_MK ------------------------------------------------
+
+DEPEND_DEPTH:=		${DEPEND_DEPTH:+=}
diff --git a/py-tsid/distinfo b/py-tsid/distinfo
new file mode 100644
index 0000000000000000000000000000000000000000..fdcde5bba6aacf78742d612426f8541923cf492b
--- /dev/null
+++ b/py-tsid/distinfo
@@ -0,0 +1,6 @@
+SHA1 (tsid-1.2.0.tar.gz) = a237402536c915dc3ec71f23e18d4ed00f1e97f1
+RMD160 (tsid-1.2.0.tar.gz) = 2438abb62df5ffb979cf361cfcb2f107063d1bb7
+Size (tsid-1.2.0.tar.gz) = 8775466 bytes
+SHA1 (patch-aa) = 8b3fbbfa2be7bcdf0620c2525424fda2fd4561e6
+SHA1 (patch-ab) = 65531cbbc1ea697e9f4f63f864fd811a99e955ae
+SHA1 (patch-ad) = 9731f90f2c33abec026a1d34cfaa653316b84427
diff --git a/py-tsid/patches/patch-aa b/py-tsid/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..7a04af3d099cabdb4aa458d5c288ed37c1d1caa7
--- /dev/null
+++ b/py-tsid/patches/patch-aa
@@ -0,0 +1,29 @@
+--- CMakeLists.txt.orig	2019-03-04 14:39:35.000000000 +0100
++++ CMakeLists.txt	2019-03-04 14:58:09.524505851 +0100
+@@ -184,26 +184,11 @@
+ 
+ LIST(REMOVE_DUPLICATES HEADERS)
+ 
+-SET(HEADERS_FULL_PATH "")
+-FOREACH(header ${HEADERS})
+-  LIST(APPEND HEADERS_FULL_PATH "${CMAKE_SOURCE_DIR}/${header}")
+-  GET_FILENAME_COMPONENT(headerName ${header} NAME)
+-  GET_FILENAME_COMPONENT(headerPath ${header} PATH)
+-  INSTALL(FILES ${${PROJECT_NAME}_SOURCE_DIR}/${header}
+-    DESTINATION ${CMAKE_INSTALL_PREFIX}/${headerPath}
+-          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
+-ENDFOREACH(header ${HEADERS})
+-
+-# --- MAIN LIBRARY -------------------------------------------------------------
+-ADD_SUBDIRECTORY(src)
+-
+ # --- BINDINGS ----------------------------------------------------------------
+ IF(BUILD_PYTHON_INTERFACE)
+   SET(PYWRAP ${PROJECT_NAME}_pywrap)
+   ADD_SUBDIRECTORY(bindings)
+ ENDIF(BUILD_PYTHON_INTERFACE)
+-# --- UNIT TESTS ---------------------------------------------------------------
+-ADD_SUBDIRECTORY(unittest)
+ 
+ # --- PACKAGING ----------------------------------------------------------------
+ PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
diff --git a/py-tsid/patches/patch-ab b/py-tsid/patches/patch-ab
new file mode 100644
index 0000000000000000000000000000000000000000..72ef67639f1b9e60ce3968c5a25c71c6c48a2607
--- /dev/null
+++ b/py-tsid/patches/patch-ab
@@ -0,0 +1,14 @@
+Don't install main .pc
+
+--- cmake/base.cmake~	2017-10-26 15:25:19.000000000 +0200
++++ cmake/base.cmake	2018-04-26 18:06:07.322011937 +0200
+@@ -226,9 +226,7 @@
+ #   finalize the project setup.
+ #
+ MACRO(SETUP_PROJECT_FINALIZE)
+-  _SETUP_PROJECT_PKG_CONFIG_FINALIZE()
+   _SETUP_PROJECT_DOCUMENTATION_FINALIZE()
+-  _SETUP_PROJECT_HEADER_FINAlIZE()
+   _SETUP_DEBIAN()
+   # Install data if needed
+   _INSTALL_PROJECT_DATA()
diff --git a/py-tsid/patches/patch-ad b/py-tsid/patches/patch-ad
new file mode 100644
index 0000000000000000000000000000000000000000..83ef8fe0054c7c19212a59d6abe3cc57a3f10707
--- /dev/null
+++ b/py-tsid/patches/patch-ad
@@ -0,0 +1,40 @@
+Don't install main headers
+
+--- cmake/header.cmake~	2017-10-26 15:25:19.000000000 +0200
++++ cmake/header.cmake	2018-04-26 18:37:42.582417765 +0200
+@@ -92,11 +92,6 @@
+     ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
+     @ONLY
+     )
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+   # Generate warning.hh header.
+   CONFIGURE_FILE(
+     ${PROJECT_SOURCE_DIR}/cmake/warning.hh.cmake
+@@ -104,11 +99,6 @@
+     @ONLY
+     )
+ 
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/warning.${PROJECT_CUSTOM_HEADER_EXTENSION}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+ 
+ 
+   # Generate config.h header.
+@@ -150,11 +140,6 @@
+     @ONLY
+     )
+   # Install it.
+-  INSTALL(FILES
+-    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/${FILENAME}
+-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
+-    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
+-    )
+ ENDFUNCTION(GENERATE_CONFIGURATION_HEADER)
+ 
+