NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3624 most downloaded on PyPI
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Last release 2 months ago
08 Jul 2026
Release timing varies
gaps range from 6 weeks to 12 months
Nearly every release is documented
notes for 21 of 22 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
22 releases · first in 2021
One column per quarter.
Capsule geometry parsed directly as CAPSULE collision/visual shape
CAPSULE collision/visual shapeacceleration, jerk read from URDF v1.2 <limit> element
ModelTpl fields: lowerAccelerationLimit, upperAccelerationLimit, lowerJerkLimit, upperJerkLimit
(tangent-space vectors, default -inf/+inf)ModelTpl::addJoint overload to accept min_acceleration, max_acceleration, min_jerk, max_jerk parametersPINOCCHIO_BUILD_BINDING_WITH_PCH CMake option to use PCH to build Python bindings (default OFF) (#2886)} in modernize_target_link_libraries function (#2900)loadFromStringStream unable to parse -inf/+inf values (broke Python pickle of models with acceleration/jerk limits) (#2909)<mesh scale> to mesh vertices instead of scaling the link translation (#2878)Renamed PINOCCHIO_PRAGMA_DEPRECATED_HEADER to PINOCCHIO_MOVED_HEADER
lcaba algorithm:
PointContactConstraintModelTpl, PointAnchorConstraintModelTpl, FrameAnchorConstraintModelTpl, JointLimitConstraintModelTpl and JointFrictionConstraintModelTpl constraint modelsConstraintModelTpl/ConstraintDataTpl encapsulate all constraints models and dataDelassusOperatorDenseTpl, DelassusOperatorSparseTpl, DelassusOperatorCholeskyExpressionTpl, DelassusOperatorRigidBodyTplADMMConstraintSolverTpl and PGSConstraintSolverTpl algorithms:
pinocchio/math.hpppinocchio/spatial.hpppinocchio/mutlibody.hpplcaba algorithm in pinocchio/algorithm/loop-constrained-aba.hpp
computeJointMinimalOrdering in pinocchio/constraints.hpp
lcabapinocchio/constraints.hpp
PointContactConstraintModel: models a unilateral contact constraint with coulomb friction conePointAnchorConstraintModel: models a point-wise equality constraint (bilateral constraint)FrameAnchorConstraintModel: models a frame-wise equality constraint (bilateral constraint)JointLimitConstraintModel: models a component-wise joint limit lower/upper bound constraintJointFrictionConstraintModel: models a component-wise joint friction lower/upper bound constraintpinocchio/algorithm/delassus.hppADMMConstraintSolverTpl in pinocchio/algorithm/solvers/admm-solver.hpp
PGSConstraintSolverTpl in pinocchio/algorithm/solvers/pgs-solver.hpp
pinocchio/multibody/liegroup.hpp
tangentMap: transforms a configuration variation into a small variation expressed in the parametric spacetangentMapProduct and tangentMapTransport: apply tangentMap while exploiting sparsityJointModelBase:
jointQrows and jointQcols that make selections of size NQjointQVMap that make selections of size NQ x NVlieGroup that returns the Lie group instance associated to a jointlieGroup function that returns the Lie group instance associated to a modelmjcf::buildModel overload to load new constraint API from MJCFsdf::buildModel overload to load new constraint API from SDFpinocchio.buildModelFromMJCFAndRootJoint load model with a custom root jointpinocchio.buildModelAndConstraintFromMJCF load model and constraints (new API)pinocchio.buildModelAndLegacyConstraintFromMJCF load model and constraints (old API)PINOCCHIO_DISABLE_UNSUPPORTED_WARNINGS C++ definition to disable unsupported algorithm warningsPINOCCHIO_BUILD_MPFR_TESTING CMake option to build MPFR testspinocchio/utils/alloca.hpp: Helpers for mapping stack allocation for Eigen::Mappinochio/container/eigen-storage.hpp: Introduce internal::EigenStorageTplpinochio/container/matrix-stack.hpp: Introduce internal::MatrixStackTplpinochio/container/double-entry-container.hpp: Introduce internal::DoubleEntryContainerinternal::MatrixBlockElementTpl in math.hppinternal::BlockDiagonalMatrixTpl in math.hppinternal::matrix_product in math.hppinternal::matrix_inversion in math.hppinternal::matrix_inversion_code_generated in math.hpplibsdformat > 14#pragma oncevisualizer-visitor.hppPINOCCHIO_PRAGMA_DEPRECATED_HEADER to PINOCCHIO_MOVED_HEADERhpp-fcl by coal (see doc/_porting.md):
pinocchio/multibody/fcl.hpp moved at pinocchio/multibody/coal.hpppinocchio/serialization/fcl.hpp moved at pinocchio/serialization/coal.hpppinocchio/collision/fcl-pinocchio-conversions.hpp moved at pinocchio/collision/coal-pinocchio-conversions.hpppinocchio/bindings/python/collision/fcl/transform.hpp moved at pinocchio/bindings/python/collision/coal/transform.hpppinocchio::toFclTransform3f replaced by pinocchio::toCoalTransform3sPINOCCHIO_WITH_HPP_FCL replaced by PINOCCHIO_WITH_COLLISIONpinocchio.WITH_HPP_FCL and pinocchio.WITH_HPP_FCL_BINDINGS replaced by pinocchio.WITH_COLLISIONpinocchio.hppfcl replaced by pinocchio.coalbuildModelFromMJCF(filename, root_joint, root_joint_name) replaced by buildModelFromMJCFAndRootJoint and buildModelAndLegacyConstraintsFromMJCFbuildModelFromSdf replaced by buildModelAndLegacyConstraintsFromSdfEigen::aligned_allocator:
PINOCCHIO_ALIGNED_STD_VECTOR replaced by std::vectorPINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR replaced by std::vectorpinocchio::container::aligned_vector replaced by std::allocatorpinocchio/container/aligned-vector.hpppinocchio::python::StdAlignedVectorPythonVisitorpinocchio/bindings/python/multibody/joint/joint.hpp replaced by pinocchio/bindings/python/multibody/joint/joint-model.hpppinocchio/bindings/python/utils/registration.hpp replaced by eigenpy/registration.hpppinocchio/bindings/python/utils/copyable.hpp replaced by eigenpy/copyable.hpppinocchio/bindings/python/utils/deprecation.hpp replaced by eigenpy/deprecation-policy.hppforwardDynamicsimpulseDynamicsgetKKTContactDynamicMatrixInverseinitConstraintDynamicsBaumgarteCorrectorParametersTpl constructor: scalar are used instead of vectorsContactCholeskyDecompositionTpl, replaced by ConstraintCholeskyDecompositionTplDelassusCholeskyExpressionTpl, replaced by DelassusOperatorCholeskyExpressionTplConstraintCholeskyDecompositionTpl to ease online resizingConstraintCholeskyDecompositionTpl::allocate replaced by ConstraintCholeskyDecompositionTpl::rebuildConstraintCholeskyDecompositionTpl constructordeprecated-macros.hpp and deprecated-namespaces.hpppinocchio/deprecation.hpp, directly use generated pinocchio/deprecated.hppdoc/_porting/porting-3-to-4.md)PINOCCHIO_WITH_CXX{11,14,17}_SUPPORT definesPINOCCHIO_WITH_EIGEN_TENSOR_MODULE defineRTSan instead of EIGEN_RUNTIME_NO_MALLOC:
CHECK_RUNTIME_MALLOC CMake optionPINOCCHIO_EIGEN_CHECK_MALLOC C++ definitionPINOCCHIO_EIGEN_MALLOC* macrosgettimeofday definition on Windowsoperator-(timeval, timeval) definitionPython: add overload of BaseVisualizer::play() to VisualizerPythonVisitor
BaseVisualizer::play() to VisualizerPythonVisitor (#2796)sdformat.cmake from jrl-cmakemodules (#2800)appendModel issues (#2807):
Continuous joints can now be parsed as mimic from a urdf file
pinocchio::graph::ModelGraph class
pinocchio::Model with any frame as root framepinocchio::Model with any joint as root jointpinocchio::graph::mergeGraphs functionpinocchio::graph::fixJointsGraphpinocchio::geometryModel using a pinocchio::graph::ModelGraphpinocchio::graph::ModelConfigurationConverter class
BUILD_STANDALONE_PYTHON_INTERFACE (#2714)JointModelMimic::hasConfigurationLimit() to return empty vector instead of delegating to mimicking joint (#2715)Change the default branch to devel
Add parsing meshes with vertices for MJCF format
std::shared_ptr<{,Geometry}{Model,Data}> in bindings (#2566)PINOCCHIO_WITH_CXX11_SUPPORT (#2564)Add pinocchio_python_parser target
pinocchio_python_parser target (#2475)pinocchio-test-cpp-parallel-geometry when built with Coal (#2502)Add GeometryObject::meshMaterial attribute
GeometryObject::meshMaterial attribute (#2084)pinocchio::mjcf::buildModel and pinocchio::mjcf::buildGeomAdd inverse dynamics (rnea) Python and C++ example
rnea) Python and C++ example (#2083)Ycrb[0] in crbaMinimal (#2040)log function (#2047)XYZQUATToSE3 Python binding function (#2073)buildGeomFromUrdf and buildGeomFromUrdfString Python binding functions (#2082https://github.com/stack-of-tasks/pinocchio/pull/2082)humanoid sample model (#2043)hpp-fcl < v2.0.0 (#2086)Fix support of recent versions of Boost for CppAD and CppADCodeGen by @jcarpent in https://github.com/stack-of-tasks/pinocchio/pull/2000
Add Motion::toHomogeneousMatrix by @stephane-caron in https://github.com/stack-of-tasks/pinocchio/pull/1946
Support force in pybind11 by @cmastalli in https://github.com/stack-of-tasks/pinocchio/pull/1868
JointModel.shortname in python bindings by @Danfoa in https://github.com/stack-of-tasks/pinocchio/pull/1892Fix Jlog6 documentation by @stephane-caron in https://github.com/stack-of-tasks/pinocchio/pull/1857
Fix registration of ptr to Python by @jcarpent in https://github.com/stack-of-tasks/pinocchio/pull/1832
build(deps): bump goanpeca/setup-miniconda from 1 to 2 by @dependabot in https://github.com/stack-of-tasks/pinocchio/pull/1790
Nothing published for this version
Elevate check for ambiguous input argument to an exception by @wxmerkt in https://github.com/stack-of-tasks/pinocchio/pull/1781
fix syntax for python 2 by @nim65s in https://github.com/stack-of-tasks/pinocchio/pull/1734
removeGeometryObject in python binding by @Jiayuan-Gu in https://github.com/stack-of-tasks/pinocchio/pull/1736Change 'typedef' to 'using', add curly braces by @the-raspberry-pi-guy in https://github.com/stack-of-tasks/pinocchio/pull/1476
This new release fixes bugs in MeshCat rendering, loading of ROS path and in the Centroidal dynamics derivatives
This new release fixes bugs in MeshCat rendering, loading of ROS path and in the Centroidal dynamics derivatives
extended support of serialization of FCL primitives
Enhancement:
Fixes:
improvement for handling collision/distance requests
This new release provides:
Your coding agent can read these notes before it upgrades. Set up the MCP server →