5 Replies Latest reply: Jan 31, 2011 6:04 AM by 835566 RSS

    Java3D viability questions...


      I've been looking around for a Java library that would be useful for rendering and manipulating 3d scenegraph data and objects from within a larger application framework. LWJGL and JOGL both utilize low level access via OpenGL or DirectX mostly as a thin wrapper over the c code. I was hoping for something a little more high level and so... here I am.

      I am wondering though... how much life is left in the Java3D project? I'm digging around and I find most of the information and resources scattered about on the 4 winds with nothing that looks like a concrete development project going on. I see where it's mentioned that Java3D has become a community project, but is there any active participation going forward on the development side? Is Java3D a dead project with folks just scavenging up the pieces and utilizing them as best they can?

      I'm hoping that I can figure out how to usefully manipulate 3d artifacts from within a GUI built on Swing or SWT if I must, not from a single game window with limited GUI elements and I'm wondering if this package will get me there? So, would some kind forum members here take the trouble to enlighten me?

        • 1. Re: Java3D viability questions...

          the latest release is Java 3D 1.5.2 and it was published in 2008. It is most unlikely that the owner Oracle.Sun will restart its development or provide a maintenance release. Also, it is unlikely that someone else will continue the development of this concrete implementation.

          Java 3D is a matured API. It is very well specified and nearly perfect described in its javadocs. Helpful books are available even if they don't cover the latest release. Since 1.4 the implemented OpenGL shading language (GLSL) allows to run vertex and fragment shader on the current release GLSL 4.1 and beyond. Java 3D's lightweight and heavyweight 3D rendering capabilities make it 'easy' to integrate and interact with 3D content in applications based on the GUI frameworks JavaFX 1.3.x, Pivot, Java Swing, Scala Swing, and SWT.

          Compare Java 3D 1.5.2 to the currently available releases of following alternatives: Ardor3D, Aviatrix3D, jMonkeyEngine, and Xith3D.

          I'm not aware of any detailed and impartial comparison. You will find blog or forum entries where the authors defend their preferred API and attack all the other ones.

          Your requirements 'manipulate 3d artifacts from within a GUI' are a bit vague. So, it's up to you to compare capabilities and to find out which one you can trust more concerning long term development and maintenance. Also check their dependencies on third party/communitiy low level 3D APIs.

          Here are some helpful Java 3D 1.5.2 links:

          - home : https://java3d.dev.java.net/
          - downloads : https://java3d.dev.java.net/binary-builds.html
          - tutorial : http://java.sun.com/developer/onlineTraining/java3d/
          - books : http://wiki.java.net/bin/view/Javadesktop/Java3DBooks
          - J3DWorkbench : http://eclectic3d.net/
          - SweetHome3D : http://www.sweethome3d.com/index.jsp
          - GUI - Java 3D meets .. : http://www.interactivemesh.org/testspace.html

          Knowledge, experiences, concepts and 3D data do not really get lost when you switch to another high level 3D Java API at a later date.

          I decided to stay with Java 3D and to provide up-to-date GUI integration and importer (X3D; in work: 3DS, COLLADA, OBJ) APIs. At the same time I'm continuing my own Java 3D fork/successor JUniversal3D.

          August, InteractiveMesh
          • 2. Re: Java3D viability questions...
            Thank you August for a well considered reply. I guess I didn't figure Oracle to have much interest in picking up the Java3D torch, but I am surprised that a stronger community effort to adopt this homeless project hasn't materialized. I guess java isn't the first thing that comes to mind in the coding communities head when they think of 3D. In fact, I've begun to question the validity of java itself now that Oracle is the new king. I just hope that the community that has sprung up around java; along with the other major corporations that have a vested interest in it, are able to keep it alive. I know that Microsoft would just love to see java shrivel up and die. [And i'm not a MS basher]
            Your requirements 'manipulate 3d artifacts from within a GUI' are a bit vague.
            Actually, I'd like to build what might pass for a decent 3d modeling program. I'd like to componentize it such that the modeler and modeling operations could be separated in a jar file and as long as your app can host a generic frame or panel you could utilize the jar as a library in whatever java GUI you are happy with. I'm thinking javabeans.

            It is pretty ambitious I know, but I'm always in way over my head anyway. Not like that would be anything new.

            Also, thanks for the link to your site August. I will work through your articles and see what I might learn from them. Everything helps you know since documentation on doing 3d in java isn't exactly falling from the trees.

            • 3. Re: Java3D viability questions...
              If you want to discuss 3D in java you should go to java gaming forum at www.javagaming.org. Don't expect to get any answers about Java3D as they all use other API's. It's is a very friendly and experienced community. Some of the member have been active on the forum for almost 10 years and has made games like minecraft (www.minecraft.net) and revenge of the titans (www.puppygames.net).
              • 4. Re: Java3D viability questions...
                Here's my 2 cents:

                I largely agree with the comments provided by August at interactivemesh. In addition, Java 3D (as well as other Java scenegraph APIs) may be better suited to interactive, behavior-oriented applications. Take a look at J3DWorkbench [for example|http://eclectic3d.net/], which includes deep integration with SWT and Eclipse. However, having said that, there is nothing stopping you from using Java 3D for polygon-level modeling. As an excellent example of a Java (but NOT Java 3D)-based modeling program, look at artofillusion.

                I originally wanted to offer basic modeling tools in J3DWorkbench, but it is beyond the core scope. If you pursue your objective, but don't want to start from scratch, consider doing a plugin for J3DWorkbench or some other framework; that way, you don't reinvent the wheel...

                • 5. Re: Java3D viability questions...

                  Java3D is almost dead, there has been a maintenance release recently but it is the wrong way to go, it is rarely used in industrial projects and in gaming. If you like the design of this API, maybe give a look at Xith3D. If you prefer a most viable and active scenegraph, look at Ardor3D, JMonkeyEngine, 3DzzD, Aviatrix3D, etc... Of course, javagaming.org is the best place to speak about it as it regroups lots of experienced programmers including me ;) Best regards and long life to JOGL.

                  Edited by: 832563 on 31 janv. 2011 04:03