Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. pinocchio

pinocchio

BSD-2-ClauseC++v4.1.0

A fast and flexible C++ library implementing state-of-the-art Rigid Body Dynamics algorithms and their analytical derivatives.

Visit WebsiteGitHubGitHub
3.6k stars560 forks0 contributors

What is pinocchio?

Pinocchio is a C++ library that provides fast and flexible implementations of Rigid Body Dynamics algorithms and their analytical derivatives. It solves the problem of efficiently computing kinematics, dynamics, and their derivatives for poly-articulated systems, which is essential for robotics simulation, control, and motion planning.

Target Audience

Robotics researchers, engineers, and developers working on simulation, control, motion planning, or biomechanics who need high-performance rigid body dynamics computations.

Value Proposition

Developers choose Pinocchio for its state-of-the-art algorithms, excellent performance due to sparsity exploitation and compile-time optimizations, and comprehensive support for analytical derivatives, which are critical for optimization and control tasks.

Overview

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

Use Cases

Best For

  • Implementing model predictive control for robotic systems
  • Developing motion planning algorithms for humanoid robots
  • Performing efficient rigid body dynamics simulations in robotics research
  • Computing analytical derivatives for optimization-based control
  • Building robotics software that requires high-performance kinematics and dynamics
  • Simulating poly-articulated systems in biomechanics or computer graphics

Not Ideal For

  • Python-only projects on non-Linux systems without Conda
  • Embedded or resource-constrained real-time applications
  • Projects requiring soft-body dynamics or advanced non-rigid physics simulations

Pros & Cons

Pros

Blazing Fast Performance

Uses C++ templates and sparsity exploitation to achieve state-of-the-art speeds, as demonstrated in performance benchmarks on standard hardware.

Comprehensive Algorithm Suite

Implements forward/inverse dynamics, centroidal dynamics, and supports closed-loop mechanisms with URDF, SDF, MJCF, and SRDF formats.

Analytical Derivatives

Provides exact derivatives for key algorithms like the Recursive Newton-Euler Algorithm, critical for optimization-based control and motion planning.

Flexible and Extensible

Header-only design with support for custom scalar types, multi-threading, and integration with automatic differentiation frameworks like CppAD and CasADi.

Cons

Installation Hurdles

Python bindings primarily rely on Conda; pip installation is limited to Linux, making setup tricky for Windows or macOS users without Conda.

Steep Learning Curve

Assumes proficiency in modern C++ and rigid body dynamics mathematics, with documentation that can be dense for newcomers.

No Built-in Visualization

Requires integration with external viewers like Gepetto or Meshcat, adding extra steps for simulation and debugging workflows.

Frequently Asked Questions

Quick Stats

Stars3,597
Forks560
Contributors0
Open Issues95
Last commit2 days ago
CreatedSince 2014

Tags

#robotics#cpp-library#dynamics#motion-planning#c-plus-plus#python#kinematics#fcl#code-generation#robotics-simulation#rigid-body-dynamics#physics-engine

Built With

E
Eigen
C
Conda
R
ROS
P
Python
D
Docker
C
C++

Links & Resources

Website

Included in

Robotic Tooling3.8k
Auto-fetched 19 hours ago

Related Projects

EGO-PlannerEGO-Planner

EGO-Planner is an ESDF-free gradient-based local planner designed for quadrotor navigation. It significantly reduces computation time compared to state-of-the-art methods by avoiding the computationally expensive Euclidean Signed Distance Field (ESDF) construction, enabling real-time performance with total planning times around 1ms. ## Key Features - **ESDF-Free Planning** — Eliminates the need to compute Euclidean Signed Distance Fields, drastically reducing computational overhead. - **Lightweight Gradient-Based Optimization** — Uses a gradient-based approach for efficient local trajectory generation. - **GPU/CPU Versatility** — Offers both GPU and CPU versions of its local sensing module for depth image generation or pointcloud processing. - **Fast Computation** — Achieves planning times of approximately 1ms, suitable for real-time drone control. - **Simulation-Ready** — Includes a lightweight quadrotor simulator and supports integration with sensors like Intel RealSense for hardware testing. ## Philosophy EGO-Planner prioritizes computational efficiency and real-time performance by removing the ESDF construction bottleneck, making advanced local planning accessible for resource-constrained aerial robotics applications.

Stars2,577
Forks404
Last commit1 year ago
casADicasADi

CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.

Stars2,258
Forks453
Last commit21 days ago
omplompl

The Open Motion Planning Library (OMPL)

Stars2,113
Forks702
Last commit4 days ago
path_plannerpath_planner

Hybrid A* Path Planner for the KTH Research Concept Vehicle

Stars1,904
Forks570
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub