Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

suggestions for a 3D graph rendering library? [closed]

Tags:

java

graph

3d

So I'm not sure how stackoverflow friendly this question is since it doesn't have a quick clear cut answer but here we go...

I have a java program that generates data for a directed graph. Now I need to render this graph. The data needs to be laid out in 3D, and I want to be able to define which plane an edge lives in. (Each edge will only need to occupy 1 plane of the 3D space). I also need the ability to navigate around the graph. Since I know that this kind of stuff is hard, I'm going shopping.

So far I've looked into (In no particular order):

  • JUNG: lacks 3D support
  • Cytoscape: not sure how much I'll be able to define edge drawing, haven't seen a non bio-informatics application of it yet
  • JGraph: I didn't see any 3D applications yet
  • Perfuse: looks promising, does anyone know anything else about it?
  • Gephi: Documentation looks scarce
  • Processing: does this play well with java?

I'm also considering doing some combination of opengl + swing rendering to create a 3D graph from multiple 2D graphs.

I am also not adverse to the idea of linking from another language

Any Ideas? Thank you.

like image 307
Sandro Avatar asked Feb 06 '10 06:02

Sandro


2 Answers

I would recommend using Java3D for the visualization part

  • Java 3D Tutorial Introduces the concepts

  • Download Site contains the libraries and a few demo projects, for a quick start.

To do the layout of your graph you could look for an algorithms in JUNG and check whether the can be easily extended to 3D.

JUNG layout demo

  • A link collection on graph layouts
like image 161
stacker Avatar answered Oct 11 '22 17:10

stacker


There are a few 3D graph visualizers out there.

The 3D viewers I know of are:

  1. UBIGraph - the demos page has some nice animations on it.
  2. Wilmascope - opensource and written in Java3D

Since wilmascope is opensource if the layouts don't suit you you could extend it to meet your requirements maybe. Laying out a graph in 3D is not easy however.

You could also take a look at Cuttlefish on sourceforge. There's a video on YouTube showing an example of it being used.

like image 41
Binary Nerd Avatar answered Oct 11 '22 18:10

Binary Nerd