MuJoCo Web 仿真平台

以 WebAssembly 为运行核心的本地机器人仿真、控制与强化学习调试平台。浏览器直接加载 MJCF、URDF、文件夹或 ZIP 工程,使用 Three.js 渲染,并通过 MuJoCo WASM 在本地执行物理仿真。

本仓库是面向 Web 产品的应用仓库,不再镜像 MuJoCo 的原生 C++、Python、MJX、Unity、桌面模拟器和上游测试源码。MuJoCo 运行时由官方 npm 包 @mujoco/mujoco 提供。

功能概览

  • MJCF/XML、URDF、文件夹和 ZIP 工程导入
  • ROS package://、常见 URDF 兼容转换及 DAE 降级处理
  • Three.js 模型、碰撞体、坐标系、关节轴、质心和惯量可视化
  • 播放、暂停、单步、重置、变速、关节拖动与外力交互
  • 浏览器内 Python 控制器(Pyodide
  • ONNX 强化学习策略推理(ONNX Runtime Web
  • 可选的本机 mjlab 训练桥接服务
  • 响应式工作区、源码编辑、性能监控和中文诊断

快速开始

环境要求:Node.js 24+;仅使用训练桥接服务时需要 Python 3。

npm install
npm run dev

打开 Vite 输出的地址,默认是 http://localhost:5173/

常用命令

npm run dev                  # 启动开发服务器
npm run build                # 生产构建到 web-platform-dist/
npm run preview              # 预览生产构建
npm run typecheck            # TypeScript 检查
npm run lint                 # ESLint
npm test                     # Vitest 单元测试
npm run test:e2e             # Playwright 浏览器测试
npm run test:training-server # Python 训练桥接服务测试
npm run check                # 除 E2E 外的完整检查

仓库结构

.
├── web_platform/      React、TypeScript、Three.js 前端与测试夹具
├── training_server/   可选的本机强化学习训练桥接服务
├── controllers/       可导入平台的 Python 控制器示例
├── package.json       根目录统一开发入口
└── LICENSE            Apache License 2.0

核心前端分层:

  • web_platform/src/app/:工作区、工具栏、面板和对话框
  • web_platform/src/project/:工程导入、路径规范化和 MEMFS
  • web_platform/src/simulation/MuJoCo WASM 会话与仿真调度
  • web_platform/src/viewer/:Three.js 渲染、选择和物理交互
  • web_platform/src/controller/Pyodide 控制器运行时
  • web_platform/src/rl/ONNX 策略运行时

详细使用说明见 web_platform/README.md,训练服务说明见 training_server/README.md

数据与安全边界

模型、资源、Python 控制器和 ONNX 策略默认只在当前浏览器会话中处理,不上传到服务器。训练桥接服务只监听本机回环地址,并仅执行服务端允许列表中的任务。

上游与许可证

本项目使用 Google DeepMind 的 MuJoCo WebAssembly npm 包,并保留 Apache License 2.0 许可证。MuJoCo 是 Google DeepMind 的开源项目;本仓库不是 Google 官方支持的产品。

S
Description
No description provided
Readme Apache-2.0 157 MiB
Languages
TypeScript 73.9%
Python 25.1%
CSS 0.7%
JavaScript 0.2%
HTML 0.1%