基于 C++17 的物理引擎,提供 Python 绑定,用于机器人与计算动画中关节体的运动学、动力学和接触仿真。
sail-sg/envpool
基于 C++ 的强化学习批量环境引擎,用线程池并行运行大量 Gym 风格环境。
- Star
- 1,533
- Fork
- 147
- 未关闭 Issue
- 16
- 最近提交
- 17天前
这是什么?
EnvPool 是一个强化学习环境的并行执行引擎。它用 C++ 和线程池管理一组环境,通过 pybind11 提供 Python 接口,一次调用即可同时推进多个环境。接口兼容 Gymnasium 与 dm_env,支持同步和异步两种模式,默认以批量方式交互。
项目覆盖的环境类型较多,包括 Atari、MuJoCo、DeepMind Control Suite、Box2D、ViZDoom、Procgen、Minigrid、MPE2、MetaWorld、PGX 和 Jumanji 等。开发者也可以通过 C++ 接口接入自定义环境。它还支持批量 RGB 渲染,并可通过 XLA 配合 JAX 的 jit 使用。PyPI 提供 Linux、macOS 和 Windows 的预编译包。
仓库中的基准测试对比了它与基于 Python subprocess 的向量环境和 for 循环在 12 到 256 个 CPU 核心机器上的吞吐量。
核心功能
- 01基于 C++ 线程池和 pybind11 绑定,批量推进环境。
- 02兼容 Gymnasium 与 dm_env 接口。
- 03支持同步与异步执行,也支持单人和多人环境。
- 04覆盖 Atari、MuJoCo、DeepMind Control、Procgen 等多类环境。
- 05支持批量 RGB 渲染,并可通过 XLA 配合 JAX jit 使用。
适用场景
- 在多核机器上加速强化学习训练的数据采集。
- 配合 Stable-Baselines3、Tianshou、CleanRL 等库运行 Atari 或 MuJoCo 实验。
- 用高吞吐的 C++ 实现接入自定义环境。
快速上手
- 1
从 PyPI 安装 EnvPool
pip install envpool - 2
打开 Python 控制台导入 envpool 以确认安装成功
使用前须知
- 在 Linux 上使用 MuJoCo 渲染需要系统自带的 EGL/OpenGL 运行时,例如 Ubuntu 上的 libegl1、libopengl0 和 libgl1-mesa-dri。
- 在 Linux 上使用 Procgen 环境需要单独安装系统 Qt 5 运行时,从源码构建同样需要 Qt 5。
收录于专题
标签
常见问题
- envpool 是什么?
- 基于 C++ 的强化学习批量环境引擎,用线程池并行运行大量 Gym 风格环境。 EnvPool 是一个强化学习环境的并行执行引擎。它用 C++ 和线程池管理一组环境,通过 pybind11 提供 Python 接口,一次调用即可同时推进多个环境。接口兼容 Gymnasium 与 dm_env,支持同步和异步两种模式,默认以批量方式交互。
- envpool 可以免费使用吗?用的什么许可证?
- envpool 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- envpool 还在维护吗?
- 活跃维护中。envpool 最近一次提交是在 2026年10月21日。
- envpool 适合用来做什么?
- 在多核机器上加速强化学习训练的数据采集。 配合 Stable-Baselines3、Tianshou、CleanRL 等库运行 Atari 或 MuJoCo 实验。 用高吞吐的 C++ 实现接入自定义环境。
- envpool 怎么安装和运行?
- 从 PyPI 安装 EnvPool: pip install envpool 打开 Python 控制台导入 envpool 以确认安装成功
- 在哪里获取 envpool?
- 源代码和安装说明在 GitHub 上:https://github.com/sail-sg/envpool
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用于单智能体强化学习的标准 Python API,并附带一组参考环境,是 OpenAI Gym 的维护分支。
面向 ROS 的高性能 2D 机器人仿真器,用于在平面环境中模拟机器人。
基于 PyTorch 的强化学习算法实现库,提供可靠、接口统一的基准版本。
基于 Unreal Engine 的开源仿真器,用于无人机、汽车等自动驾驶载具的 AI 与计算机视觉研究。
面向自动驾驶研究的开源仿真器,基于 Unreal Engine 提供城市场景与传感器仿真。