https://github.com/bolundai0216/miniworld
Simple and easily configurable 3D FPS-game-like environments for reinforcement learning
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Repository
Simple and easily configurable 3D FPS-game-like environments for reinforcement learning
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Miniworld is being maintained by the Farama Foundation (https://farama.org/project_standards). See the Project Roadmap for details regarding the long-term plans.
Contents: - Introduction - Installation - Usage - Environments - Design and Customization - Troubleshooting
Introduction
MiniWorld is a minimalistic 3D interior environment simulator for reinforcement learning & robotics research. It can be used to simulate environments with rooms, doors, hallways and various objects (eg: office and home environments, mazes). MiniWorld can be seen as a simpler alternative to VizDoom or DMLab. It is written 100% in Python and designed to be easily modified or extended by students.
Features: - Few dependencies, less likely to break, easy to install - Easy to create your own levels, or modify existing ones - Good performance, high frame rate, support for multiple processes - Lightweight, small download, low memory requirements - Provided under a permissive MIT license - Comes with a variety of free 3D models and textures - Fully observable top-down/overhead view available - Domain randomization support, for sim-to-real transfer - Ability to display alphanumeric strings on walls - Ability to produce depth maps matching camera images (RGB-D)
Limitations: - Graphics are basic, nowhere near photorealism - Physics are very basic, not sufficient for robot arms or manipulation
List of publications & submissions using MiniWorld (please open a pull request to add missing entries): - Decoupling Exploration and Exploitation for Meta-Reinforcement Learning without Sacrifices (Stanford University, ICML 2021) - Rank the Episodes: A Simple Approach for Exploration in Procedurally-Generated Environments (Texas A&M University, Kuai Inc., ICLR 2021) - DeepAveragers: Offline Reinforcement Learning by Solving Derived Non-Parametric MDPs (NeurIPS Offline RL Workshop, Oct 2020) - Pre-trained Word Embeddings for Goal-conditional Transfer Learning in Reinforcement Learning (University of Antwerp, Jul 2020, ICML 2020 LaReL Workshop) - Temporal Abstraction with Interest Functions (Mila, Feb 2020, AAAI 2020) - Addressing Sample Complexity in Visual Tasks Using Hindsight Experience Replay and Hallucinatory GANs (Offworld Inc, Georgia Tech, UC Berkeley, ICML 2019 Workshop RL4RealLife) - Avoidance Learning Using Observational Reinforcement Learning (Mila, McGill, Sept 2019) - Visual Hindsight Experience Replay (Georgia Tech, UC Berkeley, Jan 2019)
This simulator was created as part of work done at Mila.
Installation
Requirements: - Python 3.7+ - Gymnasium - NumPy - Pyglet (OpenGL 3D graphics) - GPU for 3D graphics acceleration (optional)
You can install it from PyPI using:
console
python3 -m pip install miniworld
You can also install from source:
console
git clone https://github.com/Farama-Foundation/Miniworld.git
cd Miniworld
python3 -m pip install -e .
If you run into any problems, please take a look at the troubleshooting guide.
Usage
There is a simple UI application which allows you to control the simulation or real robot manually.
The manual_control.py application will launch the Gym environment, display camera images and send actions
(keyboard commands) back to the simulator or robot. The --env-name argument specifies which environment to load.
See the list of available environments for more information.
``` ./manual_control.py --env-name MiniWorld-Hallway-v0
Display an overhead view of the environment
./manualcontrol.py --env-name MiniWorld-Hallway-v0 --topview ```
There is also a script to run automated tests (run_tests.py) and a script to gather performance metrics (benchmark.py).
Offscreen Rendering (Clusters and Colab)
When running MiniWorld on a cluster or in a Colab environment, you need to render to an offscreen display. You can
run gym-miniworld offscreen by setting the environment variable PYOPENGL_PLATFORM to egl before running MiniWorld, e.g.
PYOPENGL_PLATFORM=egl python3 your_script.py
Alternatively, if this doesn't work, you can also try running MiniWorld with xvfb, e.g.
xvfb-run -a -s "-screen 0 1024x768x24 -ac +extension GLX +render -noreset" python3 your_script.py
Citation
To cite this project please use:
bibtex
@article{MinigridMiniworld23,
author = {Maxime Chevalier-Boisvert and Bolun Dai and Mark Towers and Rodrigo de Lazcano and Lucas Willems and Salem Lahlou and Suman Pal and Pablo Samuel Castro and Jordan Terry},
title = {Minigrid \& Miniworld: Modular \& Customizable Reinforcement Learning Environments for Goal-Oriented Tasks},
journal = {CoRR},
volume = {abs/2306.13831},
year = {2023},
}
Owner
- Name: Bolun
- Login: BolunDai0216
- Kind: user
- Location: New York City
- Company: New York University
- Website: bolundai0216.github.io
- Repositories: 10
- Profile: https://github.com/BolunDai0216
Robotics, Reinforcement Learning, Machine Learning and Computer Vision
GitHub Events
Total
Last Year
Dependencies
- JamesIves/github-pages-deploy-action v4 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- furo *
- myst-parser *
- sphinx *