PathFinder is a Java library for implementing path finding. It provides an interface for describing path finding algorithms and implementations of depth first search, Dijkstra's algorithm, and A*. The A* implementation was derived from the excellent description given by Bryan Stout in Game Programming Gems.
This applet demonstrates the path finding functionality. The green dot is the start node, the red dot is the goal node. A grey square represents a location that is easily traversable. A blue square costs a lot to traverse into or out of. A black square is impassable.
You can create a new obstacle by clicking on the map. You can create a new blockage by pressing Control and clicking on the map. You can clear a location by pressing Shift and clicking on the map.
You can pick which algorithm gets used. Dijkstra's algorithm and A* will take into account the cost of blue squares and avoid going onto or off of them. Depth first will only take into account the black squares.
PathFinder is free/open source software, licensed under version 2 of the GPL.