Controls
Runs on load. The maze is carved first, then the search sweeps through it looking for the exit.
How it works
The grid is carved into a perfect maze by depth-first search with backtracking — pick an unvisited neighbour, knock down the wall between the cells, and recurse until every cell has been reached.
The solver then explores that maze, colouring cells as it visits them so the frontier of the search is visible. Watching the wavefront spread is the whole point: it turns a graph traversal from something you trace on paper into something you can see.