BirdEye is a community project to advance the design and development of a comprehensive open source information visualization and visual analytics library for Adobe Flex.  It is an interesting open source AS3 library, but has little or no documentation. Since I’ve used it written some stuff about it, here it is.

Within BirdEye is RaVis: Relational Analysis (RaVis) Methods of analysing relationships, structures, and links among objects.

RaVis used to be flexvizgraphlib, which got integrated into BirdEye, and is at the time of writing the most advanced component. flexvizgraphlib is itself based on Spring Graph.

There is no official doc for RaVis or Birdeye, only some examples in their SVN. There is however a discussion group:

RaVis is a powerful and well thought out library for rendering graphs, and I strongly suggest looking at it if you need to represent a graph. A couple of drawbacks, however:

– RaVis is strongly oriented towards using XML as a datasource for your graph. It’s possible to use another datasource, like a database, but you’ll have to jump through a few hoops to do it.

– The code for the actual Layout building seems a bit messy, and it’s difficult to adapt it. The subject isn’t easy, but an effort could be made to make things a bit more modular.

– as I said, no docs. Here are a few notes I took that might be of use to a RaVis newbie.

An explanation of a classic use of RaVis

The first thing you need is a VisualGraph. This is the object that you add to the stage, and that holds the displayed graph.

Around it are the following elements:

  • An item renderer : the representation of a node
  • an edge renderer : the representation of an edge
  • an edge label renderer : the representation of an edge label. Why it is separate from the edge renderer is as yet unclear
  • a graph : This holds the actual graph data, a collection of nodes and a collection of edges, without any information on their graphical representation
  • a layouter : This creates the actual graph representation. The information concerning the graphical representation of the graph is held in a LayoutDrawing

The main steps on using these elements:

  • create the graph holding the data you want to represent
  • assemble the objects around the VisualGrpah and configure them.
  • set the root node.
  • draw!
Pin It