A blender add-on that runs a recursive back tracker maze algorithm over the selected part of any mesh to produce a maze.
The add-on operator can be found in Edit Mode on the Mesh menu, or using the F3
menu to search for maze.
After carving the maze along the edges, the add-on (by default) bevels all the edges in the selection to give the maze path some width and then extrudes the walls of the mesh outward to give the maze some height.
If the initial maze looks odd, adjust the Width and Extrude values to suit your mesh.
Changing the Random Seed parameter will recalculate a different maze on the same selection.
The Braiding slider defines whether the maze has dead ends. The higher the value of Braiding the less dead ends and the more loops or alternative paths in the maze.
The Boundary Wall Type is applicable if only part of the mesh is selected to run the maze on, or the mesh has a boundary (for example a grid mesh). This parameter sets the outer wall of the maze to Thin, Thick or None.
Advanced Options adds some extra parameters to the Path and Wall Parameters that effect the bevel and extrude operators.
Bevel Amount Type (options Offset, Width, Depth and Percent sets how the Width slider effects the bevel or path width. See the bevel edges operator documentation for details.
The Path Width sets the width of the path. If set to zero only the edges of the maze within the original mesh are selected, no bevel or extrude takes place.
The Clamp Overlay and Loop Slide parameters are passed straight to the bevel edges operator.
Offset Relative - scales the offset relative to the surrounding geometry.
Extrude - sets the height of the maze walls.
Offset Even - scales the offset to give more even thickness to the top width of the walls.
Thickness - narrows the top of the wall to give a tapered profile.
Outset - if the walls are tapered the tapered part extends into the path area.
A Blender mesh structure can be seen as equivalent to the grid of cells and list of links used as the data structure for 2D mazes (for example by Jamis Buck in his book "Mazes for Programmers").
Here the mesh vertices are equivalent to cells and the mesh edge connections define the cell neighbors. A maze carving function can then return a subset of the edges that define the path of a maze through the mesh.
Large meshes
The mesh maze add-on takes about 5 seconds (on my machine) to generate a maze on a grid with ~10 000 vertices. It has been optimized so that the maze path is regenerated if the random seed or braiding values are changed but not for changes to the path width or wall height.
3D Mazes
The add-on can be run on 3D networks of vertices and edges to produce 3D mazes. These networks should have no faces. In this case the edges that are part of the maze will be remain selected after the add-on is run. When a mesh has no faces the path and wall parameters are ignored. It is up to the user to invert the selection and delete the edges not in the maze. The edges can then given shape with a skin modifier
An example of how to do this is given in the github README.
Changed license to "SPDX:GPL-3.0-or-later",
This extension does not require special permissions.
So? Where is the operator?... Please resubmit for review when you've added serious description with steps to use the add-on, better description of functionalities it provides and etc. I use you have description on github.
Hey everyone,
Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.
Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.
Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.
Thanks for understanding, and feel free to reach out if you have any questions.
Sign in to comment.
Ready for review