Open source diagramming framework for Java


Raw data is hard to read Project and browse
Common approaches to graph layout fail to deliver representation where we can actually read things, either globally, or locally. Data projections lead to readable data diagrams at any scale. Projected data makes layout tuning easy and flexible.


Global and local views without compromise

Zooming through nested structures is great to let the user discover explore the various layers of complexity of a structure.

Triggering local views on individual items open the door to in-depth data exploration.

Compose data diagrams with multiple layouts in a single map

Assigning layouts to structural data patterns generates diagrams closed to the domain model conventions.

2 ways for analysing data topologies:

  • top-down analysis: compute largest super-structures first, and refine content of each structure by computing internal sub-structures.
  • bottom-up analysis: compute smallest sub-structures first, and then generate super-structures based on sub-structures patterns until no more super-structure is generated.
Multiple layout algorithms working together
Layouts are designed to be adaptive and to deal with constraints given by the user or by other concurrent layouts.
Label layouts Slot layouts Edge layouts Edge bundling
Text is made always readable by a background job and remains reponsive to the visualization context (zoom change, positions change, etc). Highly interconnected entities can be explored in depth with precise control over slot layouts. Edges can be drawn with various policies: bundling edges to simplify the view, using an orthogonal path, bending edge with splines [not yet available], etc. Edge bundling summarizes information and allows generalized knowledge about groups relationships. Detailed neighbourhood can be explored by dynamically by browsing to different views, or by adding context aware information according to currently displayed area [not yet available], etc).
Layouts can be mixed freely. For example, one may build orthogonal bundled edges by applying specific layout for all incoming and outgoing edges (interfaces) of each node.
Nested layouts reduce computational cost

Resolving several small layouts is easier than resolving one large layout.

Domain model oriented layout are often straightforward to compute (single step instead of multi-step such as force based layouts).

Composite layouts are ideal candidates for parallel computing

Running on the Java Virtual Machine, Datagr4m’s runtime can use various concurrent computation policies to make best use of mono and multi-core architectures.

Datagr4m could render dense structure efficiently by relying on the GPU. (not implemented yet)

Other features

Hierarchical layouts are more stable than flat graph layouts: a classical force based layout might become instable by adding new nodes, whereas projection maintain map consistency over time.