Skip to main content

Maze Generator (SVG)

Generate a random perfect maze as a scalable SVG. Choose Recursive Backtracker, Prim's or Kruskal's, set the grid size, cell size, wall thickness and colours, add a solution path, and reproduce any maze from a seed.

Input

Backtracker carves long winding corridors; Prim's grows short branchy dead-ends; Kruskal's gives a uniform, balanced texture.

Same seed + same options = the same maze every time. Leave it blank for a fresh random maze.

Appearance

Output

SVG source
 
Maze

Your maze will appear here.

Was this helpful?

Guides

Generate a random perfect maze — one path between any two cells, no loops, no isolated rooms — and get it back as a clean, scalable SVG. Pick a carving algorithm, set the grid and cell size, choose your colours, and optionally overlay the solution. Because the output is vector, it stays razor-sharp at any size: drop it into a worksheet, a game level, a print-ready puzzle, or a web page.

How to use it

  1. Choose an algorithm (see the differences below).
  2. Set Columns and Rows (5–80 each) for the grid.
  3. Tune the appearance: cell size, wall thickness, wall colour, and background.
  4. Optionally turn on Show solution path and Mark entrance & exit.
  5. Leave Seed empty for a fresh random maze each time you generate, or type any word or number to lock in a maze you can reproduce exactly later.
  6. Copy the SVG source or download it as maze.svg.

The three algorithms and how they "feel"

All three produce a valid perfect maze, but each carves with a different personality — the texture of the corridors is genuinely different.

  • Recursive Backtracker (a stack-based depth-first search) drills as far as it can before backing up. The result is long, twisty corridors with relatively few but long dead-ends. It feels the most "hand-drawn" and is usually the hardest to solve by eye, because the correct path winds a long way.

  • Prim's grows the maze outward from a single cell, repeatedly attaching a random frontier cell to the part already carved. This scatters junctions evenly and yields a branchy, organic maze with many short dead-ends — a bushy texture that tends to be easier to scan than the backtracker's long snakes.

  • Kruskal's treats every wall as an edge, shuffles them all, and knocks down a wall only when it joins two still-separate regions (tracked with a union-find). Because edges are chosen uniformly at random across the whole grid, the texture is uniform and balanced — no directional bias, a very "even" look with a moderate number of medium-length dead-ends.

If you want a punishing puzzle, reach for the backtracker; for a friendlier, more open feel, try Prim's or Kruskal's.

Reproducible mazes with seeds

The generator is driven by a seeded pseudo-random number generator. The same seed plus the same options always produces the exact same maze, on any device — so you can share a seed instead of a file, regenerate a print later, or build a set of puzzles with stable identifiers. Change any option (algorithm, size, even a colour is cosmetic but the seed governs the layout) and the seed still pins the carving. Leave the seed blank and each run draws a brand-new random maze.

Entrance, exit, and the solution

The entrance is the top-left cell and the exit is the bottom-right cell; enabling Mark entrance & exit opens those two outer walls and adds arrow markers. Show solution path overlays the unique shortest route from entrance to exit (found with a breadth-first search) as a coloured line, handy for answer keys.

Is my data sent anywhere?

No. The maze is generated entirely in your browser — nothing you type is uploaded. The SVG you see is the SVG you copy.

mazesvggeneratorlabyrinthbacktrackerprimkruskalpuzzle

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/maze-generator-svg \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "algorithm": "backtracker",
    "cols": "15",
    "rows": "15",
    "seed": "iotools",
    "cellSize": "20",
    "wallThickness": "2",
    "wallColor": "#1f2937",
    "bgColor": "#ffffff",
    "showSolution": "true",
    "solutionColor": "#464aff",
    "showEntries": "true"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `maze-generator-svg` tool (Maze Generator (SVG)) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.