Back to projects

Maze Generator

A small public web toy for making fresh printable mazes without accounts, ads, or a backend.

Maze Generator revives a JavaScript canvas experiment I programmed myself in 2018 during a free afternoon. I had a new idea for a maze-generation algorithm, wanted to see if it actually worked, and built the thing to prove it. The modern version preserves that original spirit while adding seeded grid, circular, triangular, hexagonal, honeycomb, and diamond mazes, adjustable rounded walls, optional solution paths, PNG export, and clean browser printing.

  • Canvas
  • Static web
  • Free utility
  • Printable puzzles

A closer look.

What it does.

  • Seeded grid, circular, triangular, hexagonal, honeycomb, and diamond maze generation
  • Adjustable sharp-to-rounded wall rendering
  • Kids, classic, and large preset sizes
  • Optional solution overlay for checking or learning
  • Downloadable PNG output
  • Print-friendly layout that hides the website chrome

Under the surface.

  • Next.js App Router static route inside darylbeattie.com
  • Client-side canvas rendering with no backend dependency
  • Seeded pseudo-random generation for repeatable puzzles
  • Depth-first maze carving with breadth-first solution tracing
  • Integrated into the existing website deployment and image optimization flow

Why I built it.

  • Originally programmed in 2018 because I was bored, had some free time, and wanted to validate a maze-generation idea by building it
  • Preserved because it shows the kind of engineer who still programs for fun outside of assigned product work
  • Designed as a free, lightweight utility for kids, parents, teachers, and puzzle people
  • Lives at /maze so it can remain part of the public website project archive

AI in the process.

  • Used Codex to port the old canvas idea into a typed, static Next.js route while keeping the utility simple and browser-only
  • Used agents for implementation, responsive polish, project wiring, and local verification
  • Kept the scope focused on preserving the original toy as a useful public page
Explore the other projects