Skip to main content

ObjectRL: An Object-Oriented Reinforcement Learning Codebase

Project description

ObjectRL

docs license PyTorch

ObjectRL Logo

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

objectrl-0.2.1.tar.gz (87.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

objectrl-0.2.1-py3-none-any.whl (137.6 kB view details)

Uploaded Python 3

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

Hashes for objectrl-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d0b75871cba16f32e6f14f0bfe2b04cbfe098bf6ddd1854d0f473ac82cba7f2a
MD5 a041bb004bca9a2a3f1165500927e217
BLAKE2b-256 cbc6f7c9b2ccf8235753e4bec04c9b4e3b826fbe8e6414f5bea9b3632099ac1c

See more details on using hashes here.

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

Hashes for objectrl-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed4378aa982f6ae6850a4599836ac625c5d15851e93e3d388dc994d35f48ef80
MD5 fa824450a2b2cb8748a4a68afc7fda63
BLAKE2b-256 d34aa98f38f660243b10356d6b7cbd8d55eb7db770f9f03efe10335ac05c3c53

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page