A fast, modular and customizable generator for rectangular mazes.
Project description
Welcome to Erbsland Maze
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.
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
pycairolibrary for rendering SVG files.
Quickstart Guide
Follow these steps to get started with Erbsland Maze:
-
Install the package from PyPI:
pip install erbsland-maze -
Generate your first maze:
elmaze -x 100 -y 100 -o maze.svgThis command creates a
maze.svgfile in the current directory with your newly generated maze. -
Show additional command-line options and configurations:
elmaze --help
Documentation
You find all details about the library, its design and file format in the documentation.
Examples
elmaze -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
elmaze -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
elmaze -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
elmaze -x 125 -y 255 -l 5.0 -t 2.5 -f 0,0,2,0 -c ^mn/s/3/3 -c ^ms/n/5/3 -e n/8 -m n/5/8 -c ^m/n/5/8 -e s/0/x -m s/3 -e s/-5,0/x -m s/3/-5,0 -e s/-10,0/x -m s/3/-10,0 -e s/5,0 -m s/3/5,0 -e s/10,0/x -m s/3/10,0 -c c/s/3/-10,0 -c c/s/3/-5,0 -c c/s/3 -c c/s/3/5,0 -c c/s/3/10,0
License
Copyright (c) 2003-2026 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file erbsland_maze-1.4.8.tar.gz.
File metadata
- Download URL: erbsland_maze-1.4.8.tar.gz
- Upload date:
- Size: 305.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aaeddfe86c663cd46aa2babbf75bd1eb41e77ba6e6ddee5869825637f277b2e
|
|
| MD5 |
9f8a8a7f84c5afa12706a2443959825d
|
|
| BLAKE2b-256 |
e42dff817375ed4e6b223e745ad751378585ffedc294ba56d86dc2788901fefe
|
Provenance
The following attestation bundles were made for erbsland_maze-1.4.8.tar.gz:
Publisher:
publish.yml on erbsland-dev/erbsland-maze
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
erbsland_maze-1.4.8.tar.gz -
Subject digest:
1aaeddfe86c663cd46aa2babbf75bd1eb41e77ba6e6ddee5869825637f277b2e - Sigstore transparency entry: 1674715493
- Sigstore integration time:
-
Permalink:
erbsland-dev/erbsland-maze@7bc84e19ea390dbdc495eb69e5124079b08ddcf5 -
Branch / Tag:
refs/tags/v1.4.8 - Owner: https://github.com/erbsland-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7bc84e19ea390dbdc495eb69e5124079b08ddcf5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file erbsland_maze-1.4.8-py3-none-any.whl.
File metadata
- Download URL: erbsland_maze-1.4.8-py3-none-any.whl
- Upload date:
- Size: 81.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb8a9fd0c255c6d8f73e85a8792275bf40766b1b17a6f8e3aeaf092a4148718c
|
|
| MD5 |
f60792b6b24aac3d3b23f0299d46a3ea
|
|
| BLAKE2b-256 |
d681b8a8f2c6aa5c5b545ff678c3be535d8331c28bc3a55574ac55fab03ae7af
|
Provenance
The following attestation bundles were made for erbsland_maze-1.4.8-py3-none-any.whl:
Publisher:
publish.yml on erbsland-dev/erbsland-maze
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
erbsland_maze-1.4.8-py3-none-any.whl -
Subject digest:
eb8a9fd0c255c6d8f73e85a8792275bf40766b1b17a6f8e3aeaf092a4148718c - Sigstore transparency entry: 1674715516
- Sigstore integration time:
-
Permalink:
erbsland-dev/erbsland-maze@7bc84e19ea390dbdc495eb69e5124079b08ddcf5 -
Branch / Tag:
refs/tags/v1.4.8 - Owner: https://github.com/erbsland-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7bc84e19ea390dbdc495eb69e5124079b08ddcf5 -
Trigger Event:
release
-
Statement type: