With PathFinder, you can visualize how the Breadth First Search, Depth First Search, and A* pathfinding algorithms operate upon your own custom drawn graphs. Intended for use by computer science students. Available on iOS, ipadOS, and macOS.

See PathFinder in action and learn more about it here.

Among them will be 350 Swift Student Challenge winners from 41 different countries and regions. The students were chosen based on their original Swift playground submission, part of Apple’s annual WWDC student challenge, which recognizes and celebrates the next generation of coders and creators." [Apple]

**"A*** (pronounced "A-star") is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency.

In practical travel-routing systems, it is generally outperformed by algorithms which can pre-process the graph to attain better performance, as well as memory-bounded approaches; however, A* is still the best solution in many cases." [Wikipedia]

**"Depth-first search** (**DFS**) is an algorithm for traversing or searching tree or graph data structures.

The algorithm starts at the root node (selecting some arbitrary node as the root node in the case of a graph) and explores as far as possible along each branch before backtracking." [Wikipedia]

**"Breadth-first search** (**BFS**) is an algorithm for traversing or searching tree or graph data structures.

It starts at the tree root (or some arbitrary node of a graph, sometimes referred to as a 'search key'), and explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level.

It uses the opposite strategy of depth-first search, which instead explores the node branch as far as possible before being forced to backtrack and expand other nodes. [Wikipedia]

With PathFinder, you get a blank canvas. Just boot up the app, and draw any graph you'd like to see traversed, using the wall, space, start, and end draw tools. Select any of the three supported solve algorithms to see them in action. Set your solve speed using the slider.

Use the "Find Path" button to begin the solve process and use the "Reset" button to reset the canvas.