scalanlp / breeze-viz

*breeze-viz has moved back to the main breeze repo*
Apache License 2.0
38 stars 14 forks source link

Own SVG OpenGL Charting / Visualisation Library #2

Open sirinath opened 10 years ago

sirinath commented 10 years ago

Is it possible to more charting to SVG and OpenGL than depend on JFreeChart.

sirinath commented 10 years ago

Perhaps this can be backed by something like jReality or another library.

MartinSenne commented 10 years ago

First, for 2D: I very much favour the idea of being independent of JFreeChart and using oher visualization frameworks instead. Of course this requires an additional level of abstraction, if one wants to provide both JFreeChart and a second different viz framework support.Nevertheless, for 2D JFreeChart provides a substantional set of chart types which at least fulfil standard requirements. But we should keep alternatives in mind.

For 3D, JFreeChart just does not provide any visualization (like regular 3d landscapes, density plots, equipotential plots, volume rendering) If going to 3D, we have to rely on an additional framework.

Could you already gather some experience with jReality? Most of the guys seem to be still @TU here in Berlin, so I'll look in.

Are there any other packages you have stumbled upon?

Cheers,

Martin

sirinath commented 10 years ago

http://waterloo.sourceforge.net/ http://trac.erichseifert.de/gral/wiki/Comparison (Comparison of charting libs including Gral but without waterloo) http://jzy3d.org/

I believe moving out of JFreeChart will be a good option. This is not good for real time animated / quickly updated charts.

May be not in the next version but later on at least. Also best you are on a graphics framework than charts framework are you have more flexibility in the supported charts. Also can customise and have overlays.

Also there is JavaFX http://www.processing.org/ http://www.lwjgl.org/ (Also go through http://jogamp.org/jogl/www/) http://gephi.org/

sirinath commented 10 years ago

Grephi and jReality would be the ideal candidates to base the viz functionality.

Perhaps both can be supported at 2 levels of abstraction.

1 high level where underlying framework features are abstracted away

2 where platform features are made more scala like

3 perhaps an intermediate representation between the above 2 if needed and adds value. This can be used used for adding support for other frameworks in the future

sirinath commented 10 years ago

Any additional thoughts on this?

MartinSenne commented 10 years ago

Hey sirinath,

for some unknown reason my last statements were not posted properly.

Right now I'm evaluating the different frameworks. So far, I have not come up to a framework which absolutely suits our requirements.

JFreeChart is fine at 2D. But there seems to be no combined framework which can do both 2D and 3D.

Having said, I'm a little uncertain, how do we deal with vectorized formats (like SVG and PDF), if we want to export from OpenGL (which seems to be the direction you want to move into, right?) JFreeChart allows rendering to a Graphics2D context, which is backed by a PDF / SVG Writer instead of displaying the visual representation on the screen. I have not yet heard of some library which does that for OpenGL (and I fear it is not possible in general). The only solution seems to rasterize the OpenGL output and save this as picture (PNG, whatever) Do you have any recommendations or ideas here?

Cheers,

Martin

sirinath commented 10 years ago

I am also not sure. Just see how Waterloo does this.

sirinath commented 10 years ago

Gerphi also has a export functionality so does jReality.

sirinath commented 10 years ago

Another approach might be you export the graph to processing format which can be run in processing to get the original chart with out having to have Breeze Viz. Waterloo has this option.

sirinath commented 10 years ago

http://incanter.org/ use processing

sirinath commented 10 years ago

Have a look at: https://github.com/scalafx/scalafx-ensemble

sirinath commented 10 years ago

Have a look at this project: http://graphstream-project.org/doc/Tutorials/Graph-Visualisation_1.1/