google-deepmind/mujoco
硬件与物联网面向机器人、生物力学和机器学习研究的通用物理引擎,用于对多关节结构和接触进行快速、准确的仿真。
项目介绍
MuJoCo(Multi-Joint dynamics with Contact)是一个通用物理引擎,用于仿真多关节结构与环境之间的接触和动力学,由 Google DeepMind 维护,服务于机器人、生物力学、图形与动画、机器学习等需要快速且准确仿真的领域。
运行时是性能优先的 C 库:内置 XML 编译器预先分配底层数据结构,仿真步进时不再做运行时分配。模型用 MJCF(MuJoCo 的 XML 格式)描述,库还提供大量计算物理量的工具函数,以及 OpenGL 渲染的原生交互式查看器。Python 绑定自带一份 MuJoCo,另有 Unity 插件和 JavaScript/WebAssembly 支持。
基于 JAX 的分支 MuJoCo XLA(MJX)支持梯度相关的工作,例如用从物理步进自动推导的解析梯度训练运动策略。
快速使用
前提:Python 绑定要求 Python 3.11 或更高版本。
- 安装 Python 包(自带原生库):
pip install mujoco
-
在 Google Colab 上完成入门教程,内容包括加载模型、推进仿真、读取状态与传感器数据。
-
后续可按需打开 README 中的其他笔记本:程序化编辑模型、多线程 rollout 模块、LQR 控制、非线性最小二乘、MJX 基础、可微物理训练。
结果:完成教程后,你可以在 Python 中加载 MJCF 模型、推进仿真并检查仿真状态。
如果想用原生交互式查看器 simulate,按文档中的 Getting Started 步骤操作;录屏视频展示了查看器的实际使用。Linux(x86-64、AArch64)、Windows(x86-64)和 macOS(universal)的预编译二进制在 releases 页面。
使用约束
- Python 包要求 Python 3.11 及以上;Linux 预编译 wheel 面向
manylinux2014,不兼容的发行版需要按 Python 绑定文档从源码构建。 - 从源码构建另有文档说明,且
main分支最新提交可能不稳定,一般应优先使用版本化发布。 - 项目计划每月第一周发布版本;自 3.5.0 起采用修改版语义化版本规范(见 VERSIONING.md),对可复现性有要求时应固定版本。
- 源码使用 Apache-2.0 许可证;
doc/下的文档图片和视频采用 CC BY 4.0,box 碰撞代码另有版权声明。MuJoCo 不是 Google 官方支持的产品。 - 提问请使用 Asking for Help 讨论区,GitHub Issues 用于缺陷报告和功能请求。
HotRepo 点评
在 2026-11-01 的 C++ 日榜中,项目以新增 23 Star 排在第 8 位,累计 16,013 Star、1,911 Fork。站内没有记录其全部语言日榜的历史最好名次,因此该记录只能说明当天的位置,不能据此判断趋势。
2026-04-19 的 HN 讨论帖获得 116 分、24 条评论,内容偏具体用例而非泛泛称赞。有评论指出,StuffMadeHere 的迷你高尔夫仿真视频是近期关注度的来源之一;该串另一条回复认为仿真与现实的贴合程度相当出色。还有回复提到 JAX 后端让梯度优化比较直接,这和上文的可微物理教程对应。同一线程中有评论者介绍了一个早期的浏览器查看器,可用 URL 分享自己的模型,地址为 live.mujoco.org;该功能仍属实验阶段,手机端支持还比较粗糙。
相关绑定与转换工具
除官方的 Python、JavaScript/WebAssembly、C#/Unity 绑定外,README 还列出 MATLAB Simulink、Swift、Java、Julia、Rust 的社区绑定,以及从 OpenSim、SDFormat、OBJ、Onshape CAD 装配体转换的工具。选用具体绑定前,应先查看其自身文档,确认 API 覆盖范围和维护状态。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。