# Maze Maker (Rectangle, Hexagon, Round and Shapes) > Printable mazes in squares, hexagons or circles, cut to a heart, star or your own shape. Make printable mazes with square or hexagon cells or round “theta” mazes, optionally cut to a heart, star, circle, diamond, triangle or a shape you draw with # signs. Choose the recursive backtracker (long corridors), Kruskal or Wilson (uniform random) algorithm, up to six mazes per page and answer keys with the solution path. Part of usefulweb.app (https://usefulweb.app/). Part of [Printshop](https://printshop.usefulweb.app/) (ownerApp: printshop). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://printshopmaze.usefulweb.app/ (interactive tool at https://printshopmaze.usefulweb.app/tool) - JSON API: POST https://printshopmaze.usefulweb.app/api/v1/calculate with a JSON object of inputs (schema: https://printshopmaze.usefulweb.app/api/v1/tool) - OpenAPI: https://printshopmaze.usefulweb.app/openapi.json - MCP (Streamable HTTP): https://printshopmaze.usefulweb.app/mcp - tool `printshop_maze` ## Inputs - shape (select): Cells - cols (integer): Columns - rows (integer): Rows (rings for a round maze) - mask (select): Outline - maskText (textarea): Own shape (# = inside) - One text line per row; # marks a cell inside the maze. Columns and rows then come from the drawing. - algorithm (select): Algorithm - count (integer): Number of mazes - perPage (select): Mazes per page - seed (text): Seed - The same seed and settings always give the same puzzles. Change it for new ones. - title (text): Title on the page (optional) - answers (boolean): Answer-key pages - header (boolean): Name and date line - paper (select): Paper size - orientation (select): Orientation ## Method - Every shape is a graph of cells whose sides are either shared with a neighbour or part of the outer wall. Square and hexagon grids can be cut to an outline (tested at each cell centre); only the largest connected group of cells is kept. Round mazes have one centre cell and rings whose cell count doubles when cells get wider than two ring heights. - The maze is a spanning tree of that graph, so exactly one path joins the entrance (top) and the exit (bottom, or the centre of a round maze). Recursive backtracker = randomised depth-first search (about 10 % dead ends); Kruskal = random walls removed with union–find (about 30 %); Wilson = loop-erased random walks, which pick every possible maze with the same probability. - The solution is found by breadth-first search through the open passages and drawn through the cell centres and the middle of each passage. ## Limits - Very large mazes on small paper get thin walls; check the PNG preview before printing many copies.