spriteworld - Spriteworld: a flexible, configurable python-based reinforcement learning environment

  •        12

Spriteworld is a python-based RL environment that consists of a 2-dimensional arena with simple shapes that can be moved freely. This environment was developed for the COBRA agent introduced in the paper "COBRA: Data-Efficient Model-Based RL through Unsupervised Object Discovery and Curiosity-Driven Exploration" (Watters et al., 2019). The motivation for the environment was to provide as much flexibility for procedurally generating multi-object scenes while retaining as simple an interface as possible. Spriteworld sprites come in a variety of shapes and can vary continuously in position, size, color, angle, and velocity. The environment has occlusion but no physics, so by default sprites pass beneath each other but do not collide or interact in any way. Interactions may be introduced through the action space, which can update all sprites each timestep. For example, the DiscreteEmbodied action space (see spriteworld/action_spaces.py) implements a rudimentary form of physics in which an agent's body sprite can adhere to and carry sprites underneath it.




Related Projects

pysc2 - StarCraft II Learning Environment

  •    Python

PySC2 is DeepMind's Python component of the StarCraft II Learning Environment (SC2LE). It exposes Blizzard Entertainment's StarCraft II Machine Learning API as a Python RL Environment. This is a collaboration between DeepMind and Blizzard to develop StarCraft II into a rich environment for RL research. PySC2 provides an interface for RL agents to interact with StarCraft 2, getting observations and sending actions. We have published an accompanying blogpost and paper, which outlines our motivation for using StarCraft II for DeepRL research, and some initial research results using the environment.

lab - A customisable 3D platform for agent-based AI research

  •    C

DeepMind Lab is a 3D learning environment based on id Software's Quake III Arena via ioquake3 and other open source software. DeepMind Lab provides a suite of challenging 3D navigation and puzzle-solving tasks for learning agents. Its primary purpose is to act as a testbed for research in artificial intelligence, especially deep reinforcement learning.

Replicating-DeepMind - Reproducing the results of "Playing Atari with Deep Reinforcement Learning" by DeepMind

  •    C++

Reproducing the results of "Playing Atari with Deep Reinforcement Learning" by DeepMind. All the information is in our Wiki. Progress: System is up and running on a GPU cluster with cuda-convnet2. It can learn to play better than random but not much better yet :) It is rather fast but still about 2x slower than DeepMind's original system. It does not have RMSprop implemented at the moment which is our next goal.

minigo - An open-source implementation of the AlphaGoZero algorithm

  •    Python

This is a pure Python implementation of a neural-network based Go AI, using TensorFlow. While inspired by DeepMind's AlphaGo algorithm, this project is not a DeepMind project nor is it affiliated with the official AlphaGo project. Repeat, this is not the official AlphaGo program by DeepMind. This is an independent effort by Go enthusiasts to replicate the results of the AlphaGo Zero paper ("Mastering the Game of Go without Human Knowledge," Nature), with some resources generously made available by Google.

DeepMind-Atari-Deep-Q-Learner - The original code from the DeepMind article + my tweaks

  •    Lua

This repository hosts the original code published along with the article in Nature and my experiments (if any) with it. This project contains the source code of DQN 3.0, a Lua-based deep reinforcement learning architecture, necessary to reproduce the experiments described in the paper "Human-level control through deep reinforcement learning", Nature 518, 529–533 (26 February 2015) doi:10.1038/nature14236.

Conditional-PixelCNN-decoder - Tensorflow implementation of Gated Conditional Pixel Convolutional Neural Network

  •    Python

This is a Tensorflow implementation of Conditional Image Generation with PixelCNN Decoders which introduces the Gated PixelCNN model based on PixelCNN architecture originally mentioned in Pixel Recurrent Neural Networks. The model can be conditioned on latent representation of labels or images to generate images accordingly. Images can also be modelled unconditionally. It can also act as a powerful decoder and can replace deconvolution (transposed convolution) in Autoencoders and GANs. A detailed summary of the paper can be found here. The gating accounts for remembering the context and model more complex interactions, like in LSTM. The network stack on the left is the Vertical stack that takes care of blind spots that occure while convolution due to the masking layer (Refer the Pixel RNN paper to know more about masking). Use of residual connection significantly improves the model performance.

tensorflow-wavenet - A TensorFlow implementation of DeepMind's WaveNet paper

  •    Python

This is a TensorFlow implementation of the WaveNet generative neural network architecture for audio generation. The WaveNet neural network architecture directly generates a raw audio waveform, showing excellent results in text-to-speech and general audio generation (see the DeepMind blog post and paper for details).

snek - An experimental system for writing generative systems

  •    Common

This library is specifically written to be useful for a broad range of ways in which I create art using various generative algorithms. A simple (graph) data structure for working with vertices and edges The structure is named snek; the name is explained below. This structure is combined with a programming pattern for applying changes to the structure. The pattern relies on alterations, see below.

SpriteWorld X

  •    C

SpriteWorld (spriteworld.org) is a game SDK for Macintosh written in C. The goal of this project (SpriteWorld X) is to create a cross-platform version of SpriteWorld which sits on top of SDL (libsdl.org) and OpenGL (opengl.org) / OpenAL (openal.org).

dm_control - The DeepMind Control Suite and Package

  •    Python

A set of Python Reinforcement Learning environments powered by the MuJoCo physics engine. See the suite subdirectory. Libraries that provide Python bindings to the MuJoCo physics engine.

RocAlphaGo - An independent, student-led replication of DeepMind's 2016 Nature publication, "Mastering the game of Go with deep neural networks and tree search" (Nature 529, 484-489, 28 Jan 2016), details of which can be found on their website https://deepmind

  •    Python

This project is a student-led replication/reference implementation of DeepMind's 2016 Nature publication, "Mastering the game of Go with deep neural networks and tree search," details of which can be found on their website. This implementation uses Python and Keras - a decision to prioritize code clarity, at least in the early stages. See the project wiki.

geo_pattern - Create beautiful generative geometric background images from a string.

  •    Ruby

Generate beautiful tiling SVG patterns from a string. The string is converted into a SHA and a color and pattern are determined based on the values in the hash. The color is determined by shifting the hue and saturation from a default (or passed in) base color. One of 16 patterns is used (or you can specify one) and the sizing of the pattern elements is also determined by the hash values. You can use the generated pattern as the background-image for a container. Using the base64 representation of the pattern still results in SVG rendering, so it looks great on retina displays.


  •    C

SpriteWorld is a collection of routines Mac programmers can use to implement smooth, fast sprite animation with scrolling and tiling in games and other applications. See also the BlitPixie and Hardwarie projects on SourceForge.


  •    C++

Gym-TORCS is the reinforcement learning (RL) environment in TORCS domain with OpenAI-gym-like interface. TORCS is the open-rource realistic car racing simulator recently used as RL benchmark task in several AI studies. Gym-TORCS is the python wrapper of TORCS for RL experiment with the simple interface (similar, but not fully) compatible with OpenAI-gym environments. The current implementaion is for only the single-track race in practie mode. If you want to use multiple tracks or other racing mode (quick race etc.), you may need to modify the environment, "autostart.sh" or the race configuration file using GUI of TORCS.

TextWorld - ​TextWorld is a sandbox learning environment for the training and evaluation of reinforcement learning (RL) agents on text-based games

  •    Python

A learning environment sandbox for training and testing reinforcement learning (RL) agents on text-based games. TextWorld requires Python 3 and only supports Linux and Mac systems at the moment.

jetson-reinforcement - Deep reinforcement learning GPU libraries for NVIDIA Jetson with PyTorch, OpenAI Gym, and Gazebo robotics simulator

  •    C++

In this tutorial, we'll be creating artificially intelligent agents that learn from interacting with their environment, gathering experience, and a system of rewards with deep reinforcement learning (deep RL). Using end-to-end neural networks that translate raw pixels into actions, RL-trained agents are capable of exhibiting intuitive behaviors and performing complex tasks. Ultimately, our aim will be to train reinforcement learning agents from virtual robotic simulation in 3D and transfer the agent to a real-world robot. Reinforcement learners choose the best action for the agent to perform based on environmental state (like camera inputs) and rewards that provide feedback to the agent about it's performance. Reinforcement learning can learn to behave optimally in it's environment given a policy, or task - like obtaining the reward.

hanabi-learning-environment - hanabi_learning_environment is a research platform for Hanabi experiments

  •    Python

This is not an officially supported Google product. hanabi_learning_environment is a research platform for Hanabi experiments. The file rl_env.py provides an RL environment using an API similar to OpenAI Gym. A lower level game interface is provided in pyhanabi.py for non-RL methods like Monte Carlo tree search.

simplex-noise.js - A fast simplex noise implementation in Javascript.

  •    Javascript

simplex-noise.js is a fast simplex noise implementation in Javascript. It works in the browser and on nodejs. By default simplex-noise.js will use Math.random() to seed the noise.

RL-Adventure-2 - PyTorch0

  •    Jupyter

PyTorch0.4 implementation of: actor critic / proximal policy optimization / acer / ddpg / twin dueling ddpg / soft actor critic / generative adversarial imitation learning / hindsight experience replay

ELF - ELF: a platform for game research with AlphaGoZero/AlphaZero reimplementation

  •    C++

ELF is an Extensive, Lightweight, and Flexible platform for game research. We have used it to build our Go playing bot, ELF OpenGo, which achieved a 14-0 record versus four global top-30 players in April 2018. The final score is 20-0 (each professional Go players play 5 games). We have released our v0 models here.