mujoco
MuJoCo(全称 Multi-Joint dynamics with Contact)是一款由 Google DeepMind 维护的通用物理引擎,专为需要快速、精准模拟关节结构与环境交互的场景而设计。它核心解决了复杂机械系统动力学计算及接触力处理的难题,能够高效仿真机器人、生物力学模型以及各类铰接结构的运动状态。
这款工具主要面向研究人员和开发者,广泛应用于机器人学、机器学习、图形动画等领域。MuJoCo 的独特亮点在于其极致的性能优化:底层采用预分配的 C 语言数据结构,确保运行时模拟速度最大化;同时提供原生 OpenGL 交互式可视化界面,方便实时调试。除了强大的 C 接口,它还提供了便捷的 Python 绑定和 Unity 插件,降低了使用门槛。对于希望快速上手的用户,官方准备了丰富的 Google Colab 教程笔记,涵盖从基础操作、模型编辑到基于 JAX 的可微分物理训练等进阶内容。无论是进行控制算法验证,还是开发复杂的物理仿真环境,MuJoCo 都是业界公认的高效选择。
使用场景
某机器人实验室团队正在研发一款双足人形机器人,需要在将算法部署到昂贵的实体硬件前,验证其复杂步态控制策略在真实物理环境中的稳定性。
没有 mujoco 时
- 接触模拟失真:传统引擎难以精确处理脚底与地面的复杂摩擦和碰撞,导致机器人在仿真中频繁“穿模”或无故摔倒,无法反映真实受力情况。
- 开发周期冗长:由于仿真可信度低,团队不得不依赖实机调试,每次迭代都面临硬件磨损风险且耗时数天,严重拖慢研发进度。
- 计算效率低下:在进行大规模强化学习训练时,原有模拟器运算速度慢,无法支持高并发的数据采样,模型收敛需要数周时间。
- 建模门槛高:缺乏高效的 XML 编译器和可视化工具,构建精细的关节连杆模型需手动编写大量底层代码,极易出错。
使用 mujoco 后
- 物理反馈精准:mujoco 独有的接触动力学算法完美还原了行走时的地面反作用力与滑动摩擦,仿真步态与实机表现高度一致。
- 安全快速迭代:团队可在虚拟环境中完成 90% 的极端场景测试(如推搡、滑倒恢复),大幅减少实机试错成本,将迭代周期缩短至小时级。
- 训练加速显著:借助 mujoco 的高性能运行时模块及 MJX (JAX) 加速特性,强化学习策略的训练速度提升数十倍,几天内即可完成模型收敛。
- 工作流更流畅:利用内置的 XML 编译器和原生 OpenGL 可视化界面,研究人员能快速搭建并直观调试复杂的多关节生物力学模型。
mujoco 通过提供高保真、高效率的物理仿真环境,让人形机器人的算法研发从“高风险试错”转变为“可预测的数字化演进”。
运行环境要求
- Linux
- macOS
- Windows
未说明(原生 GUI 基于 OpenGL 渲染,非强制要求独立显卡)
未说明

快速开始
MuJoCo 是 Multi-Joint dynamics with Contact 的缩写。它是一个通用的物理引擎,旨在促进机器人技术、生物力学、图形与动画、机器学习以及其他需要快速且精确地模拟与环境交互的多关节结构领域的研究与开发。
本仓库由 Google DeepMind 维护。
MuJoCo 提供 C API,主要面向研究人员和开发者。其运行时仿真模块经过优化以实现最高性能,并基于内置 XML 编译器预先分配的低层数据结构进行操作。该库还包含使用 OpenGL 渲染的原生 GUI 交互式可视化功能。此外,MuJoCo 还提供了大量用于计算物理相关量的实用函数。
我们还提供 [Python 绑定] 和适用于 [Unity] 游戏引擎的插件。
文档
MuJoCo 的文档可在 [mujoco.readthedocs.io] 找到。即将在下一次发布中加入的新特性可以在“latest”分支的 [changelog] 中查看。
入门指南
有两种简单的方法可以开始使用 MuJoCo:
在您的机器上运行
simulate。 这段视频 展示了 MuJoCo 原生交互式查看器simulate的屏幕录制。请按照文档中“入门指南”部分的步骤,在您的机器上启动并运行simulate。探索我们的在线 IPython 笔记本。 如果您是 Python 用户,可以从我们在 Google Colab 上运行的教程笔记本开始:
- 入门教程教授 MuJoCo 的基础知识:
- 模型编辑教程展示了如何以程序化方式创建和编辑模型:
- rollout教程介绍了如何使用多线程的
rollout模块: - LQR教程通过合成一个线性二次控制器,使一个人形机器人单腿站立平衡:
- 最小二乘法教程解释了如何使用基于 Python 的非线性最小二乘求解器:
- MJX教程提供了使用 MuJoCo XLA 的示例,这是用 JAX 编写的 MuJoCo 分支:
- 可微分物理教程利用从 MuJoCo 物理步长自动推导出的解析梯度来训练运动策略:
安装
预编译二进制文件
版本化的发布可通过 GitHub 的 [releases 页面] 获取预编译的二进制文件,分别针对 Linux(x86-64 和 AArch64)、Windows(仅 x86-64)以及 macOS(通用)。这是推荐的使用方式。
从源代码构建
希望从源代码构建 MuJoCo 的用户,请参阅文档中的“从源代码构建”章节。请注意,main 分支顶端的提交可能不稳定。
Python (>= 3.10)
原生 Python 绑定随 MuJoCo 一起打包,可以通过 [PyPI] 安装:
pip install mujoco
请注意,预编译的 Linux wheel 针对 manylinux2014,兼容的发行版请参见 这里。有关从源代码构建绑定等更多信息,请参阅文档中的“Python 绑定”部分。
版本控制
我们计划每月的第一周发布 MuJoCo 的新版本。自 3.5.0 版起,我们的版本控制标准已改为修改后的语义化版本号,详情请参阅 [VERSIONING.md]。
贡献
我们欢迎社区参与:提问、寻求帮助、报告 bug 和提出功能请求。如需了解更多关于 bug 报告、功能请求及更高级别的贡献信息,请参阅我们的 贡献者指南 和 风格指南。
提问
问题和求助请求可通过 GitHub 的 "Asking for Help" Discussion 提出,内容应聚焦于具体的问题或疑问。
Bug 报告和功能请求
GitHub 的 Issues 专门用于 bug 报告、功能请求及其他开发相关主题。
相关软件
MuJoCo 是许多环境包的核心基础。以下列出了一些绑定和转换工具。
绑定
这些软件包为不同编程语言的用户提供了访问 MuJoCo 功能的途径:
第一方绑定:
- Python 绑定
- dm_control,Google DeepMind 的相关环境栈,包含 PyMJCF, 一个用于程序化操作 MuJoCo 模型的模块。
- JavaScript 绑定及 WebAssembly 支持(受 stillonearth 和 zalo 的社区项目启发;mjswan 在此基础上扩展了实时策略控制、交互式力应用等功能)。
- C# 绑定及 Unity 插件
第三方绑定:
- MATLAB Simulink:由 Manoj Velmurugan 开发的 Simulink 块库 for MuJoCo 仿真器。
- Swift:swift-mujoco
- Java:mujoco-java
- Julia:MuJoCo.jl
- Rust:MuJoCo-rs
转换工具
- OpenSim:MyoConverter 可将 OpenSim 模型转换为 MJCF 格式。
- SDFormat:gz-mujoco 是一个双向的 SDFormat ↔ MJCF 转换工具。
- OBJ:obj2mjcf 是一个脚本,用于将复合 OBJ 文件转换为可加载的 MJCF 模型。
- onshape:Onshape to Robot 可将 onshape CAD 装配体转换为 MJCF 格式。
引用
如果您在已发表的研究中使用 MuJoCo,请引用以下文献:
@inproceedings{todorov2012mujoco,
title={MuJoCo: 一种基于模型控制的物理引擎},
author={Todorov, Emanuel and Erez, Tom and Tassa, Yuval},
booktitle={2012 IEEE/RSJ 国际智能机器人与系统会议},
pages={5026--5033},
year={2012},
organization={IEEE},
doi={10.1109/IROS.2012.6386109}
}
许可与免责声明
版权所有 © 2021 DeepMind Technologies Limited。
盒状碰撞代码(engine_collision_box.c)
归 Svetoslav Kolev 所有,版权 © 2016。
doc 目录中的 ReStructuredText 文档、图片和视频根据知识共享署名 4.0(CC BY 4.0)许可协议提供。您可以在
https://creativecommons.org/licenses/by/4.0/legalcode 获取该许可协议的副本。
源代码采用 Apache 许可协议第 2.0 版授权。您可以在 https://www.apache.org/licenses/LICENSE-2.0 获取该许可协议的副本。
本产品并非 Google 官方支持的产品。
[从源码构建]:https://mujoco.readthedocs.io/en/latest/programming#building-from-source [入门指南]:https://mujoco.readthedocs.io/en/latest/programming#getting-started [Unity]:https://unity.com/ [发布页面]:https://github.com/google-deepmind/mujoco/releases [mujoco.readthedocs.io]:https://mujoco.readthedocs.io [变更日志]:https://mujoco.readthedocs.io/en/latest/changelog.html [Python 绑定]:https://mujoco.readthedocs.io/en/stable/python.html#python-bindings [PyPI]:https://pypi.org/project/mujoco/
版本历史
3.7.02026/04/143.6.02026/03/113.5.02026/02/133.4.02025/12/053.3.72025/10/143.3.62025/09/163.3.52025/08/083.3.42025/07/093.3.32025/06/113.3.22025/04/283.3.12025/04/103.3.02025/02/273.2.72025/01/153.2.62024/12/023.2.52024/11/053.2.42024/10/163.2.32024/09/163.2.22024/08/083.2.12024/08/063.2.02024/07/15常见问题
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
funNLP
funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。
cs-video-courses
cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。
