Make a fresh maze, solve it on screen, or print an adventure for later. Choose a world, pick the challenge, and add a rocket-shaped maze, hidden picture, or treasure hunt. No account or AI subscription needed.
Play now · Download the offline app
I built this for my own personal use and thought other people might enjoy it too. Make it your own, and feel free to improve mine. Hopefully it gives you a useful starting point, or at the very least some ideas. Cheers!
Just want to make mazes? Click Play now above. Pick a world and difficulty, then drag from the start to draw your route. Show answer reveals the solution. Print makes a worksheet; open More maze tricks to choose a pack of 1, 3, 6, or 12 mazes and include answer pages.
Want a copy that works without internet? On a computer:
- Click Download the offline app above. Save
Maze-Workshop.htmlin your Downloads folder or anywhere you like. - Double-click that file. It opens in your web browser. If it opens in a text editor, right-click it and choose Open with, then your browser.
- Make mazes. You can close the browser and open the same file again whenever you want. No installer, account, terminal, or extra files required.
Use a current browser. The standalone download has been checked in Chromium; other browsers and mobile file-opening workflows have not yet been verified. On phones and tablets, Play now is the easiest route. Drawing uses a mouse or touch; keyboard-only maze solving is not implemented.
For paper copies, choose Letter paper in the print dialog. You can also choose Save as PDF there. Illustrated worlds use more ink; Classic, Jungle, and Lego have simple emoji decorations. Difficulty age labels are suggestions, so pick what feels fun.
- Six worlds: Classic, Space, Jungle, Dragons, Mermicorn, and Lego. Three include illustrated worksheets.
- Five difficulty levels: from a path with no wrong turns to a dense challenge.
- Seven silhouette shapes, offered where they fit the chosen world, plus ordinary rectangles.
- Optional quests: collect treasures and use colored keys to open matching doors.
- Secret answers: solve a maze whose route draws a simple shape.
- Print packs and answer keys, with puzzle pages first and answers afterward.
- Repeatable mazes: the browser address records the settings and seed. Share a hosted URL to share the same puzzle.
See the actual interface
The top image is a ChatGPT-generated illustration. This image is an actual screenshot.
You can use, change, share, or sell your version under the MIT license. Keep the license notice with copies. There is no subscription and no runtime AI service. Artwork provenance is in NOTICE.md.
The download runs entirely on your device. It has no analytics, accounts, cloud saving, or outbound requests. It does not save your drawn trail. The live demo sits on my personal website, which has its own site analytics; those are not included in this repository or the download.
If you are using an AI coding assistant, point it at this repository and tell it what you want to change. The full source is included, along with tests and the worksheet artwork. Useful starting places:
| Want to change… | Start with… |
|---|---|
| Worlds, difficulty, and silhouettes | themes.js |
| Secret-shape geometry | engine.js (SECRET_SHAPES) |
| Layout, colors, and printed page | index.html and styles.css |
| How mazes are generated | engine.js |
| SVG drawing and on-screen solving | render.js, solve.js, and pointer-model.js |
| Controls, URL settings, and print packs | app.js and control-model.js |
The source is plain HTML, CSS, and JavaScript modules, with no package dependencies. Unlike the offline download, the source index.html needs a small local web server.
-
Download the source using GitHub's green Code button, then Download ZIP, and unzip it. Or clone this repository.
-
If you have Python 3 installed, open a terminal in the unzipped folder and run:
python3 -m http.server 8000 --bind 127.0.0.1
On Windows, use
py -m http.server 8000 --bind 127.0.0.1if Python is available through the launcher. -
Open http://localhost:8000 in your browser. Stop the server with Ctrl+C when finished.
For contributor checks, install Node.js 20+ and Python 3, then run:
npm test
npm run build:downloadNo npm install is needed. The second command builds dist/Maze-Workshop.html, the complete standalone app. Changes belong in the source files, then rebuild the download. Static hosting also works: serve the repository files as they are, including art/.
Found something confusing or broken? Open an issue and say what you expected, your browser, and the maze's settings or shared URL. Ideas, clearer instructions, keyboard solving, browser testing, and independently created worlds are welcome.
See CONTRIBUTING.md for code contributions, SECURITY.md for private vulnerability reporting, and SOURCE_SYNC.md for reusing improvements in a personal website.

