Visibility graphs are used to find the shortest path between two points while avoiding polygonal obstacles. A visibility graph models locations as nodes and visible connections between locations as edges. It is constructed by connecting every location node to every other mutually visible location. The shortest path between any two points avoiding obstacles must pass through obstacle vertices or the two points. Visibility graphs can be used to find this shortest path and are constructed efficiently in O(n2logn) time using plane sweep algorithms. Reduced visibility graphs further simplify the graph by removing unnecessary edges not useful for path planning.