This is an implementation of an A* pathfinding algorithm.
Click once to place the start node and once again to place the end node.
Then draw obstructions, if you'd like, and hit Start when you're ready.
The source code can be found on my GitHub here.