Biblioteca de física en C++17 con bindings de Python para simular la cinemática, la dinámica y los contactos de robots articulados y personajes animados.
sail-sg/envpool
Un pool de entornos por lotes en C++ para aprendizaje por refuerzo, que ejecuta en paralelo muchos entornos tipo Gym mediante un pool de hilos.
- Estrellas
- 1,533
- Forks
- 147
- Issues abiertos
- 16
- Último commit
- hace 16 días
¿Qué es?
EnvPool es un motor de ejecución en paralelo para entornos de aprendizaje por refuerzo. Gestiona un pool de entornos en C++ mediante un pool de hilos y los expone a Python a través de pybind11, de modo que una sola llamada puede ejecutar un paso en muchos entornos a la vez. Admite las API de estilo Gymnasium y dm_env, tanto en modo síncrono como asíncrono, y la interacción por lotes viene activada de forma predeterminada.
El proyecto abarca una amplia variedad de familias de entornos, como Atari, MuJoCo, DeepMind Control Suite, Box2D, ViZDoom, Procgen, Minigrid, MPE2, MetaWorld, PGX y Jumanji. También se pueden añadir entornos mediante una interfaz para desarrolladores de C++. Están disponibles el renderizado en lotes a matrices RGB y la compatibilidad con XLA mediante JAX jit. En PyPI se publican wheels precompilados para Linux, macOS y Windows.
Los benchmarks del repositorio comparan el rendimiento con entornos vectorizados basados en subprocess de Python y con bucles for, en máquinas con entre 12 y 256 núcleos de CPU.
Funciones clave
- 01Ejecución de pasos en entornos por lotes mediante un pool de hilos en C++ y enlaces con pybind11.
- 02Compatible con las API de Gymnasium y dm_env.
- 03Admite ejecución síncrona y asíncrona, incluidos entornos de uno y varios jugadores.
- 04Abarca numerosas familias de entornos, como Atari, MuJoCo, DeepMind Control y Procgen.
- 05Renderizado por lotes en formato rgb_array y compatibilidad con XLA mediante JAX jit.
Casos de uso
- Acelerar la recopilación de datos para entrenar modelos de aprendizaje por refuerzo en máquinas multinúcleo.
- Ejecutar experimentos con Atari o MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou o CleanRL.
- Añadir un entorno personalizado con una implementación de alto rendimiento en C++
Inicio rápido
- 1
Instala EnvPool desde PyPI
pip install envpool - 2
Abre una consola de Python e importa envpool para confirmar que la instalación se realizó correctamente
Antes de usarlo
- El renderizado de MuJoCo en Linux requiere el runtime de EGL/OpenGL del sistema, como libegl1, libopengl0 y libgl1-mesa-dri en Ubuntu.
- En Linux, los entornos Procgen requieren instalar por separado el runtime de Qt 5 del sistema. Para compilar desde el código fuente también se necesita Qt 5.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es envpool?
- Un pool de entornos por lotes en C++ para aprendizaje por refuerzo, que ejecuta en paralelo muchos entornos tipo Gym mediante un pool de hilos. EnvPool es un motor de ejecución en paralelo para entornos de aprendizaje por refuerzo. Gestiona un pool de entornos en C++ mediante un pool de hilos y los expone a Python a través de pybind11, de modo que una sola llamada puede ejecutar un paso en muchos entornos a la vez. Admite las API de estilo Gymnasium y dm_env, tanto en modo síncrono como asíncrono, y la interacción por lotes viene activada de forma predeterminada.
- ¿envpool es gratuito? ¿Qué licencia tiene?
- envpool es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿envpool sigue mantenido?
- Mantenimiento activo. El último commit de envpool fue el 21 oct 2026.
- ¿Para qué puedo usar envpool?
- Acelerar la recopilación de datos para entrenar modelos de aprendizaje por refuerzo en máquinas multinúcleo. Ejecutar experimentos con Atari o MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou o CleanRL. Añadir un entorno personalizado con una implementación de alto rendimiento en C++
- ¿Cómo se instala envpool?
- Instala EnvPool desde PyPI: pip install envpool Abre una consola de Python e importa envpool para confirmar que la instalación se realizó correctamente
- ¿Dónde consigo envpool?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/sail-sg/envpool
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una API estándar de Python para entornos de aprendizaje por refuerzo de un solo agente, junto con entornos de referencia; es una bifurcación de Gym de OpenAI.
Simulador 2D de robots para ROS, centrado en el rendimiento y que ejecuta modelos de robots en entornos planos y ligeros.
Implementaciones en PyTorch de algoritmos de aprendizaje por refuerzo, diseñadas como una base fiable y coherente para la investigación y las aplicaciones.
Simulador de código abierto basado en Unreal Engine para drones, autos y otros vehículos autónomos, con API para investigar en IA y visión por computadora.
Simulador de código abierto para investigar la conducción autónoma, con entornos urbanos, recursos digitales y simulación de sensores, basado en Unreal Engine.