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):
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.
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
There are a few 3D graph visualizers out there.
The 3D viewers I know of are:
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With