Instructions

Right click once to place the start node, right click again to place the goal node, or long tap.

Select a search strategy and heuristic

Adjust the search speed as desired

Press the "Run" button

While the search is running, press the play/pause button () to pause the search,
and then use the step button () to advance the search one state at a time.

Colors

Start Node

Goal Node

Wall Node

Node on Solution Path

Node on Frontier

Explored Node

FAQ

Why?

I started working on this for fun, but then realized it could count as a class project, so I put some extra effort.

I hadn't had much experience with some new Javascript features (canvas, async/await, classes), and this seemed like a good chance to learn.

What are "intermediate states"?

A rough estimate of how many steps were required to find the solution. For example, for depth-first searches, it is the number of recursive calls.
For breadth-first searches, it is the number of iterations of the main loop.

It's broken on {mobile browser}.

The most I did was implement touch events, you should feel lucky you even got that much.