This demonstrates the path finding calpabilities of the jkstra library. jkstra stores graphs internally as adjacency lists, not matrices, but for a demo it's easier to picture it like that.
Here each cell is a node (vertex) in the graph. It's related to its adjacent vertices by edges with travel cost = 1 (for horizontally and vertically adjacent nodes), or √2 (for diagonally adjacent nodes). Black cells are obstacles.
Left-click to set the starting point. Right-click for the end point.
Path cost:
Settled nodes: