ObjectRL: An Object-Oriented Reinforcement Learning Codebase
Project description
ObjectRL
ObjectRL is a deep reinforcement learning library designed for research and rapid prototyping. It focuses on deep actor-critic algorithms for continuous control tasks such as those in the MuJoCo environment suite, while providing a flexible object-oriented architecture that supports future extensions to value-based and discrete-action methods.
Features
- Object-oriented design for easy experimentation
- Implements popular deep RL algorithms for continuous control
- Includes experimental implementations of Bayesian and value-based methods
- Supports easy configuration via CLI and YAML files
- Rich examples and tutorials for customization and advanced use cases
Supported Algorithms
- DDPG (Deep Deterministic Policy Gradient)
- TD3 (Twin Delayed DDPG)
- SAC (Soft Actor-Critic)
- PPO (Proximal Policy Optimization)
- REDQ (Randomized Ensemble Double Q-Learning)
- DRND (Distributional Random Network Distillation)
- OAC (Optimistic Actor-Critic)
- PBAC (PAC-Bayesian Actor-Critic)
- BNN-SAC (Bayesian Neural Network SAC) — experimental, in examples
- DQN (Deep Q-Network) — experimental, in examples
Installation
Create Environment
conda create -n objectrl python=3.12 -y
conda activate objectrl
Using PyPI
pip install objectrl
From Source
git clone https://github.com/adinlab/objectrl.git
cd objectrl
pip install -e .
Optional Dependencies
To enable additional features such as documentation generation:
pip install objectrl[docs]
Quick Start Guide
Run your first experiment using Soft Actor-Critic (SAC) on the default cheetah environment:
If installed from PyPI:
python -m objectrl.main --model.name sac
If running from a cloned repo:
python objectrl/main.py --model.name sac
Other examples will assume running from a cloned repo.
Change Algorithm and Environment
Run DDPG on the hopper environment:
python objectrl/main.py --model.name ddpg --env.name hopper
Customize Training Parameters
Train SAC for 100,000 steps and evaluate every 5 episodes:
python objectrl/main.py --model.name sac --env.name hopper --training.max_steps 100000 --training.eval_episodes 5
Use YAML Configuration Files
For more complex or reproducible setups, create YAML config files in objectrl/config/model_yamls/ and specify them at runtime:
python objectrl/main.py --config objectrl/config/model_yamls/ppo.yaml
Example ppo.yaml:
model:
name: ppo
training:
warmup_steps: 0
learn_frequency: 2048
batch_size: 64
n_epochs: 10
Need Help?
If you encounter common issues or errors during installation or usage, please see the Issues guide for solutions and tips.
For other questions or to report bugs, visit our GitHub Issues page.
Documentation
Explore detailed documentation, tutorials, and API references at: https://objectrl.readthedocs.io
Citation
If you use ObjectRL in your research, please cite:
@article{baykal2025objectrl,
title={ObjectRL: An Object-Oriented Reinforcement Learning Codebase},
author={Baykal, Gulcin and Akg{\"u}l, Abdullah and Haussmann, Manuel and Tasdighi, Bahareh and Werge, Nicklas and Wu Yi-Shan and Kandemir, Melih},
year={2025},
journal={arXiv preprint arXiv:2507.03487}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file objectrl-0.2.1.tar.gz.
File metadata
- Download URL: objectrl-0.2.1.tar.gz
- Upload date:
- Size: 87.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0b75871cba16f32e6f14f0bfe2b04cbfe098bf6ddd1854d0f473ac82cba7f2a
|
|
| MD5 |
a041bb004bca9a2a3f1165500927e217
|
|
| BLAKE2b-256 |
cbc6f7c9b2ccf8235753e4bec04c9b4e3b826fbe8e6414f5bea9b3632099ac1c
|
File details
Details for the file objectrl-0.2.1-py3-none-any.whl.
File metadata
- Download URL: objectrl-0.2.1-py3-none-any.whl
- Upload date:
- Size: 137.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed4378aa982f6ae6850a4599836ac625c5d15851e93e3d388dc994d35f48ef80
|
|
| MD5 |
fa824450a2b2cb8748a4a68afc7fda63
|
|
| BLAKE2b-256 |
d34aa98f38f660243b10356d6b7cbd8d55eb7db770f9f03efe10335ac05c3c53
|