libcola — Overview

libcola is a cross-platform C++ library for constraint graph layout. Specifically, force-directed layout using the stress-majorization method subject to separation constraints. Applications include layout with non-overlapping nodes and clusters, directed graph layout and layout preserving the crossing properties of a given starting layout.

libcola is part of the Adaptagrams project. There are no official releases yet, though the code is stable and available from the Adaptagrams GitHub repository.

The API is documented using Doxygen. The documentation you are currently reading can be obtained by running doxygen in the cola directory.

libcola is written and maintained by Michael Wybrow and Tim Dwyer, members of Immersive Analytics Lab at Monash University, Australia.

The algorithms used for ConstrainedFDLayout are described in the following papers. If you use libcola, please cite the relevant paper.

The method used in ConstrainedMajorizationLayout is described in: