Currently, Shrimp supports six layouts: Grid, Spring, Radial, Tree, Sugiyama, and TreeMap.
The default layout for each node (in a nested view) is Grid. However, users can apply the other layouts to any selected node by issuing the required commands from the the context menu or the toolbar.
The Grid Layout arranges all the children (or sub-nodes) of a specific node to fit into the inner bounds of that node in a rectangular format. It doesn't take arcs into consideration when laying out the nodes. There are a few varieties of grid layouts which organize the nodes based on the number of children, alphabetically, by the number of relationships, by type, or by another attribute.
The Spring Layout simulates a mechanical system. Highly connected nodes tend to be pulled together and more isolated ones tend to be pushed away from each other.
The Radial Layout positions the nodes and arcs in a radial pattern. This layout will only work well on certain graphs.
The Tree Layout algorithm extracts an acyclic graph from a set of nodes by tracing their relationships. Each node is assigned a layer number. The nodes in the same layer are arranged in a special order to minimize the edge crossings between two consective layers. Some algorithms produce a tree-like layout.
The Sugiyama Layout algorithm is also a vertical tree layout. The difference is it uses smooth bezier curves for the arcs. This layout is very good for trees and dags (directed acyclic graphs).
The TreeMap Layout algorithm is a space-filling method of visualizing large hierarchical data sets.
| Grid |
Spring |
| Tree |
Sugiyama |
| Radial |
TreeMap |
The Shrimp Fisheye zoom is applied to the view when users want to maintain the contextual relations between a specific node and the other nodes on the screen. A user can apply fisheye zooming to any node of special interest while maintaining the pertinent properties such as orthogonality or other spatial relations. The current Shrimp Fisheye zooming algorithm is an orthogonal algorithm which is based on the original fisheye adjustment algorithm proposed by Dr. M. A. Storey. It was modified to reduce the transformation storage requirements and to support any kind of layout (e.g. Grid, Spring or Tree).
A major feature of the Shrimp Fisheye zooming is that it is reversible without any special order. For example, if a user applied fisheye zooming to node A, B and C (in that sequence), when the user wants to revert back to the original view the reverse path (C, B and then A) does not need to be followed.
Shrimp can also position the nodes in one horizontal row, or in one vertical column, or it can also cascade the nodes.

