# google-deepmind/lab

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/google-deepmind-lab).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

7,393 stars · 1,402 forks · C · NOASSERTION

## Links

- GitHub: https://github.com/google-deepmind/lab
- awesome-repositories: https://awesome-repositories.com/repository/google-deepmind-lab.md

## Topics

`artificial-intelligence` `deep-learning` `machine-learning` `neural-networks`

## Description

DeepMind Lab is a customisable three-dimensional simulation platform for training and evaluating learning agents. It is built on a modified fork of the Quake III Arena engine, adapted to render first-person worlds for agents rather than human players. The engine is written in C++ and built with Bazel, and it is exposed to Python so environments can be created, stepped, reset and observed from scripts, including through a standard reinforcement learning interface.

The platform ships with a suite of navigation and puzzle-solving tasks, along with ready-made levels that test specific mental abilities and implement classic cognitive psychology paradigms such as visual search. Levels, rewards, pickups and custom actions are defined in Lua scripts. Researchers can write their own levels, add custom actions and observations, override agent controls, shape reward signals, and query or modify environment state while a level is running. Maps can be generated at runtime from plain text layouts, with a level cache that reuses previously compiled maps.

Further capabilities cover frame-stepped interaction with configurable resolution, frame rate and seeding, and a choice of software or hardware rendering. Levels can be played by hand with keyboard and mouse, and demos can be recorded and replayed. The repository also includes bundled image datasets that levels can present to agents, and a random agent example as a starting point. Builds use pinned, checksum-verified dependencies and can be packaged as an installable Python module.

## Tags

### Artificial Intelligence & ML

- [Reinforcement Learning Environments](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/reinforcement-learning-environments.md) — Exposes 3D simulated levels through a uniform reinforcement learning API so agents and training code control every level the same way.
- [Reinforcement Learning Simulators](https://awesome-repositories.com/f/artificial-intelligence-ml/reinforcement-learning-algorithms/reinforcement-learning-simulators.md) — Provides a customisable 3D simulation platform where researchers train and evaluate learning agents on navigation, puzzle and cognitive tasks.
- [Navigation and Puzzle Tasks](https://awesome-repositories.com/f/artificial-intelligence-ml/navigation-and-puzzle-tasks.md) — Supplies a suite of challenging 3D navigation and puzzle-solving tasks as a testbed for deep reinforcement learning research. ([source](https://github.com/google-deepmind/lab/blob/master/README.md))
- [Reinforcement Learning Training](https://awesome-repositories.com/f/artificial-intelligence-ml/reinforcement-learning-training.md) — Supplies challenging 3D navigation and puzzle tasks as a testbed for training and evaluating deep reinforcement learning agents. ([source](https://github.com/google-deepmind/lab#readme))
- [Agent Action Spaces](https://awesome-repositories.com/f/artificial-intelligence-ml/agent-action-spaces.md) — Lets level scripts declare their own discrete action sets through callbacks so agents can act beyond built-in controls. ([source](https://github.com/google-deepmind/lab/blob/master/RELEASE_NOTES.md))
- [Standardized Training Interfaces](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-agent-interfaces/standardized-training-interfaces.md) — Connects agents to simulated environments through a general reinforcement learning adapter so standard training code works without custom glue. ([source](https://github.com/google-deepmind/lab/blob/master/python/pip_package/README.md))
- [Cognitive Ability Test Levels](https://awesome-repositories.com/f/artificial-intelligence-ml/cognitive-ability-test-levels.md) — Ships ready-made levels that each test a specific cognitive ability of an agent, startable from scripts or Python. ([source](https://github.com/google-deepmind/lab/blob/master/docs/levels.md))
- [Environment Observation Retrieval](https://awesome-repositories.com/f/artificial-intelligence-ml/environment-observation-retrieval.md) — Lists every supported observation type, including level-specific ones, and returns requested observations as arrays for the agent at each step. ([source](https://github.com/google-deepmind/lab/blob/master/docs/users/python_api.md))
- [Environment Stepping with Actions](https://awesome-repositories.com/f/artificial-intelligence-ml/environment-stepping-with-actions.md) — Steps the environment forward a chosen number of frames, applying the supplied action array on every frame per the action specification. ([source](https://github.com/google-deepmind/lab/blob/master/docs/users/python_api.md))
- [Episode Reset and Seeding](https://awesome-repositories.com/f/artificial-intelligence-ml/episode-reset-and-seeding.md) — Restarts the environment for a new episode, optionally selecting an episode and seeding the random generator for reproducible runs. ([source](https://github.com/google-deepmind/lab/blob/master/docs/users/python_api.md))
- [Frame-Stepped Environment Loops](https://awesome-repositories.com/f/artificial-intelligence-ml/frame-stepped-environment-loops.md) — Advances the simulation a chosen number of frames per call, applying actions each frame and returning observation arrays to the agent.
- [Procedural Generators](https://awesome-repositories.com/f/artificial-intelligence-ml/generative-ai-resources/generative-ai/text-to-image-synthesis/media-synthesis-from-text/3d-scene-generators/procedural-generators.md) — Compiles playable levels at runtime from plain text layouts and reuses previously compiled maps through a level cache.
- [RL Interface Standards](https://awesome-repositories.com/f/artificial-intelligence-ml/rl-interface-standards.md) — Exposes the environment through a general reinforcement learning interface and packages it as an installable module for reuse. ([source](https://github.com/google-deepmind/lab/blob/master/README.md))

### Hardware & IoT

- [AngelScript and Lua Game Scripting](https://awesome-repositories.com/f/hardware-iot/standalone-rfid-operations/lua-scripting-engines/angelscript-and-lua-game-scripting.md) — Extends Lua level scripting with tensor and image libraries, event creation, entity retrieval and post-load texture updates. ([source](https://github.com/google-deepmind/lab/blob/master/RELEASE_NOTES.md))

### Software Engineering & Architecture

- [Environment Scripting Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/environment-scripting-interfaces.md) — Hooks level scripts into game events through callback functions the environment calls periodically, with defaults when a callback is missing. ([source](https://github.com/google-deepmind/lab/blob/master/docs/developers/reference/lua_api.md))
- [Lua Scripting Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/lua-scripting-frameworks.md) — Defines level behavior in Lua scripts whose callbacks the engine invokes at game events, with defaults when a callback is missing.

### Web Development

- [Level Generation Scripts](https://awesome-repositories.com/f/web-development/extension-support/scriptable-extensions/level-generation-scripts.md) — Lets researchers define their own levels as Lua scripts, instantiated through the same scripting and Python interfaces as shipped levels. ([source](https://github.com/google-deepmind/lab/blob/master/docs/levels.md))

### Development Tools & Productivity

- [Python Scripting Environments](https://awesome-repositories.com/f/development-tools-productivity/python-development-tools/script-execution-engines/python-scripting-environments.md) — Wraps the native simulation engine in a Python module so researchers can create, reset and step environments from Python scripts. ([source](https://github.com/google-deepmind/lab/tree/master/python))

### Education & Learning Resources

- [Cognitive Paradigms](https://awesome-repositories.com/f/education-learning-resources/cognitive-paradigms.md) — Provides a platform for implementing classical cognitive psychology paradigms, with sample tasks such as visual search and sequential comparison. ([source](https://github.com/google-deepmind/lab/blob/master/RELEASE_NOTES.md))

### Game Development

- [First-Person Shooter Engines](https://awesome-repositories.com/f/game-development/first-person-shooter-engines.md) — Builds on a modified first-person game engine that supplies rendering, physics, entity management, console commands and map loading.
- [Game Environment Setups](https://awesome-repositories.com/f/game-development/game-environment-setups.md) — Loads a chosen game level and builds an environment object with configurable resolution, frame rate, level directory, seeding and level options. ([source](https://github.com/google-deepmind/lab/blob/master/docs/users/python_api.md))
- [Python and C++ Game Engines](https://awesome-repositories.com/f/game-development/python-and-c-game-engines.md) — Offers a native C++ engine built with Bazel and pinned dependencies, exposed to Python and installable as a module.
- [Quake III Engine Forks](https://awesome-repositories.com/f/game-development/quake-iii-engine-forks.md) — Builds on a modified Quake III Arena engine adapted to render first-person 3D worlds for agents instead of human players.
- [Text-Based Map Generation](https://awesome-repositories.com/f/game-development/text-based-map-generation.md) — Builds playable levels on the fly from plain text layouts, with themes, skyboxes, appearance variations and bot navigation support. ([source](https://github.com/google-deepmind/lab/blob/master/docs/developers/reference/lua_api.md))

### Graphics & Multimedia

- [Rendering Backends](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/graphics-pipeline-architectures/hardware-accelerated-rendering/rendering-backends.md) — Chooses between software and hardware rendering, or a native window, via a build-time graphics setting and a per-environment renderer option. ([source](https://github.com/google-deepmind/lab/blob/master/docs/users/python_api.md))

### Programming Languages & Runtimes

- [Python Environments](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/interoperability/python-environments.md) — Exposes simulated 3D environments through an installable Python module so researchers can create, reset and step them directly from scripts. ([source](https://github.com/google-deepmind/lab/blob/master/python/pip_package/README.md))
- [Python-C++ Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/python-c-bindings.md) — Wraps the compiled C++ simulation core in a Python module so environments can be created, stepped and reset from scripts.
