At the end of the day Friday, a couple of colleagues invited me to brainstorm with them about a 3D data visualization tool. I have heard that JavaFX will have 3D capabilities, perhaps yet this year, but I needed something sooner than that. After the session I searched for the latest developments in the intersection of JavaFX and Java 3D. I was pleasantly surprised by the great work that a German organization named InteractiveMesh.org has done in the 3D space relative to JavaFX.
As you may know, you can wrap a Java 3D canvas in a JavaFX component, but there are a couple of issues with this:
- The 3D canvas is a heavyweight component, so a JavaFX node placed on top gets obscured.
- Interfaces between the JavaFX scenegraph and the Java 3D universe would be required in order to provide a great user experience.
The screenshot above shows a Java 3D universe placed in a JavaFX program, and thanks to the libraries created by InteractiveMesh.org the 3D universe is rendered into a lightweight component. Also, their libraries provide for integration between the JavaFX scenegraph and the 3D universe (such as redirecting mouse events to the underlying heavyweight Canvas3D object).
Their site has a couple of JavaFX/Java 3D demos, the screenshot above showing one of them. When running the demos, be sure to discover the various interactions that the mouse provides. For example, you can scale the cube above with a mouse wheel, and can drag the cube while holding mouse button #2 down. Congratulations and thanks to InteractiveMesh.org, and to August Lammersdorf whose name is in the source code.
Thanks,
Jim Weaver
JavaFXpert.com
As usual, these astrophysics questions prove to be much more
challenging than they initially seem. I had been working on issues
close to this one, so I had got to believe that half the way was done,
but this field is so fascinatingly complex and spread out that every
question about it is a new beginning.
Posted by: generic propecia | April 27, 2010 at 12:21 PM
Java 3D meets JavaFX unbelievable people and I want to emphasize this blog Excellent my friends have lots of views in the comments that I feel great, keep in that way.
Posted by: Canada Without Prescription | October 28, 2009 at 11:53 AM
when will the JavaFX support #D Render?
Posted by: Jason | March 27, 2009 at 02:26 AM
Jim,
fortunately, Java 3D is very well prepared for 3D rendering in lightweight environments (JavaFX, Swing), even if it still depends on the heavyweight Canvas3D. So, I would like to redirect your compliments also to those who implemented the basic off-screen rendering features (AutoOffScreenCanvas3D, JCanvas3D).
The just initiated 3D Java API JUniversal3D, a Java 3D fork of InteractiveMesh, will be independent of any GUI framework. This allows for instance to render directly into a JavaFX ImageView or into another future canvas node as well as to optimize the synchronization of the GPU accelerated 3D rendering and 2D drawing loops. Of course, there are still a lot of things to do. (JUniversal3D : http://forums.java.net/jive/thread.jspa?threadID=53913&tstart=135 )
No matter how JavaFX will implement 3D, Java provides it now.
Thanks and enjoy the Virtual Universe,
August Lammersdorf, InteractiveMesh
Posted by: August Lammersdorf | March 26, 2009 at 07:14 AM