What Java 3D engine (if any) should I use? Not a game development

What Java 3D engine (if any) should I use?


I’m working on a project (my master thesis) where i have to create an app that can

  1. load objects imported from MSC Nastran (cute app originally developed for NASA) [it should create them by parsing a text file, extracting points coordinations, creating polygons and finaly shapes]
  2. displays those objects
  3. let user view and manipulate them (rotation, translation etc.)
  4. let user pick one of them (and its vertices)
  5. do some operations using that object vertices (like creating new vertices and shapes).

    Pretty much that’s it. Piece of cake.

    It’s like an ultra mini version of 3Ds Max.

    I’ve already done a little version of that app (so I could show something to my promoter xD).

    I’ve started (week ago) by using Sun Java 3D, but I found today thats it’s dead… (lol, I know) and I’m pretty sure I can do it in Sun Java 3D but I don’t wan’t to waste my time on learning something that is already dead and has no future.

    And my question is what Java 3D engine (if any) should I use to create this application?

    Should I stick with Sun’s Java 3D?

    If i choose an engine and my promoter ask me can this app be developed further by someone else and I’ll be like “err JMonkey is pretty much beta and there’s no assuring it’s backward compatibile and…” he will kill me. Please help.

    additional info: I have 2 weeks deadline and some experience in java (like intermediate)

    Below are some screens of my pre-alpha-test-to-delight-promoter version so You have an idea what I’m talking about.

    There are only points and no quads yet.

    The link to Code if You’re interested. wklej.to

jme might not be the best for this, but certainly its doable in it :). I don’t have any first hand experience with any others, so can’t really comment. All i know is jme rocks! :D. To your “boss” - JME has proven to be a good platform, look at all the games/applications that have already been developed. JME has a very active and growing community with a lot of contributors. There is also a book released soon. Learning curve is quite short, due to the engine doing a lot for you, as well as many good tutorials, and active forum posters.

1 Like

I went to the Ford dealer and asked him which car I should buy. “A Ford, of course”, he said.

I went to the BMW dealer and asked him which car I should buy. “A BMW, of course”, he said.


On the one hand, you have Java3D which I thought wasn’t being maintained anymore. On the other hand, you have a cutting edge engine like JME that has regular stable (read:safe) updates… even though it is in beta. It’s also open source. I know there was an open source copy of Java3D (I forget the name) but I don’t know if they ever made Java3D properly open source. Honestly, I found Java3D so cumbersome that I never played with it long anyway.

If backwards compatibility and stability really scare you (and I don’t think they are that scary in this case) then you can always fork the source code and maintain your own version locally. You could even wait to do that only if it becomes a problem.


There’s absolutely no reason that jME couldn’t be used for this. I’m currently three years into a project started in academia using jMonkeyEngine.

As far as “backward compatibility” goes, you need to define the scope of compatibility required. There are two major paths if you’re looking at Java development in 3D, going the low-level route of LWJGL or JOGL or going for more of an “engine” in jME or Ardor.

The changes that have been happening in the API have been well-documented with each iteration and at this point have been quite minimal. The documentation is there on the wiki, there is a book coming out, and there is an extremely active community around it. The Core Team is diverse and has directives beyond improvements to the code itself, such as documentation, PR, website, etc.

I agree with you about not wanting to work with something that’s dead… it looks like you’ve stumbled on an engine that certainly is not :slight_smile:


hello, thank You all for interest and sorry for such a late reply but ive gave my laptop to a friend cause i needed to study xD

damn, those nasty 21 century addictions…

anyway, i’ve read some 3 more OO books an i’m ready to roll

i have 1,5 week deadline, this time a dead serious one xD

I just wanted to ask some noob questions about JME, cause it would take me precious hours to figure it out:

  1. can i make single points and array of points and display them? like a Point3f(0,0,5) → make it a shape (or something) with an appearance → and display it?
  2. can i make quads (the same way, by specifying single vertices coordinations)?
  3. is there a tutorial on exporting .jar files from jme sdk, and compatibilities issues? cause i cant find an ‘export’ like in eclipse (but im probably blind)

    sbook thanks for a PM, too bad im in a mechanical department so theres no real need for 3d visualizations, but in near future who nows , i will definitely advertise jme :wink:

    thanks, atrey

Yes you can make dynamic meshes. You specify points and indices etc.


@soea said:
3. is there a tutorial on exporting .jar files from jme sdk, and compatibilities issues? cause i cant find an 'export' like in eclipse (but im probably blind)

What do you mean "export"? I don't use Eclipse so I don't know what that means.

In the JME SDK, you can build executables if you turn that on or whenever you do a clean build it sticks everything in the dist directory.

For eclipse,

run the build.xml that is in the jme directory with ant. (And amke sure it uses a jdk not a jre as enviroment)

This should give you a jmonkey3.jar

Now make a lib folder in your project dump it in, adjust buildpath to use the jar.

Now rightclick your project , export, runnablejar, package librarys.

Then you have a ready to use jar. You might need to start it with a -Xmx1024m or similar if you have out of memory errors.

3. is there a tutorial on exporting .jar files from jme sdk, and compatibilities issues? cause i cant find an ‘export’ like in eclipse (but im probably blind)

Just do a "clean / build" in your project.

Hi soea,

I that right that you have less than 1,5 weeks left? That is really a short time. If it is really so serious as you stated, than you might consider to stick to what you know and what you have. To get into something new in such a short time is, in my opinion, a high risk. It could break your deadline. Certainly java3d is dead and jme is really good and alive but in this case you have to decide carefully if it is the right way for you.