It makes use of a force-directed drawing algorithm, and as such it works with iterations.
While meant to do animated drawing it can also work as a static drawer (in which you specify how many steps you want to iterate at once, and ask the drawer to render)
Its most prominent features are vertex selection, multiple edges between vertexes, and vertex/edge selection.
It came as a side bonus on one of my college projects, so it was specifically made to be simple to understand, and easy to use without reading any code.
Just implement the provided interfaces, or use the given implementations, and you're good to use it :)