lg3d

Project Wonderland, rendered in Java3D, which was just open sourced. Not so awesome-looking, aesthetically. (The point here is more lightweight, online collaboration and utility.) But J3D can be useful, and this announcement is another win for open Java — not to mention, between JOGL and J3D, you can make a 3D project in Java look just about however you like.

Attention, vector math fans! Wait … stop. That’s a terrible lead. Let me try again.

Open source advocates, your attention, please! Okay, slightly better.

Anyway, Java3D, the fully object-oriented Java API to 3D visuals, is now fully open source. That actually is big news to vector math coder types, because the vector math packages are now all modifiable if you like. For visualists, the news is that even the relatively sophisticated portions of Java are going fully open — including, in this case, a key 3D component for the ubiquitous taste sensation Processing I keep talking about ad infinitum.

Much as Cat Stevens became Yusuf Islam and Lesley Hornby became Twiggy, Java3D won’t be called Java3D any more. Since 3D graphics programmers excel at marketing, it’ll instead be called “3D Graphics API for the Java Platform.”

On the off chance you’re not confused yet, Java3D isn’t the only open source 3D graphics API for the … um … Java platform. JOGL, the Java binding to OpenGL, is also open source (under the BSD instead of the GPL). So, what’s the difference between JOGL and the API Formerly Known as Java3D? (Speaking of which, can we just call the latter Fred? Fred is a great name for an API.)

Earth, viewed in NASA’s WorldWind Java — powered by JOGL, both also open source. Photo: C_Zimmerman.

Well, Java3D is the more sophisticated of the two, running on top of both OpenGL and Direct3D, and providing a scene graph for elegant 3D programming. And it runs in a browser, which is part of why it shows up in Processing.

Here’s the rub: JOGL is more useful in the visualist world for magical 3D programming, because you can do all of the inelegant OpenGL calls that give you all sorts of handy eye candy. We like hard APIs. We want nuts-and-bolts access to OpenGL. We just need a way of getting a scene graph — ways of coding 3D scenes more easily than using raw calls to OpenGL, which would be like sculpting in sand using your teeth for larger projects.

As it happens, there’s an open source solution for that, too: jMonkeyEngine, the superb open source game engine. It’s good enough that even Sun’s own 3D world tool, Project Wonderland, is apparently switching.

So, in review:

  • Java3D is a comprehensive 3D API with a scene graph, now open source with a different name but essentially identical except for a license.
  • JOGL is the down-and-dirty 3D API — but it’s also open source, and with the open source jMonkeyEngine, you can model your cake and eat scene graphs, too.

So, unless you really care about the difference between GPL and BSD licenses, the bottom line is, you’ve got options.

ANNOUNCE: GPL open source release [java.net forum j3D open source announcement]

Now, who’s up for a game of vector chess?