Graph Theory is a branch of mathematics that studies abstract objects called graphs.
A graph is defined as a set of nodes (also called vertices) and a set of connections (or edges) to which we could also assign a weight (which normally represents the cost of choosing that connection).
It turns out that this relatively simple model gives us a very useful tool for studying and describing many many real world phenomena, such as social networks, system architectures, computer networks,...
Many times we are faced with a problem of finding a path that leads from some starting node A to some other node B (and if such path even exists). One very common application of this is road navigation or network packet routing.
This app visualizes some path finding algorithms on a grid system (which is represented as a graph). Every block has 4 connections to 4 blocks that surround it (called neighbour nodes).
Blue block is a starting node, while the red one is the destination. Add walls by dragging with your mouse on the empty grid spots. Remove wall by clicking on it.
Choose algorithms to visualize under algorithms options. You can also request the program to draw some wall patterns for you (for example a maze).