robot_descriptions
Import open source robot description as Python modules.
What it is and what it does
robot_descriptions is a Python library that provides a unified interface to import open-source robot descriptions as Python modules. When you import a description for the first time, it automatically downloads and caches the files locally for future use. The library wraps descriptions in multiple formats (URDF and MJCF) and exposes them through loader functions tailored to popular robotics simulation and analysis software.
The package is designed for roboticists and simulation engineers who need to work with standardized robot models across different tools. Instead of manually managing robot description files and format conversions, you import a description by name and get back an object ready to use in your chosen robotics software—whether that's MuJoCo for physics simulation, Pinocchio for dynamics computation, or PyBullet for interactive visualization. The caching mechanism means subsequent imports are instant.
Use it for:
- Load a robot arm description into Pinocchio to compute inverse kinematics or dynamics.
- Fetch and cache a quadruped model in MuJoCo for physics-based simulation and control experiments.
- Import a humanoid description into PyBullet for reinforcement learning training.
- Visualize a mobile manipulator in RoboMeshCat or MeshCat without manually downloading files.
- Access standardized robot descriptions from the command line using the CLI tool for quick inspection.
- Render Xacro-based descriptions to URDF automatically when loading robot models.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Downloads and caches open-source robot descriptions (URDF and MJCF formats) as importable Python modules, with loaders for MuJoCo, Pinocchio, iDynTree, PyBullet, RoboMeshCat, and yourdfpy.
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and solves a real problem for robotics work—centralizing access to open-source robot descriptions across multiple simulation tools. It's particularly valuable if you work with multiple robotics frameworks or need reproducible model loading in scripts and experiments.
Install
robot-descriptions on PyPI
pip
pip install robot-descriptionsuv
uv add robot-descriptionspoetry
poetry add robot-descriptionsInstalling robot_descriptions
Before you install
Low install friction with only two runtime dependencies (GitPython and tqdm). Package is actively maintained with a recent release (22 days old) and a stable codebase (807 stars, last commit 2026-08-04).
License in practice
Permissive license treatment means you can use this package freely in commercial and private projects without restrictive obligations, though individual robot descriptions may have their own licenses.
Quickstart
pip install robot_descriptions
from robot_descriptions.loaders.pinocchio import load_robot_description
robot = load_robot_description("upkie_description")
Requires Python 3.10 or later. The robotics software you want to load into (Pinocchio, MuJoCo, etc.) must be installed separately.
Verify before relying
- How many robot descriptions are currently available in the Awesome Robot Descriptions collection.
- Whether Xacro rendering (mentioned for some descriptions) requires additional system dependencies.
- Performance characteristics when caching large robot description files.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — GitPython, tqdm |
| Maintenance | actively maintained — 22 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 107,636/month — #12,605 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: robot_descriptions-3.1.0-py3-none-any.whl
Keywords: robot, description, urdf, mjcf
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pybulletPyBullet provides physics simulation, robotics…
permissive · top 15,000 on PyPI
yourdfpyLoads, manipulates, validates, and visualizes…
permissive · top 5,000 on PyPI
mujoco-usd-converterConverts MuJoCo MJCF robot model files into…
permissive · top 15,000 on PyPI
mjvisermjviser is a web-based viewer for MuJoCo…
permissive · top 15,000 on PyPI
libpinocchiolibpinocchio provides efficient rigid body…
permissive · top 15,000 on PyPI
minkmink solves inverse kinematics problems for…
permissive · top 15,000 on PyPI
cmeel-urdfdomParses URDF (U-Robot Description Format) XML…
permissive · top 5,000 on PyPI
mujoco-warpGPU-accelerated physics simulation for robotics…
permissive · top 15,000 on PyPI
pinPython interface to a C++ rigid-body dynamics…
permissive · top 5,000 on PyPI
xmacroxmacro is a command-line and Python tool for…
permissive · top 15,000 on PyPI