Skip to main content

DMHouse

DMHouse is a fork of DeepMind Lab 3D simulator, modified for indoor visual navigation.



Getting started

Before getting started, please ensure you have all required packages installed (SDL2, python3.8, OSMesa, gettext). On ubuntu you can issue the following command:

$ sudo apt install -y libsdl2-dev python3.8-dev python3.8-numpy libosmesa6-dev gettext

Alternatively, you can use the provided docker image with pre-installed environment.

You can install this package from the PyPI repository.

$ pip install dmhouse

The package provides a gym interface. Here is an example, which shows how to create a new environment instance.

import dmhouse  # Required to register environments to gym
import gym

env = gym.make('DMHouse-v1', screen_size=(84, 84), renderer='hardware')

NOTE: for better performance, you should use renderer='hardware', other option is renderer='software'

About

The primary purpose of 3DHouse is to act as a testbed for research in artificial intelligence, especially deep reinforcement learning visual navigation. This fork modifies DeepMind Lab to be suitable for visual navigation in indoor environments. It adds new scenes and office-like 3D objects and also removes game-like animations and on-screen artifacts.

If you use DMHouse in your research and would like to cite us, you can use the following citation:

@article{kulhanek2020visual,
  title={Visual Navigation in Real-World Indoor Environments Using End-to-End Deep Reinforcement Learning},
  author={Kulh{\'a}nek, Jon{\'a}{\v{s}} and Derner, Erik and Babu{\v{s}}ka, Robert},
  journal={arXiv preprint arXiv:2010.10903},
  year={2020}
}

You can also cite the DeepMind Lab environment by citing the DeepMind Lab paper.

If you have any questions, you can reach me at jonas.kulhanek@live.com or the authors of DeepMind Lab at lab@deepmind.com.

Extending DMHouse simulator

Getting started

First, clone this repository by running:

$ git clone https://github.com/jkulhanek/dmlab-vn
$ cd lab

Get started by installing the required packages. On ubuntu, you can do it using the following command:

$ sudo apt install -y libsdl2-dev python3.8-dev python3.8-numpy libosmesa6-dev
$ sudo apt install -y curl gnupg
$ curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
$ sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
$ echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ sudo apt update -y
$ sudo apt install -y bazel

Alternatively, you can used the pre-installed docker image.

Building pip package

To build the pip package, run the following commands:

$ bazel build -c opt --define graphics=osmesa_or_egl //python/pip_package:build_pip_package
$ ./bazel-bin/python/pip_package/build_pip_package /tmp/dmlab_pkg

The package can be installed using the following command:

$ pip install /tmp/dmlab_pkg/dmhouse-*-py3-none-any.whl

Upstream sources

DMHouse is built on top of DeepMind's Lab 3D simulator, which is in turn built from the ioquake3 game engine, and it uses the tools q3map2 and bspc for map creation.

  • DeepMind Lab is taken from github.com/deepmind/lab.

  • bspc is taken from github.com/TTimo/bspc, revision d9a372db3fb6163bc49ead41c76c801a3d14cf80. There are virtually no local modifications, although we integrate this code with the main ioq3 code and do not use their copy in the deps directory. We expect this code to be stable.

  • q3map2 is taken from github.com/TTimo/GtkRadiant, revision d3d00345c542c8d7cc74e2e8a577bdf76f79c701. A few minor local modifications add synchronization. We also expect this code to be stable.

  • ioquake3 is taken from github.com/ioquake/ioq3, revision 29db64070aa0bae49953bddbedbed5e317af48ba. The code contains extensive modifications and additions.

  • EGL headers are included in this package by DeepMind's Lab (in //third_party/GL/{EGL,KHR}), taken from the Khronos OpenGL/OpenGL ES XML API Registry at www.khronos.org/registry/EGL. The headers have been modified slightly to remove the dependency of EGL on X.

We are very grateful to the maintainers of these repositories for all their hard work on maintaining high-quality code bases.

Metadata

Release files for dmhouse 1.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmhouse 1.0.10
File Size Uploaded Provenance
dmhouse-1.0.10.tar.gz 67.4 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dmhouse 1.0.10
File Interpreter ABI Platform
dmhouse-1.0.10-py3-none-any.whl Python 3 none any Details

Total release size: 134.9 MB

Release files / dmhouse-1.0.10.tar.gz

Download URL dmhouse-1.0.10.tar.gz
Size 67.4 MB
Tags Source
SHA-256 checksum
How to use checksums
81412bc8d41ddd7a3460c7d7ff610ee12dbba97dcb94c85e2683ef97f4070310
BLAKE2b-256 checksum
How to use checksums
974c5ce6e0a21c3cea14e90b0289049a80fd24e69c96d6fe5afe39fb1df3d3ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.0

Release files / dmhouse-1.0.10-py3-none-any.whl

Download URL dmhouse-1.0.10-py3-none-any.whl
Size 67.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4ae0f8e0d59d7e9ef822bdfc625a9af069e4fcb1ee8bb46b4dd6c7df308b094d
BLAKE2b-256 checksum
How to use checksums
e769f3bdb38bdaebaaf7eebf09bcdff25fd7a04cae6c420a264e003be7cf3595
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.0

Security for dmhouse 1.0.10

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page