The Reinforcement Learning Toybox Build Status

A set of games designed for testing deep RL agents.

If you use this code, or otherwise are inspired by our white-box testing approach, please cite our NeurIPS workshop paper:

  author={Foley, John and Tosch, Emma and Clary, Kaleigh and Jensen, David},


Play the games (using pygame)

cargo build --release
cd ctoybox
./start_python breakout
./start_python amidar
./start_python space_invaders

Mac Dev Setup Instructions

Lints and Formatting in Rust

Follow the readme instructions to get rustfmt and clippy.

Then you can check automatically format your files with cargo fmt and peruse the best lints with cargo clippy.

A pre-commit hook will ensure that your code is always properly formatted. To do this, run

git config core.hooksPath .githooks

from the top-level directory. This will ensure that your files are formatted properly pior to committing.


Tensorflow, OpenAI Gym, OpenCV, and other libraries may or may not break with various Python versions. We have confirmed that the code in this repository will work with the following Python versions:

Developing New Games

Get starting images for reference from ALE

./scripts/utils/start_images --help