Biblioteca de física em C++17 com bindings para Python, voltada à cinemática, dinâmica e simulação de contato de robôs articulados e personagens animados.
sail-sg/envpool
Um pool de ambientes em lote em C++ para aprendizado por reforço, que executa vários ambientes no estilo Gym em paralelo usando um pool de threads.
- Estrelas
- 1,533
- Forks
- 147
- Issues abertas
- 16
- Último commit
- há 16 dias
O que é?
EnvPool é um mecanismo de execução paralela para ambientes de aprendizado por reforço. Ele gerencia um pool de ambientes em C++ com um pool de threads e os disponibiliza para Python por meio de pybind11, permitindo avançar vários ambientes em uma única chamada. Oferece suporte a APIs no estilo Gymnasium e dm_env, nos modos síncrono e assíncrono, com interação em lote por padrão.
O projeto abrange uma ampla variedade de famílias de ambientes, incluindo Atari, MuJoCo, DeepMind Control Suite, Box2D, ViZDoom, Procgen, Minigrid, MPE2, MetaWorld, PGX e Jumanji. Também é possível adicionar ambientes por meio de uma interface para desenvolvedores em C++. Há suporte para renderização em arrays RGB em lote e para XLA com JAX jit. Wheels pré-compiladas são publicadas no PyPI para Linux, macOS e Windows.
Os benchmarks do repositório comparam o throughput com ambientes vetorizados baseados em subprocessos Python e loops for, em máquinas com 12 a 256 núcleos de CPU.
Recursos principais
- 01Avanço de ambientes em lote usando um pool de threads em C++, com bindings pybind11.
- 02Compatível com as APIs Gymnasium e dm_env.
- 03Oferece suporte à execução síncrona e assíncrona, incluindo ambientes para um ou vários jogadores.
- 04Abrange várias famílias de ambientes, como Atari, MuJoCo, DeepMind Control e Procgen.
- 05Renderização rgb_array em lote e suporte a XLA com JAX jit.
Casos de uso
- Acelerar a coleta de dados para treinar modelos de aprendizado por reforço em máquinas com vários núcleos.
- Executar experimentos com Atari ou MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou ou CleanRL.
- Adicionar um ambiente personalizado com uma implementação em C++ de alto throughput.
Início rápido
- 1
Instale o EnvPool pelo PyPI
pip install envpool - 2
Abra um console Python e importe envpool para confirmar que a instalação foi concluída corretamente
Antes de usar
- A renderização do MuJoCo no Linux requer o runtime EGL/OpenGL do sistema, como libegl1, libopengl0 e libgl1-mesa-dri no Ubuntu.
- No Linux, os ambientes Procgen exigem a instalação separada do runtime Qt 5 do sistema. A compilação a partir do código-fonte também requer Qt 5.
Em coleções
Tópicos
Perguntas frequentes
- O que é envpool?
- Um pool de ambientes em lote em C++ para aprendizado por reforço, que executa vários ambientes no estilo Gym em paralelo usando um pool de threads. EnvPool é um mecanismo de execução paralela para ambientes de aprendizado por reforço. Ele gerencia um pool de ambientes em C++ com um pool de threads e os disponibiliza para Python por meio de pybind11, permitindo avançar vários ambientes em uma única chamada. Oferece suporte a APIs no estilo Gymnasium e dm_env, nos modos síncrono e assíncrono, com interação em lote por padrão.
- envpool é gratuito? Qual é a licença?
- envpool é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- envpool ainda é mantido?
- Manutenção ativa. O último commit de envpool foi em 21 de out. de 2026.
- Para que posso usar envpool?
- Acelerar a coleta de dados para treinar modelos de aprendizado por reforço em máquinas com vários núcleos. Executar experimentos com Atari ou MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou ou CleanRL. Adicionar um ambiente personalizado com uma implementação em C++ de alto throughput.
- Como instalar envpool?
- Instale o EnvPool pelo PyPI: pip install envpool Abra um console Python e importe envpool para confirmar que a instalação foi concluída corretamente
- Onde consigo envpool?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sail-sg/envpool
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma API Python padrão para ambientes de aprendizado por reforço com agente único, além de um conjunto de ambientes de referência, derivado do Gym da OpenAI.
Um simulador 2D de robôs para ROS, com foco em desempenho, que executa modelos de robôs em ambientes planos e leves.
Implementações em PyTorch de algoritmos de aprendizado por reforço, projetadas como uma base confiável e consistente para pesquisa e aplicações.
Simulador de código aberto baseado no Unreal Engine para drones, carros e outros veículos autônomos, com APIs para pesquisa em IA e visão computacional.
Simulador open source para pesquisa em direção autônoma, com ambientes urbanos, recursos digitais e simulação de sensores, desenvolvido no Unreal Engine.