GithubHelp home page GithubHelp logo

brenting / lab2d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google-deepmind/lab2d

0.0 0.0 0.0 603 KB

A customisable 2D platform for agent-based AI research

License: Apache License 2.0

C++ 69.25% Python 3.32% C 0.28% Lua 22.90% Starlark 4.24%

lab2d's Introduction

DeepMind Lab2D

A learning environment written in C++ and Lua for the creation of grid worlds.

DeepMind Lab2D screenshot

About

DeepMind Lab2D is a system for the creation of 2D environments for machine learning. The main goals of the system are ease of use and performance: The environments are "grid worlds", which are defined with a combination of simple text-based maps for the layout of the world, and Lua code for its behaviour. Machine learning agents interact with these environments through one of two APIs, the Python dm_env API or a custom C API (which is also used by DeepMind Lab). Multiple agents are supported.

If you use DeepMind Lab2D in your research and would like to cite it, we suggest you cite the accompanying whitepaper.

Getting started

We provide an example "random" agent in python/random_agent, which performs random actions. This can be used as a base for creating your own agents, and as a simple tool to preview an environment.

bazel run -c opt dmlab2d/random_agent -- --level_name=clean_up

External dependencies, prerequisites and porting notes

DeepMind Lab2D currently ships as source code only. It depends on a few external software libraries, which we ship in several different ways:

  • The dm_env, eigen, luajit, lua5.1, lua5.2, luajit, png and zlib libraries are referenced as external Bazel sources, and Bazel BUILD files are provided. The dependent code itself should be fairly portable, but the BUILD rules we ship are specific to Linux on x86. To build on a different platform you will most likely have to edit those BUILD files.

  • A "generic reinforcement learning API" is included in //third_party/rl_api.

  • Several additional libraries are required but are not shipped in any form; they must be present on your system:

    • Python 3.6 or above with NumPy, PyGame, and packaging.

The build rules are using a few compiler settings that are specific to GCC/Clang. If some flags are not recognized by your compiler (typically those would be specific warning suppressions), you may have to edit those flags.

Disclaimer

This is not an official Google product.

lab2d's People

Contributors

tkoeppe avatar charlesbeattie avatar jagapiou avatar jifflund avatar brenting avatar derekmauro avatar yilei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.