Skip to main content

A fast, modular and customizable generator for rectangular mazes.

Project description

Erbsland Maze is a sophisticated, open-source maze generator designed for creating complex, rectangular mazes. It exports mazes as SVG files, making them perfect for graphic design applications or even for 3D modeling. This tool stands out for its customization capabilities; it supports various endpoint configurations, allowing for connected or dead-end designs.

docs/images/example_2.svg

Features

  • Modular and Flexible: Tailor your maze to fit any project requirement, from simple puzzles to complex labyrinth designs.

  • Customizable Endpoints: Specify any number of endpoints, deciding whether they’re interconnected or serve as individual dead-ends.

  • Design Freedom: Freely position endpoints, incorporate blank areas for shaping the maze, and merge smaller rooms into larger spaces for aesthetic or functional purposes.

  • Path Customization: Adjust room connections to guide the maze’s pathways or to craft a unique template for your designs.

Requirements

To use Erbsland Maze, you’ll need:

  • Python 3.12 or higher.

  • The pycairo library for rendering SVG files.

Quickstart Guide

Follow these steps to get started with Erbsland Maze:

  1. Clone the repository and navigate into it:

    git clone https://github.com/erbsland-dev/erbsland-maze/
    cd erbsland-maze
  2. Create and activate a new Python virtual environment:

    python3.12 -m venv venv
    source venv/bin/activate
  3. Install pycairo:

    pip install pycairo
  4. Generate your first maze:

    cd src
    python generate_maze.py -x 100 -y 100 -o maze.svg

    This command creates a maze.svg file in the src directory with your newly generated maze.

  5. For additional command-line options and configurations:

    python generate_maze.py --help

Documentation

You find all details about the library, it’s design and file format in the documentation.

Examples

generate_maze.py -x 300 -y 300 -t 0.5 -e nw -e se -m w/3/1 -m nw/5 -m n/3/1 -m ne/5 -m e/3/1 -m se/5 -m s/3/1 -m sw/5 -b c/5 -b c/3/-6,0 -b c/3/6,0 -b c/3/0,-6 -b c/3/0,6 -f 2 -c ^m/w/3/1 -c ^m/nw/5 -c ^m/n/3/1 -c ^m/ne/5 -c ^m/e/3/1 -c ^m/se/5 -c ^m/s/3/1 -c ^m/sw/5
docs/images/example_1.svg
generate_maze.py -x 300 -y 100 -l 4 -t 2.5 -e w/10 -e e/10 -m w/3/10 -m e/3/10 -b nw/5 -b ne/5 -b se/5 -b sw/5
docs/images/example_2.svg
generate_maze.py -x 200 -y 300 --height-parity=none --width-parity=none -l 4 -t 0.5 -e nw -e n/0/x -e ne/0/x -e e/20/x -e se -e s/0/x -e sw/1/x -m sw/2/1 -b w/2x67 -b ne/30x20/-4,12 -b se/30x20/-4,-12 -b e/20x43
docs/images/example_3.svg

License

Copyright © 2003-2024 Tobias Erbsland https://erbsland.dev/

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

erbsland_maze-1.3.2.tar.gz (58.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

erbsland_maze-1.3.2-py3-none-any.whl (77.3 kB view details)

Uploaded Python 3

File details

Details for the file erbsland_maze-1.3.2.tar.gz.

File metadata

  • Download URL: erbsland_maze-1.3.2.tar.gz
  • Upload date:
  • Size: 58.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for erbsland_maze-1.3.2.tar.gz
Algorithm Hash digest
SHA256 c51555e8ddf96b88ede9d46347e7a7e95a4ab8358140b9ed5c688ef6e7de856c
MD5 32874c7797813ea758e186f525d3838e
BLAKE2b-256 1cba25490f5c957191f23d35a55a802f4522a9aa46723c2001f3edb837944460

See more details on using hashes here.

File details

Details for the file erbsland_maze-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: erbsland_maze-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 77.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for erbsland_maze-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1e8aa01f4e347f9a898a395de45c85c0b549ba21da9b036b4ce4de1eb6bbb658
MD5 62d309ec27613f0d9437c9adf705975c
BLAKE2b-256 ca692a864abb21af8379c1b8264f1fb1f3575e14b801edea8615e80dd7d3b6b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page