{"library":"pin","title":"Pinocchio","description":"Pinocchio is a C++ library with Python bindings for efficient computation of Rigid Body Dynamics (RBD) algorithms and their analytical derivatives. Primarily used in robotics, biomechanics, and computer graphics, it provides state-of-the-art algorithmic solutions for poly-articulated systems, including closed-loop mechanisms and frictional contact problems. It is actively developed by Inria and is currently at version 3.9.0.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pin"],"cli":null},"imports":["import pinocchio as pin"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pinocchio as pin\nimport numpy as np\n\n# Create a default model (e.g., a simple 6-DOF manipulator)\nmodel = pin.buildSampleModel()\n\n# Create a data structure for algorithm buffering\ndata = model.createData()\n\n# Generate a random configuration\nq = pin.randomConfiguration(model)\n\n# Compute forward kinematics\npin.forwardKinematics(model, data, q)\npin.updateFramePlacements(model, data)\n\n# Print the position of the end-effector frame (last frame in the model)\n# (Note: model.frames is a list of all frames, data.oMf[frame.id] is its placement)\nend_effector_frame_id = model.frames[-1].body\nend_effector_position = data.oMf[end_effector_frame_id].translation\n\nprint(f\"Model name: {model.name}\")\nprint(f\"Random configuration (q): {q.T}\")\nprint(f\"End-effector position: {end_effector_position.T}\")","lang":"python","description":"This quickstart code initializes a Pinocchio model (a simple 6-DOF manipulator), generates a random joint configuration, computes the forward kinematics, and then prints the position of the end-effector frame. This demonstrates basic model loading and kinematics computation.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.9.0","pypi_latest":"3.9.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":9.5,"avg_import_s":0.33,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pin","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pin","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":9.7,"import_time_s":0.26,"mem_mb":9.4,"disk_size":"465M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pin","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pin","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":9.1,"import_time_s":0.48,"mem_mb":9.4,"disk_size":"472M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pin","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pin","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":8.4,"import_time_s":0.33,"mem_mb":8.9,"disk_size":"461M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pin","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pin","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":8.1,"import_time_s":0.34,"mem_mb":9.3,"disk_size":"460M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pin","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pin","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":12.3,"import_time_s":0.26,"mem_mb":9.1,"disk_size":"475M"}]}}