Creative Synthesis

The thoughts and works of the Creative Synthesis Collaborative.

Welcome to the Collaborative!

Hey, there! Nice to see you. Consider subscribing to our feed to stay in touch.

If you want to support our work, consider becoming one of our donors. Nonprofit organizations like us are really dependent on your private donations.

Feed Subscriptions

RSS FeedRSS Things
RSS Comments

Fundraising Initiatives

We're beginning serious fundraising initiatives.

Rolling Links

Things by Category

Things by Month

You can follow comments through the RSS 2.0 feed. You can leave a comment, or trackback.

Graph Gear is an open platform for graph visualization (the mathematical kind, not the bar chart kind). It allows you to create an interactive graph with force directed layout that has a good interactive user experience.

Demo | Download | gpl | Current Version 1.2

Graph Gear

If you are interested in more permissive commercial use, please contact us

Additional Notes

This code is also available over subversion, see the web view at the collaborative code repository.

Graph Gear allows you to quickly render a customizable interaction graph that is described by a graph xml file. All you need to do is embed it in your page and pass the xml over javascript. It provides nice interactive capabilities and a force directed layout.

Release Notes for 1.2

  • Redesigned nodes. Nodes now have larger ‘text tags’ associated with them that allow more meaningful text.
  • Links for nodes. A direct consequence of the above, it now makes sense to have links on the text while still allowing direct manipulation of the graph. This means that graph gear is now a more useful navigation tool.
  • Node rotation. Really this is just necessary for the above things to ‘look right’ but it is a nice and simple change nonetheless.
  • Images in nodes. Since nodes no longer have text directly clogging them, we can add meaningful images to nodes. This kind of thing can be particularly nice in items such as Passant’s foaf browser. Transparent pngs and the like are also supported, which can produce some rather nice effects.
  • Cleaner look. Overall design improvements for the graph. Branding is also significantly more discreet.
  • Show as you go explore mode. Graphs now come in too flavors. They can either display all nodes (as before) or they can show only those nodes directly connected to the currently selected node. This allows the exploration of significantly larger graph sets in ways that feel pretty natural (once you try it a bit). Nodes which have connections that are not being shown are indicated, so it a quick matter to jump back and forth around a large graph.
  • Easy Graph Sizing. It is now significantly easier to make graphs of any canvas size. The only necessary steps are the inclusion of a width and height in the xml file (and correspondingly in the swf object call).
  • Better example page. It’s a silly little thing really, but it does help a lot. Although XXX has a pretty nice rundown of how to use the graph gear, its nice to be able to show some better example graphs. You can even type a graph in the textarea and render it so people can build a graph “live” as it were.

Things that could still stand to be done.

  • Better linking to more live data sources. Solutions like Passant’s are good, but they still require building an xml file. It would nice if you could (for example) just pass things like a foaf uri to the graph and it would figure out what’s going on. Of course this kind of thing requires more specific kinds of code.
  • Larger node set. While the new nodes are more functional, there are obviously a lot of different kind of node types we still don’t support. The adding of rotation for nodes, however, makes it significantly easier to have a “non circle node” look right.
  • It’s not clear how many people would prefer passing constant values (things like repulsion and attraction forces, mass, and gravity, over the xml rather than manually editing in source) - this is an easy add if it makes sense (is useful and not confusing).

Additional Links

When we started working on graph gear it was mostly because there wasn’t a good opensource flash graph solution. There are now a few more: (flexvizgraphlib, springgraph flex component).

This thing was constructed by .
Matthew is the Director of the Collaborative. He writes rarely, and that makes him sad.

You can follow comments through the RSS 2.0 feed. You can leave a comment, or trackback.

This thing has 6 Comments

  1. Posted March 8, 2008 at 4:41 pm | Permalink

    Hey There:

    I am really loving this code, I plan to use it for a project on media ownership, however I am stumbling in a major way in trying to get the “jsSwitchXml” function to work - exactly in the same way it works on your demo page. It doesn’t seem to be loading the XML at all. I’ve monkeyed with the source paths, the variables, etc to no avail.

    Also - if you have any suggestions as to the best method for implementing cheap mouseover functions (javascript or as3 hack?) I am all eyes. Thanks for putting this thing together and SUPER THANKS if you get back to me…
    cheers,
    adam.

  2. Matthew Hockenberry
    Posted March 11, 2008 at 12:40 pm | Permalink

    Adam, I had the code sent as it is setup on the server. The jsSwitchXml wasn’t really intended for outside use (though I see now why it is useful).

    As for mouseover stuff. Any ideas about how we could structure something? What kind of stuff did you want to do?

  3. Posted April 22, 2008 at 7:52 am | Permalink

    Hi,

    I have updated my Graph Gear version used and it looks fine :
    http://www.osocial.net/network/graph/graphgear/index.php?id=1

    Visualize your social graph from MySpace, Facebook, Orkut or hi5 with http://www.osocial.net/network

    Victor

  4. yuyuyu
    Posted May 10, 2008 at 8:56 pm | Permalink

    Hi,

    I’m really interested in this tool.
    cool design and interface.

    I would like to use it for visualizing directed graphs.
    I hope for the sort of a option of visualizing edges as arrows from souceNode to targetNode.
    If I’m not being too intrusive, I have to ask that, rendering directed graphs is in your future work list?

    Sincerely,

    yuyuyu

  5. Matthew Hockenberry
    Posted May 12, 2008 at 4:34 pm | Permalink

    Hey there yuyuyu. Directed graphs are definitely in the todo list, they just haven’t been a large priority. The graph knows the direction of the connections (as you mention, there is a source and target node) just right now it doesn’t render anything differently to indicate that. Doing this is fairly simple, a matter of adding an arrow or similar indicator to show directionality.

  6. yuyuyu
    Posted May 13, 2008 at 11:15 am | Permalink

    Thank you for your time.
    I see. The very best wishes for a prosperity of the tool.

    yuyuyu

This thing has 2 Trackbacks

  1. Posted April 27, 2008 at 3:14 am | Permalink

    […] GraphGear […]

  2. Posted May 15, 2008 at 1:14 pm | Permalink

    […] I came across this nice little flash force directed graph today. It was put together by Creative Synthesis. […]

Post a Comment

You must be logged in to post a comment.