Until about a year ago, there was a tool that displayed Java profiling
information using hyperbolic trees (HyperProf by Vladimir Bulatov, see
http://www.physics.orst.edu/~bulatov/). As far as I can recall (or can
research with DejaNews, try "+Xerox +patent" on comp.lang.java.*), Xerox
seems to have contacted Mr. Bulatov and at least notified him of their
patent #5,619,632 (see http://www.platibus.com/hyperprof/xeroxpatent.html
for a bit of background information). Whatever that exchange may have been,
it led to Mr. Bulatov taking down his (free) tool.

Be sure to actually read the patent specification and, more particularly, the claims of the patent before abandoning any particular project, however.  Without passing upon the enforceability or scope of the '632 patent, it is important to note that the Abstract does not have any legal effect with respect to the same.  It is worthwhile to note that the USPTO (see http://www.uspto.gov) now provides a full-text database, complete with pictures for US patents.  An exemplary claim is:

"1. A method comprising:

"obtaining node-link data defining a node-link structure; the node-link structure including nodes and links, each link relating at least two of the nodes; and

"using the node-link data to present a sequence of representations of the node-link structure on a display; the sequence beginning with a first representation and ending with a last representation; the last representation being perceptible as a changed continuation of the first representation;

"each representation in the sequence including bounded node features representing nodes in the node-link structure; each bounded node feature having a center of area that has a nearest node spacing from a nearest other node feature's center of area; each bounded node feature's center of area and nearest node spacing defining a mid-spacing circle for the node feature that is centered at the center of area and has a diameter equal to the nearest node spacing;

"the mid-spacing circles of the bounded node features in each representation together determining a first convex hull for the representation, each representation's first convex hull enclosing a total area for the representation;

"the bounded node features of each representation including a subset of more spaced node features, the mid-spacing circles of the more spaced node features determining a second convex hull for the representation, each representation's second convex hull enclosing approximately half the representation's total area and enclosing a region in which bounded node features have nearest node spacings that are in general perceptibly greater than in a region enclosed by the first convex hull but outside the second convex hull;

"the nodes represented in each representation forming at least one peripheral branch, each peripheral branch including a top level and at least one lower level, the top level including a top level node and the lower levels including lower level nodes that are not in the representation's subset of more spaced node features, each node at each lower level having a parent node at a next higher level to which the node is related through one link;

"lower level node features that share a parent node feature having centers of area positioned in order approximately along an arc with sufficiently similar spacings from the center of area of the parent node feature and with sufficiently similar spacings from adjacent node features along the arc that the lower level node features sharing the parent node feature are perceptible as a group of related node features;

"the second convex hulls of the first and last representations including subsets of bounded node features that represent different sets of nodes; the sequence of representations producing a perception that at least one bounded node feature has a nearest node spacing that increases from the first representation to the last representation and that at least one other bounded node feature has a nearest node spacing that decreases from the first representation to the last representation. "

To infringe a patent, an accused program would have to practice, either literally or equivalently, each and every element and limitation described in at least one claim of the patent.  The absence of a single element is sufficient to avoid infringement and, indeed, sets up a common and perfectly legal and honorable practice called "engineering around the patent." 

Do not do this at home, folks, an opinion of counsel is an essential element of safe patent hygiene, but be aware that it can be done -- and remember that it is the patent CLAIMS, not the abstract, that define the protected invention.  No particular advice is given, or can be given, here with respect to any particular patent or computer program upon which you should rely -- each case can be different, and each requires a careful application of the facts and the law.