DM Lab#
Installation#
Courtesy to Danijar Hafner for providing this install script.
#!/bin/sh
set -eu
# Dependencies
apt-get update && apt-get install -y \
build-essential curl freeglut3 gettext git libffi-dev libglu1-mesa \
libglu1-mesa-dev libjpeg-dev liblua5.1-0-dev libosmesa6-dev \
libsdl2-dev lua5.1 pkg-config python-setuptools python3-dev \
software-properties-common unzip zip zlib1g-dev g++
pip3 install numpy
# Bazel
apt-get install -y apt-transport-https curl gnupg
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
apt-get update && apt-get install -y bazel
# Build
git clone https://github.com/deepmind/lab.git
cd lab
echo 'build --cxxopt=-std=c++17' > .bazelrc
bazel build -c opt //python/pip_package:build_pip_package
./bazel-bin/python/pip_package/build_pip_package /tmp/dmlab_pkg
pip3 install --force-reinstall /tmp/dmlab_pkg/deepmind_lab-*.whl
cd ..
rm -rf lab
Usage#
import deepmind_lab
from shimmy.dm_lab_compatibility import DmLabCompatibilityV0
observations = ["RGBD"]
config = {"width": "640", "height": "480", "botCount": "2"}
renderer = "hardware"
env = deepmind_lab.Lab("lt_chasm", observations, config=config, renderer=renderer)
env = DmLabCompatibilityV0(env)
Class Description#
- class shimmy.dm_lab_compatibility.DmLabCompatibilityV0(env: Any, render_mode: None = None)#
This compatibility wrapper converts a dm_lab-control environment into a gymnasium environment.
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.
- metadata: dict[str, Any] = {'render_fps': 10, 'render_modes': []}#
- observation_space: spaces.Space[ObsType]#
- action_space: spaces.Space[ActType]#
- reset(*, seed: int | None = None, options: dict[str, Any] | None = None) tuple[ObsType, dict[str, Any]] #
Resets the dm-lab environment.
- step(action: dict[str, np.ndarray]) tuple[ObsType, float, bool, bool, dict[str, Any]] #
Steps through the dm-lab environment.
- render() None #
Renders the dm_lab env.
- close()#
Closes the environment.