Go to Google Home
A data-code-compute resource for research and education in information visualization
InfoVis Home Learning Modules Software Databases Compute Resources References

Software > Hyperbolic Trees

Description | Pros and Cons | Applications | Details | Usage Hints | References | Acknowledgments

hyp 1 hyp 2 hyp 3
Visualization of IU's organization by Yuezheng Zhou


Hyperbolic graph layout uses a context + focus technique to represent and manipulate large tree hierarchies on limited screen size. Hyperbolic trees are based on Poincare's model of the (hyperbolic) non-Euclidean plane. Experience non-Euclidean Geometry with Paul Garrett's applet! John Lamping, Ramana Rao and Peter Pirolli rediscovered hyperbolic spaces in 1995 for information visualization. Tamara Munzner at Stanford University developed a 3D hyperbolic viewer in her Ph.D. thesis.

The hyperbolic layout employs the following techniques:

  • Radical Layout: Conventionally, trees are displayed on a Euclidean plane with the root at the top and children below their parents and connected to their parents with edges. The hyperbolic layout uses a radical layout. The root is placed at the center while the children are placed at an outer ring to their parents. The circumference jointly increases with the radius and more space becomes available for the growing numbers of intermediate and leaf nodes.
  • Distortion Technique: Hyperbolic layout uses a nonlinear (distortion) technique to accommodate focus and context for a large number of nodes.
  • Non Overlapping:To ensure that nodes do not overlap each other, hyperbolic layout algorithms assign an open angle for each node. All children of a node are laid out in this open angle.
  • Refocusing: Transformations are provided to allow fluent node repositioning. Users can click on a node to move it to the center or to grab and reposition a single node.

Pros & Cons

Hyperbolic trees are very valuable to visualize hierarchical structures such as file directories, web sites, classification hierarchies, organization hierarchies, newsgroup structures, etc. While traditional methods such as paging (divide data into several pages and display one page at a time), zooming, or panning show only part of the information at a certain granularity, hyperbolic trees show detail and context at once.



In class we will use the hyperbolic tree implementation by Jason Baumgartner (2001) based in part from the hyperbolic tree implementation by Andreas Hadjiprocopis (1999). We will use the hyperbolic tree code implemented in the Information Visualization XML Toolkit.

Click image for larger version.
Visualization of Roget Thesaurus using the IV XML Toolkit. The image appeared in Jason Baumgartner & Tim Waugh (2002) Roget2000: A 2D hyperbolic tree visualization of Roget’s Thesaurus. Poster accepted for SPIE Conference on Visualization and Data Analysis, January 20-25, 2002, San Jose, CA, USA.

Other packages:
HYPERTREE is another tree viewer that supports circular, linear and hyperbolic trees (source code).
The H3Viewer by Tamara Munzner is available as source/binary release at http://graphics.stanford.edu/~munzner/h3/.

Usage Hints

The Hyperbolic Tree package can be found on ella at '/home/www/ella/htdocs/classes/L697/code/toolkit/gui/hyperbolic'.

The XML implementation in the Information Visualization XML Toolkit can be found on ella in '/home/www/ella/htdocs/classes/L697/code/toolkit/xmlbridge'.

To use only the hyperbolic tree portion of the toolkit you need an entire copy of the Hyperbolic Tree Package and the Information Visualization XML Toolkit, as listed in the above directories on ella. You need to maintain the package (directory) structure of these copied files. To run the code as an applet, use the XMLHyperbolicTree as a visual component just like any other Swing component. Please review the applet example.

In addition, the Information Visualization XML Toolkit provides a demo of the hyperbolic tree on ella in '/home/www/ella/htdocs/classes/L697/code/toolkit/demo/'. Copy the demo files to a machine with the proper JDK (1.3 with the XML pack or 1.4) and then double click on 'infovis.jar' to open the demo. Use 'Select File' in the top menu to select a newly created XML file of to visualize an XML demo files.

Note:  Hyperbolic trees require a 'hierarchy.xml' input file. They cannot display 'tabular.xml' or 'list.xml' structured files.

Variations: Change of Hyperbolic parameters.

  • Assign different angle wedges to each child to make the nodes more equally distributed in space.
  • Change parameters of distortion function to achieve different distortion effects.
  • Make use of text, color and icon to add information dimension.
  • Resolve tradeoffs between appearance and speed.



The hyperbolic tree implementation is based in part on the hyperbolic tree implementation by Andreas Hadjiprocopis (1999). It was modified by Jason Baumgartner in 2001 and integrated into the XML Toolkit by Nathan James Deckard.

HYPERTREE is a tree viewer that supports circular and linear trees is available from Sugen.

Information Visualization Cyberinfrastructure @ SLIS, Indiana University
Last Modified May 13, 2004