drake
Model-based design and verification for robotics
What it is and what it does
Drake is a robotics toolbox developed by the MIT Computer Science and Artificial Intelligence Lab and now led by the Toyota Research Institute. It provides tools for analyzing robot dynamics and designing control systems with an emphasis on optimization-based approaches. The package integrates with standard scientific Python libraries (numpy, matplotlib) and includes visualization via pydot and configuration via PyYAML.
It is primarily used by roboticists and control engineers to model, simulate, and verify robotic systems. The package targets modern Python (3.12+) and is distributed as compiled wheels for Linux and macOS, making installation straightforward on supported platforms. Its heavy reliance on optimization—particularly via the Mosek solver—means it is best suited for users working on trajectory planning, motion control, and system verification rather than general-purpose robotics tasks.
Use it for:
- Simulate and analyze robot arm dynamics for trajectory planning and control design.
- Verify robot locomotion controllers using optimization-based methods.
- Design and test manipulation tasks with dynamics constraints.
- Build and validate multi-robot coordination strategies.
- Prototype and validate control algorithms before hardware deployment.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Drake is a robotics toolbox for analyzing robot dynamics and building control systems using optimization-based design and verification methods.
Yes, if you are working on robot dynamics, control design, or trajectory optimization and can work with Python ≥3.12. The active maintenance, recent release, and zero known vulnerabilities are positive signals. However, verify that the Mosek solver dependency and mixed licensing (BSD + proprietary) align with your project's requirements and budget before committing.
Install
drake on PyPI
pip
pip install drakeuv
uv add drakepoetry
poetry add drakeInstalling drake
Before you install
Medium install friction due to compiled wheels for specific Python versions (3.12–3.14) and platforms (Linux, macOS ARM64/x86_64). Active maintenance with a release 30 days ago. Requires Python ≥3.12 and has five runtime dependencies including the commercial solver Mosek.
License in practice
Licensed under BSD and other proprietary terms ("Various"). The permissive treatment suggests no viral copyleft, but the mixed licensing warrants review of the full license terms before commercial use.
Quickstart
pip install drake
import drake
plant = drake.systems.LeafSystem()
Requires Python ≥3.12; Mosek solver (a runtime dependency) may require a separate license or installation.
Verify before relying
- Whether Mosek is freely available or requires a commercial license for production use.
- Full scope of "Various" license terms and any restrictions on derivative works or commercial deployment.
- Availability of pre-built wheels for all target platforms and Python versions in your environment.
Package facts
| License | Various (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — matplotlib, numpy, pydot, PyYAML, Mosek |
| Maintenance | actively maintained — 30 days since the last release |
| First released | |
| Downloads | 265,414/month — #8,325 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: drake-1.55.0-cp312-cp312-manylinux_2_34_aarch64.whl; drake-1.55.0-cp312-cp312-manylinux_2_34_x86_64.whl; drake-1.55.0-cp313-cp313-macosx_15_0_arm64.whl; drake-1.55.0-cp313-cp313-manylinux_2_34_aarch64.whl; drake-1.55.0-cp313-cp313-manylinux_2_34_x86_64.whl; drake-1.55.0-cp314-cp314-macosx_15_0_arm64.whl; drake-1.55.0-cp314-cp314-manylinux_2_34_aarch64.whl; drake-1.55.0-cp314-cp314-manylinux_2_34_x86_64.whl
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
python-motion-planningImplements motion planning algorithms including…
copyleft · top 15,000 on PyPI
flexivrdkFlexiv Robotic Development Kit (RDK) provides…
permissive · top 15,000 on PyPI
libpinocchiolibpinocchio provides efficient rigid body…
permissive · top 15,000 on PyPI
pinPython interface to a C++ rigid-body dynamics…
permissive · top 5,000 on PyPI
robosuiterobosuite is a MuJoCo-powered simulation…
unclear · top 15,000 on PyPI
toppraComputes time-optimal path parameterization for…
permissive · top 15,000 on PyPI
mjlabmjlab provides a GPU-accelerated reinforcement…
permissive · top 15,000 on PyPI
robotframeworkRobot Framework is a generic open-source…
permissive · top 5,000 on PyPI
gym-alohaProvides a Gymnasium environment for the ALOHA…
permissive · top 15,000 on PyPI
aero-open-sdkProvides Python control over TetherIA's Aero…
permissive · top 15,000 on PyPI