skillfed

libpinocchio

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives

libpinocchio v4.1.0 589.5K downloads/30d#5,860 on PyPI0
Permissive license BSD-3-Clause Active released

What it is and what it does

libpinocchio is a Python-wrapped C++ library for computing rigid body dynamics efficiently. It implements state-of-the-art algorithms for forward and inverse kinematics, forward and inverse dynamics, centroidal dynamics, and their analytical derivatives. The library handles complex scenarios like closed-loop mechanisms and frictional contact problems, making it suitable for robot control, trajectory optimization, and physics-based simulation.

The package is built on Eigen for linear algebra and coal for collision detection. It supports multiple robot model formats (URDF, SDF, MJCF, SRDF) and can be used across robotics, biomechanics, computer graphics, and vision applications. Analytical derivatives enable gradient-based optimization and learning. The library is actively developed and powers several robotics frameworks.

Use it for:

  • Compute forward and inverse kinematics for robot manipulators to plan and execute motion.
  • Solve trajectory optimization problems for robot control using analytical derivatives of dynamics.
  • Simulate contact-rich manipulation tasks with frictional contact solvers.
  • Perform system identification and parameter estimation using kinematic and dynamic regressors.
  • Prototype robot learning algorithms in Python before deploying to production systems.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

libpinocchio provides efficient rigid body dynamics algorithms and their analytical derivatives for robotics, biomechanics, and physics simulation, with support for closed-loop mechanisms, contact solving, and multiple model formats.

Yes, with conditions. libpinocchio is actively maintained, permissively licensed (BSD-3-Clause), and widely used in robotics research. Install if you need rigid body dynamics computation for robotics or physics simulation. Caveat: medium install friction from compiled dependencies; on non-Linux, use conda instead of pip. No known security vulnerabilities.

Install

libpinocchio on PyPI

pip

pip install libpinocchio

uv

uv add libpinocchio

poetry

poetry add libpinocchio

Installing libpinocchio

Before you install

Medium install friction due to compiled C++ dependencies (cmeel, cmeel-boost, cmeel-urdfdom, libcoal). Pre-built wheels available for macOS (Intel and ARM) and Linux x86_64/aarch64. Actively maintained with recent releases.

License in practice

BSD-3-Clause permissive license allows use in commercial and proprietary projects with minimal restrictions, requiring only license and copyright notice retention.

Quickstart

pip install libpinocchio
import libpinocchio
model = buildModelFromUrdf('robot.urdf')
data = model.createData()
forwardKinematics(model, data, q)

Requires Python >=3.9. On non-Linux platforms, installation via conda is recommended; pip currently supports Linux only.

Verify before relying

  • Whether the Python interface fully exposes all C++ algorithms mentioned in the description or if some features require direct C++ usage.
  • Performance characteristics and scalability limits for systems with many degrees of freedom.
  • Availability and maturity of automatic differentiation support via CppAD or CasADi integration.
  • Exact API and usage patterns for the Python interface to libpinocchio.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies 4 — cmeel, cmeel-boost, cmeel-urdfdom, libcoal
Maintenance actively maintained — 37 days since the last release
Last repo commit
First released
Downloads 589,544/month — #5,860 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: libpinocchio-4.1.0-0-py3-none-macosx_10_9_x86_64.whl; libpinocchio-4.1.0-0-py3-none-macosx_11_0_arm64.whl; libpinocchio-4.1.0-0-py3-none-manylinux_2_28_aarch64.whl; libpinocchio-4.1.0-0-py3-none-manylinux_2_28_x86_64.whl

Tags

rigid body dynamics algorithmsrobot kinematics and dynamicsphysics simulation libraryrobotics control computationforward and inverse dynamicscontact dynamics solverURDF model loader
roboticsphysics-simulationdynamics-computation

More Scientific/Engineering packages