WFC

WFC

Action Space

Discrete(7)

Observation Space

Dict('direction': Discrete(4), 'image': Box(0, 255, (7, 7, 3), uint8), 'mission': MissionSpace(<function WFCEnv._gen_mission at 0x7fb62adf2b80>, None))

Reward Range

(0, 1)

Creation

gymnasium.make("MiniGrid-WFC-MazeSimple-v0")

Description

This environment procedurally generates a level using the Wave Function Collapse algorithm. The environment supports a variety of different level structures but the default is a simple maze. See WFC module page for sample images of the available presets.

Requires the optional dependencies imageio and networkx to be installed with pip install minigrid[wfc].

Mission Space

“traverse the maze to get to the goal”

Action Space

Num

Name

Action

0

left

Turn left

1

right

Turn right

2

forward

Move forward

3

pickup

Unused

4

drop

Unused

5

toggle

Unused

6

done

Unused

Observation Encoding

  • Each tile is encoded as a 3 dimensional tuple: (OBJECT_IDX, COLOR_IDX, STATE)

  • OBJECT_TO_IDX and COLOR_TO_IDX mapping can be found in minigrid/core/constants.py

  • STATE refers to the door state with 0=open, 1=closed and 2=locked (unused)

Rewards

A reward of ‘1 - 0.9 * (step_count / max_steps)’ is given for success, and ‘0’ for failure.

Termination

The episode ends if any one of the following conditions is met:

  1. The agent reaches the goal.

  2. Timeout (see max_steps).

Registered Configurations

  • MiniGrid-WFC-MazeSimple-v0

  • MiniGrid-WFC-DungeonMazeScaled-v0

  • MiniGrid-WFC-RoomsFabric-v0

  • MiniGrid-WFC-ObstaclesBlackdots-v0

  • MiniGrid-WFC-ObstaclesAngular-v0

  • MiniGrid-WFC-ObstaclesHogs3-v0

Note: There are many more unregistered configuration presets but they may take a long time to generate a consistent environment.

They can be registered with the following snippet:

import gymnasium
from minigrid.envs.wfc.config import register_wfc_presets, WFC_PRESETS_INCONSISTENT, WFC_PRESETS_SLOW

register_wfc_presets(WFC_PRESETS_INCONSISTENT, gymnasium.register)
register_wfc_presets(WFC_PRESETS_SLOW, gymnasium.register)

Research

Adapted for Minigrid by the following work.

@inproceedings{garcin2024dred,
  title = {DRED: Zero-Shot Transfer in Reinforcement Learning via Data-Regularised Environment Design},
  author = {Garcin, Samuel and Doran, James and Guo, Shangmin and Lucas, Christopher G and Albrecht, Stefano V},
  booktitle = {Forty-first International Conference on Machine Learning},
  year = {2024},
}