Mondrian is a builder of graph-based visualizations. While its roots date back to 2005, there have been multiple incarnations since then. The current version is based on Bloc and makes extensive use of its mechanisms. As a result it requires a very short implementation that is specific to visualizing graphs. It turns out that most of the things we need for graphs are actually generic concepts that can be used for all sorts of other graphical needs.

To get a more concrete idea of what Mondrian is about, let's consider some examples.

A few examples

The first example shows a tree made of nodes and interconnecting edges that are organized as a radial tree. Except that there are also two red edges that do not affect the layout.

Another one shows a UML-like visualization of a class hierarchy.

Each of these examples are similar in that they are constructed as transformations of some input data into pictures. Yet, the transformation is different:

One shows a tree with nodes represented as rectangles. Another one shows nodes represented as UML class elements.

One shows only simple nodes. Another one also shows nested nodes.

Most drawn edges affect the visualization, except for two red ones that even if thicker they are passive ones.