Maze Generator

Creating and concurrently solving large N-dimensional mazes

Since I was a kid, I've always had a fascination with mazes and with higher dimensions. I devised a C program that can create and solve an arbitrary sized maze, but also one with arbitrary number of dimensions: 2D, 3D, 4D, 5D, 6D, etc.

I created a multi-threaded Qt 6 GUI for it (though currently the GUI is limited to creating and displaying 2D mazes), and then set about enhancing the solving algorithm so it too can take advantage of multiple processor cores.

Using the program you can create/solve mazes, change the visual presentation, save/load them in a highly compressed format, export the currently zoomed view to a bitmap file, print them out on paper (or to a PDF file), and quickly scroll/pan around the entire maze using the mouse or keyboard. You can also toggle the display of the solution in case you want to solve the mazes yourself.

It uses a randomized Kruskal's algorithm to generate the mazes, and solves them using a concurrent dead-end filling algorithm I designed.

The source code can be found on my GitHub page, and below you will find some screenshots and a YouTube video.

Thanks to the magic of Qt for WebAssembly, you can now run this application directly inside your web browser!