ManiSkill macOS 安装指南:CPU 仿真与 Vulkan 渲染环境的完整搭建
【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill
ManiSkill(ManiSkill3)是一款基于 SAPIEN 构建的 GPU 并行化机器人操作仿真器与基准框架。在 macOS 上,它可以完整运行基于 CPU 的物理仿真与标准渲染管线,但 GPU 并行仿真暂不支持。本文基于官方 macOS 安装文档,完整讲解从 Python 环境创建、包安装、Vulkan SDK 配置到仿真验证的全部步骤,并结合仓库源码说明底层依赖与可选参数,帮助你在 Mac 上快速搭建可用于推理、本地调试与自定义任务开发的 ManiSkill 环境。
macOS 支持范围与适用场景
在动手安装前,先明确 macOS 平台的能力边界。官方安装文档中的系统支持矩阵(见 installation.md)给出了如下结论:
| 系统 / GPU | CPU 仿真 | GPU 仿真 | 渲染 |
|---|---|---|---|
| Linux / NVIDIA GPU | ✅ | ✅ | ✅ |
| Windows / NVIDIA GPU | ✅ | ❌ | ✅ |
| Windows / AMD GPU | ✅ | ❌ | ✅ |
| WSL / 任意 | ✅ | ❌ | ❌ |
| macOS / 任意 | ✅ | ❌ | ✅ |
也就是说,macOS 上可以稳定使用CPU 物理仿真 + 标准渲染(Vulkan/MoltenVK),而 GPU 并行仿真(num_envs > 1时的 GPU 模式)尚不支持。这一限制主要源于底层 SAPIEN 包的能力范围。因此 macOS 的最佳使用场景是:模型推理、本地调试、以及自定义任务/机器人的开发;而视觉数据生成、强化学习训练等高渲染强度工作流,官方仍强烈建议在带 CUDA GPU 的机器上运行(即使 Google Colab 通常也更快)。
第一步:准备 Python 环境
官方建议使用uv或conda/mamba创建独立的 Python 环境,Python 版本要求>= 3.10(文档示例使用 3.11)。仓库的 setup.py 中声明python_requires=">=3.9",3.11 是目前文档推荐且经过验证的稳定选择。
方式一:uv(推荐,速度快)
uv venv -p python3.11 uv pip install mani_skill-nightly方式二:conda/mamba
conda create -n ms3 "python=3.11" conda activate ms3 pip install mani_skill-nightly关于包名:mani_skill-nightly是每日更新的夜间构建版,只要上游代码有变更就会重新发布,适合希望第一时间使用新特性的用户;稳定的正式版则使用pip install mani_skill。从 setup.py 可以看到,Darwin 平台会拉取sapien>=3.0.2作为核心依赖,这正是 macOS 上 CPU 仿真与渲染的物理引擎底座。
安装完成后,还需要额外安装 Vulkan 渲染驱动,见下一节。
第二步:安装 Vulkan SDK
ManiSkill 在 macOS 上通过 Vulkan 的 macOS 实现MoltenVK完成渲染,因此必须先安装 LunarG 官方提供的 Vulkan SDK for macOS。具体流程如下:
- 从 LunarG 官网的 SDK 下载页面获取macOS 版 Vulkan SDK 安装器(.dmg 文件),文档对应的版本为
1.3.290.0。 - 打开
.dmg后会进入安装流程。第一步是选择安装目录(Installation Folder),使用默认目录即可,但务必记住这个路径——稍后需要将其写入环境变量。
- 接下来进入组件选择(Select Components)页面。为了最小化安装占用,官方建议只勾选运行所需的组件,不需要安装开发库(Development libraries)——它们占用大量磁盘空间且并非必需。例如截图中的 "Development libraries for iOS" 就是可以取消勾选的项。
- 按向导完成剩余安装步骤(许可协议等)。默认情况下 SDK 会被安装到
~/VulkanSDK目录,安装器会明确提示实际路径,请记下它。
第三步:配置 Vulkan 环境变量
安装完成后,需要将 SDK 路径与相关文件位置写入环境变量。以 SDK 安装在~/VulkanSDK/1.3.290.0/macOS为例(请替换为你的实际路径):
export VULKAN_SDK=~/VulkanSDK/1.3.290.0/macOS # 替换为 SDK 实际安装路径 export PATH=$VULKAN_SDK/bin:$PATH export VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json export VK_LAYER_PATH=$VULKAN_SDK/share/vulkan/explicit_layer.d export DYLD_LIBRARY_PATH=$VULKAN_SDK/lib:$DYLD_LIBRARY_PATH各变量的作用:
VULKAN_SDK:Vulkan SDK 根目录,供后续变量引用;PATH:将 SDK 的bin目录加入可执行文件搜索路径(含vulkaninfo等调试工具);VK_ICD_FILENAMES:显式指定 MoltenVK 的 ICD(Installable Client Driver)描述文件,告知 Vulkan Loader 使用哪个驱动实现;VK_LAYER_PATH:指定 Vulkan 显式层的搜索路径;DYLD_LIBRARY_PATH:确保 macOS 动态链接器能找到 SDK 的动态库(libMoltenVK.dylib等)。
重要:为了让这些变量在新开终端时自动生效,必须将它们追加到 shell 配置文件(~/.zshrc或~/.bashrc)中,例如:
echo 'export VULKAN_SDK=~/VulkanSDK/1.3.290.0/macOS' >> ~/.zshrc # 其余 export 同理追加,然后执行 source ~/.zshrc第四步:验证安装
1. 测试 SAPIEN 渲染(hello world)
首先运行 SAPIEN 的官方示例,验证底层渲染链路是否打通:
python -m sapien.example.hello_world如果一切正常,会弹出一个 GUI 窗口,显示平面上一个红色立方体。能正常看到并交互该窗口即代表渲染环境就绪。
注意:该命令的首次运行有可能因段错误(segmentation fault)失败,这通常是 MoltenVK/Vulkan 首次初始化的已知现象,直接再运行一次即可。
2. 测试 ManiSkill 任务
接着用 ManiSkill 自带示例运行一个真实任务(PushT-v1),以人类可交互的 GUI 模式渲染:
python -m mani_skill.examples.demo_random_action -e PushT-v1 --render-mode="human"这里用到的demo_random_action入口位于 demo_random_action.py,它基于tyro提供了完整的命令行参数体系。除-e(环境 ID)与--render-mode外,常用参数还包括:
| 参数 | 别名 | 默认值 | 说明 |
|---|---|---|---|
--env-id | -e | PushCube-v1 | 要仿真的任务环境 ID |
--obs-mode | -o | none | 观测模式,如state、rgbd |
--control-mode | -c | None | 控制模式,如pd_ee_delta_pose |
--num-envs | -n | 1 | 并行环境数量(macOS 上仅 CPU 后端) |
--sim-backend | -b | auto | 仿真后端:auto/cpu/gpu |
--render-backend | -rb | gpu | 渲染后端:gpu/cpu/none |
--shader | — | default | 渲染着色器,rt为光线追踪 |
--record-dir | — | None | 录制视频的输出目录 |
--seed | -s | None | 随机数与仿真种子 |
第五步:性能优化与使用建议
部分任务场景较为复杂、渲染开销大,GPU 较弱的 Mac 在 GUI 模式下可能出现帧率偏低的情况。官方给出了两条立即可用的优化手段:
- 暂停仿真以检查场景:在 GUI 中按下
Control + Tab切换到暂停(Pause)状态,便于静态观察; - 缩小窗口:直接拖拽窗口角落缩小渲染区域,可显著降低渲染负载。
同时再次强调使用定位:macOS 主要用于推理、本地调试和开发(例如编写自定义任务或自定义机器人)。若要进行大规模视觉数据采集或 RL 训练,请优先选择带 CUDA 的 GPU 机器。
另外,ManiSkill 的大量资产与演示数据集默认不会随包下载。可通过设置MS_ASSET_DIR指定数据存放目录(默认~/.maniskill/data,其路径解析逻辑见 mani_skill/init.py):
export MS_ASSET_DIR=path/to/where/to/save/all/mani_skill_data常见问题排查
若安装后渲染异常,可对照以下已知现象:
- 首次运行 hello world 段错误:如上文所述,重复运行一次即可恢复;
RuntimeError: vk::Instance::enumeratePhysicalDevices: ErrorInitializationFailed:Vulkan 驱动未正确加载,请检查VK_ICD_FILENAMES指向的MoltenVK_icd.json文件是否存在、路径是否正确;- 提示缺少必需的 Vulkan 扩展:通常意味着驱动配置不完整,CPU 资源仍可用,但渲染不可用;
- 反复出现段错误:优先复查
VULKAN_SDK、DYLD_LIBRARY_PATH等环境变量是否已正确持久化到.zshrc/.bashrc并在当前会话生效(echo $VULKAN_SDK可快速确认)。
若问题持续存在,可向 ManiSkill 项目提交 GitHub Issue 或发起 Discussion 寻求社区帮助。
总结
macOS 虽然不是 ManiSkill 的主要支持平台,但通过「Python 环境 +mani_skill-nightly+ Vulkan SDK/MoltenVK + 环境变量」四步配置,即可完整获得 CPU 仿真与标准渲染能力,足以支撑推理验证、任务调试与自定义开发。记住官方给出的定位:把渲染密集的重活交给 CUDA GPU 机器,把 macOS 当作便携的开发与调试环境,即可最大化这套配置的价值。
【免费下载链接】ManiSkillManipulation Skill Framework, an open source GPU parallelized robotics simulator and benchmark项目地址: https://gitcode.com/GitHub_Trending/ma/ManiSkill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考