Turn Godot projects into OpenAI Gym environments for training reinforcement learning models with PyTorch via shared memory.
GodotAIGym is an open-source framework that transforms Godot Engine projects into OpenAI Gym-compatible environments for training reinforcement learning models. It solves the problem of integrating complex, real-time simulations with machine learning pipelines by using shared memory for efficient communication between Godot and PyTorch. This allows developers to use Godot's 3D capabilities as a dynamic training ground for AI agents.
Machine learning researchers and developers working on reinforcement learning who want to use Godot's simulation environment for training, as well as Godot developers interested in integrating AI into their projects.
Developers choose GodotAIGym because it provides a unique bridge between Godot's powerful game engine and PyTorch's ML ecosystem, enabling high-performance RL training with custom 3D environments without the overhead of traditional communication methods.
Communicating with godot engine through shared memory
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Boost interprocess for shared memory communication, enabling high-speed, low-latency transfer between Godot and Python, crucial for real-time RL training.
Converts Godot projects directly into OpenAI Gym environments, allowing for standard RL workflows and compatibility with existing libraries.
Designed specifically for PyTorch 1.10, facilitating direct use of this popular ML framework for model building and training.
Provides tools for training models in Python and deploying them back to Godot, as demonstrated in the InvPendulum tutorial for a complete RL cycle.
Currently only runs on Linux systems, as stated in the README, which excludes developers on Windows or macOS.
Requires specific versions of Godot (3.2) and PyTorch (1.10), which are outdated and may not support newer features or updates.
Necessitates compiling Godot from source and installing Boost libraries, making installation error-prone and time-consuming compared to simpler integrations.
The project is relatively niche, with dependencies on older software and no native support for GDNative or other modern Godot extensions, as noted in the TODO list.