🤖 AI Summary
Existing deep reinforcement learning (DRL) codebases suffer from high programming complexity, tight structural coupling, and poor reusability and evaluability of algorithms—hindering research efficiency and scalability. To address these issues, we propose an open-source, research-oriented DRL framework grounded in object-oriented design principles. Core components—including environments, policies, and trainers—are modeled as classes with encapsulation, inheritance, and polymorphism, and modules are organized according to ontological relationships, significantly improving code understandability and maintainability. The framework is compatible with Gym and PyTorch, enabling rapid prototyping and plug-and-play algorithm integration. Empirical evaluation across multiple standard benchmark tasks demonstrates strong generalization capability and usability. Our framework lowers the barrier to DRL research, accelerates algorithm iteration, and facilitates cross-task reuse.
📝 Abstract
ObjectRL is an open-source Python codebase for deep reinforcement learning (RL), designed for research-oriented prototyping with minimal programming effort. Unlike existing codebases, ObjectRL is built on Object-Oriented Programming (OOP) principles, providing a clear structure that simplifies the implementation, modification, and evaluation of new algorithms. ObjectRL lowers the entry barrier for deep RL research by organizing best practices into explicit, clearly separated components, making them easier to understand and adapt. Each algorithmic component is a class with attributes that describe key RL concepts and methods that intuitively reflect their interactions. The class hierarchy closely follows common ontological relationships, enabling data encapsulation, inheritance, and polymorphism, which are core features of OOP. We demonstrate the efficiency of ObjectRL's design through representative use cases that highlight its flexibility and suitability for rapid prototyping. The documentation and source code are available at https://objectrl.readthedocs.io and https://github.com/adinlab/objectrl .