Skip to content
John M. Boyer edited this page Aug 15, 2026 · 38 revisions

This source code project provides a library for implementing graph algorithms as well as implementations of several planarity-related graph algorithms. The origin of this project was to provide reference implementations for Edge Addition Planarity-Related Algorithms. This project includes implementations of:

  • the core Edge Addition Planarity Algorithm, which is now the fastest and simplest linear-time method for planar graph embedding and planarity obstruction isolation (i.e., Kuratowski subgraph isolation)
  • a method for drawing planar graphs using visibility representations (as well as an ascii art renderer)
  • an outerplanar graph embedder and outerplanar obstruction isolator
  • a number of subgraph homeomorphism search algorithms
  • low-level methods, such as for vertex, adjacency list, and edge iteration, visitation tracking, adding/deleting edges, and mixed directed and undirected edges
  • utility methods, such as for copying and duplicating graphs, performing depth first search (DFS), computing lowpoints, determining biconnected components, and traversing planar embedding faces.
  • graph I/O methods, such as for adjacency list and matrix formats, G6, and GraphML.

There has been successful technology transfer into other projects of this project's code or algorithms, including:

For more information, please see the sections below:

1. Project Overview

2. Dev Setup

3. Test Support

Clone this wiki locally