Waterloo Graphics for Julia?

500 views
Skip to first unread message

sig...@kcl.ac.uk

unread,
Oct 14, 2013, 10:09:37 AM10/14/13
to julia...@googlegroups.com

Waterloo is a 2D scientific graphics package supporting MATLAB, Python, R, and SciLab . The graphics are Java Swing based so highly interactive
with built-in menu-based support for SVG/PDF via Apache Batik, animated GIFs etc.
A key feature is the use of a Groovy shell instance to provide portability of graphical code between these environments - typically with no editing.
It runs with an IPython notebook but does not presently run with IJulia. Would there be any interest from Julia users if it did?
Details of the project are at http://waterloo.sourceforge.net/




Jake Bolewski

unread,
Oct 14, 2013, 1:26:03 PM10/14/13
to julia...@googlegroups.com
I just want to say that I am starting to use your library in a java project and it is just awesome.  Thanks for all the hard work.

Best,
Jake

Stefan Karpinski

unread,
Oct 14, 2013, 2:37:58 PM10/14/13
to Julia Users
Cool stuff. If anyone does take a crack at making a Julia wrapper for Waterloo, please to post it on the list and/or add it to our registered packages at METADATA.jl.

sig...@kcl.ac.uk

unread,
Oct 17, 2013, 10:21:17 AM10/17/13
to julia...@googlegroups.com
Jake
Thanks for those comments. Comments/criticisms/request very welcome via the Waterloo discussion page.
Some use-cases would also help to focus further dev.
Malcolm

sig...@kcl.ac.uk

unread,
Oct 17, 2013, 10:25:49 AM10/17/13
to julia...@googlegroups.com
Stefan
This would need a mechanism to talk to a JVM. Some relevant posts on that in this group I see. 
As all works with Python and py4j - would it be possible to create a link Juila->Python via PyCall->JVM via py4j? Not in my hands - but I know too little about Julia yet to be confident I am doing things right.
Malcolm

Avik Sengupta

unread,
Oct 17, 2013, 11:37:37 AM10/17/13
to julia...@googlegroups.com
I've looked into ways of calling Java from Julia, but have been beaten back by JNI every time :)

py4j, while adding on multiple layers to the process, does look like a feasible option right now.

Regards
-
Avik

Stefan Karpinski

unread,
Oct 17, 2013, 11:40:44 AM10/17/13
to Julia Users
Not being a Java user, I have a hard time imagining how they could possibly have made JNI so awful and difficult to use. I mean why is this ever harder than ccall? I don't get it. But clearly, someone will have to slay the JNI at some point.

Avik Sengupta

unread,
Oct 17, 2013, 12:05:05 PM10/17/13
to julia...@googlegroups.com
Well, method signatures used for lookup look like this: "([Ljava/lang/String;)V" and so on and so forth.

However, one of the bigger issues is that the API, thought technically usable from C, is most used (and usable) from C++, since that maps better to Java's object->method paradigm, on the C-to-java path. Also various kinds of name mangling are in place. All of which means I've been unable yet to successfully ccall into libjvm.so

Yes, it needs to be slayed at some point, I''ve been meaning to get to it, but have been unable to spend the concentrated time that I believe this requires.

Regards
-
Avik

sig...@kcl.ac.uk

unread,
Oct 17, 2013, 12:27:22 PM10/17/13
to julia...@googlegroups.com
Avik
I wonder if using some Groovy could simplify this task as that provides dynamic data types, has its own (automatic) reflection mechanisms, type-casting etc on the JVM-side. I suspect a lot of boilerplate code could be avoided if objects were passed as java.lang.Objects, leaving Groovy's in-built mechanisms to work out the detailed method invocation for the JVM. This can not entirely replace something like Py4J, but I suspect it could massively reduce the work load.
Malcolm

sig...@kcl.ac.uk

unread,
Oct 27, 2013, 1:43:42 PM10/27/13
to julia...@googlegroups.com
No success with PyCall & Py4J, but using the Julia MATLAB module it is very easy to run Java/Groovy code via the MATLAB session. While Java objects can not be retrieved in Julia, primitive types can.

sig...@kcl.ac.uk

unread,
May 23, 2014, 7:17:16 AM5/23/14
to julia...@googlegroups.com
As an update to this, I have now posted waterlooFX.

This is a rewrite using the new JavaFX RCP under-the-hood (which uses full hardware acceleration)  and requires Java 8.

  • Charts are fully customizable using CSS styling
  • Charts can be created and customized using the JavaFX FXML markup language
  • Integrates fully into generic GUI designers such as Oracle JavaFX Scene Builder 2.0
  • Fully interactive charts with built-in mouse support
  • Charts can be integrated into Java desktop apps or deployed to the web in HTML
  • Pure Java core library.
Tools to use this library from R, MATLAB etc are planned - most likely using FXML to communicate with a JavaFX app (or webpage).


Stefan Karpinski

unread,
May 24, 2014, 8:39:49 AM5/24/14
to julia...@googlegroups.com
This seems pretty tenuously related to Julia and a lot like an ad.

Andreas Lobinger

unread,
May 24, 2014, 9:56:01 AM5/24/14
to julia...@googlegroups.com
Hello colleague,


On Saturday, May 24, 2014 2:39:49 PM UTC+2, Stefan Karpinski wrote:
This seems pretty tenuously related to Julia and a lot like an ad.

Still, it raises the question about an easy way to interface julia + java (JVM).

Isaiah Norton

unread,
May 24, 2014, 9:57:29 AM5/24/14
to julia...@googlegroups.com

Still, it raises the question about an easy way to interface julia + java (JVM).

Reply all
Reply to author
Forward
0 new messages