maze icon indicating copy to clipboard operation
maze copied to clipboard

Generate Mazes of different types and Datasets for Deep Learning (GANs, RL)

Maze

Create Mazes of different types or generate Datasets to train your Maze GANs or Reinforcement Learning agents. Rectangular Maze Dataset on Kaggle.

https://user-images.githubusercontent.com/7283624/183983986-626d8a34-1e45-40c2-af9a-79ddd010a31a.mp4

To understand how these Mazes are constructed, watch the accompanying ⏵︎video tutorials.

Quick Start

No installations required. Just clone this repository and run code

$ git clone https://github.com/emadehsan/maze

$ cd maze/src

# draw a rectangular maze
$ python rectangular.py

# or a circular maze
$ python circular.py

# or a triangular maze
$ python triangular.py

# or a hexagonal maze
$ python hexagonal.py

Generate Maze Dataset

You can also generate a dataset of Mazes. Right now, only Rectangular (actually Squared) Mazes are supported.

Use the scripts in src/datasets.

Example:

$ cd src/datasets/
$ python generate_rect_dataset.py -rows 10 -width 10 -items 1000

This will create a folder inside src/datasets with name rectangular_mazes_TIME. The folder will contain

  • Mazes as png images
  • logs.txt containing information about process (can be discarded)
  • spanning_tree.txt containing the Spanning Tree edges used to create the corresponding maze

Link to Rectangular Maze Dataset on Kaggle.

Current Mazes

  • Rectangular Maze using Randomized Prim's Algorithm [ tutorial ]

    Squared Maze using Prims Algorithm
  • Circular Maze using Depth First Search [ tutorial ]

    Circular Maze using Depth First Search
  • Triangular Maze using Depth First Search

    Triangular Maze using Depth First Search
  • Triangular Maze using Kruskal's Algorithm

    Triangular Maze using Kruskal Algorithm
  • Hexagonal Maze using Depth First Search

    Hexagonal Maze using Depth First Search

Note

  • Please share your feedback by creating an issue or on Twitter