# MuJoCo Web 仿真平台 以 WebAssembly 为运行核心的本地机器人仿真、控制与强化学习调试平台。浏览器直接加载 MJCF、URDF、文件夹或 ZIP 工程,使用 Three.js 渲染,并通过 MuJoCo WASM 在本地执行物理仿真。 > 本仓库是面向 Web 产品的应用仓库,不再镜像 MuJoCo 的原生 C++、Python、MJX、Unity、桌面模拟器和上游测试源码。MuJoCo 运行时由官方 npm 包 [`@mujoco/mujoco`](https://www.npmjs.com/package/@mujoco/mujoco) 提供。 ## 功能概览 - MJCF/XML、URDF、文件夹和 ZIP 工程导入 - ROS `package://`、常见 URDF 兼容转换及 DAE 降级处理 - Three.js 模型、碰撞体、坐标系、关节轴、质心和惯量可视化 - 播放、暂停、单步、重置、变速、关节拖动与外力交互 - 浏览器内 Python 控制器(Pyodide) - ONNX 强化学习策略推理(ONNX Runtime Web) - 可选的本机 mjlab 训练桥接服务 - 响应式工作区、源码编辑、性能监控和中文诊断 ## 快速开始 环境要求:Node.js 24(版本见 `.nvmrc`)和 npm 11.17;仅使用训练桥接服务或执行 Python 检查时需要 Python 3.12。 ```bash nvm use npm install --global npm@11.17.0 npm ci npm run dev ``` 打开 Vite 输出的地址,默认是 。 ## 常用命令 ```bash npm run dev # 启动开发服务器 npm run build # 生产构建到 web-platform-dist/ npm run preview # 预览生产构建 npm run typecheck # TypeScript 检查 npm run lint # ESLint npm run check:format # Prettier 格式检查 npm test # Vitest 单元测试 npm run test:coverage # 核心模块覆盖率检查 npm run test:e2e # Playwright Chromium 浏览器测试 npm run test:training-server # Python 训练桥接服务测试 npm run check # 除 E2E 和 Ruff 外的完整检查 # 修改 training_server/ 时额外执行 python3 -m pip install -r requirements-dev.txt npm run lint:python ``` ## 仓库结构 ```text . ├── 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`](web_platform/README.md),训练服务说明见 [`training_server/README.md`](training_server/README.md)。 ## 数据与安全边界 模型、资源、Python 控制器和 ONNX 策略默认只在当前浏览器会话中处理,不上传到服务器。训练桥接服务只监听本机回环地址,并仅执行服务端允许列表中的任务。 ## 上游与许可证 本项目使用 Google DeepMind 的 MuJoCo WebAssembly npm 包,并保留 Apache License 2.0 许可证。MuJoCo 是 Google DeepMind 的开源项目;本仓库不是 Google 官方支持的产品。