Java3D Source Code Released
mrp101 writes "Over the past few months (aka year) the future of Java3D has been in question. Not too long ago Apple announced a port to Mac OS X, but still no official update from Sun. A few weeks ago Sun announced that they were going to release the source code and begin collecting comments for version 1.4/2.0. And today they delivered, right before the JavaOne conference. The announcement can be found here(1) and
the CVS here(2). The code includes the core scenegraph, the vector math library, and Sun's own add-on utility libraries."
I believe Sun is testing the waters for possibly fully releasing Java into the open source world.
.. utlize this stuff so they'll be encouraged to release Java.
o n_opening_up_solaris Solaris will probably be released as open source soon ..but people will foolishly ignore it, rather than implement it's plus points into Linux.
3D people out there
On a side (offtopic?) note. According to a member of the solaris dev team at http://blogs.sun.com/roller/page/tucker/20040618#
-Johan
I've done my share of 3d programming, and I don't see how writing any part of your display routines in Java is a good idea when you're working on a 3d app. I know Java has gotten quite a bit faster than the initial releases, but it's still interpretted byte code, and that seems like a waste of cpu cycles when you're trying to perform complex graphics effects. Does anyone have any positive experiences with Java3D with high performance 3d applications? Games would be a good start since they are probably the hardest on the system. What about 3d CAD software as well.
Maybe some of you out there can prove my initial performance guesses wrong.
Maybe OT, but while I was at school, people talked about VRML... There's Java 3D... Do anyone think that a 3D interface will ever be popular? I love CLI and it doesn't seem we are ever going to forget about it. With 2D we really don't use all the posibilities (maybe Squeak)... I can see medicine and CAD using it, but a employee, aunt or kid?
The BFM is written in Java. I think it actually uses this library, and it's nice to have it available and open.
The Cheese Stands Alone.
I wonder if this release is partially due to Looking Glass. If sun follows through with Looking Glass this move may garner support for the 3d rich desktop enviroment.
LICENSE
-------
We are releasing the source code for the j3d-core-utils and
j3d-examples projects under a BSD license.
Sun... "Open Source" Code... Non tainting license...
Someone find me the strings, I must be dreaming!
I stole this Sig
The javagaming.org community has written a open source implementation of Java3D in the opengl wrapper JOGL (hosted on a Sun website). It is called Xith 3D. From what I here they are getting much higher frame rates then Java 3D. The problem with Java3D is it trys to do everything, so it is good for nothing. As far as I know there is very little usage of Java3D especially in the game programing community.
The demos are really cool. But the biggest issue, which I think is apparent in the demos also, is that you get these frame rate drops. The best I can tell from playing around with Java3D, this happens because the API is allocating a bunch of objects during rendering. The garbage collector has to come by and get rid of them and it takes long enough to release the unused objects that it interferes with the rendering thread. This turns out to be down right distracting in animation.
Whether or not Java3D can be fixed so that doesn't happen will have to be look into.
The other issue is Java3D tries to hide the underlying graphics API too much. There is already a consistent 3D graphics interface that is available on almost every platform: OpenGL. I would really like to be able to get at it. Then, I could do things like add glslang shaders to an already existing Java3D app.
All in all, I think open sourcing Java3D is a good thing. Sun and SGI announced at last year's SIGGRAPH that they were planning native OpenGL 1.5 bindings. I don't know what has come of that project. However, there are many Java to OpenGL binding projects. I still think that Java + OpenGL leaves much to be desired compared to C# + DirectX. Although, having a large higher-level 3D open-source library ready to use in Java might swing momentum in Java's favor.
Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
You're thinking inside the box.
3D is not strictly limited to desktop applications or games. It's very useful in biological research for example. Some of the people working on that sort of thing do full 3D rendering of very complex molecules and interaction of molecules.
Massive rendering of said molecules from huge chunks of data can be done on very big iron boxes.
Heck, movies could be rendered. You don't think desktop boxes render the frames for Pixar do you?
Server side java applications using 3D libraries. That's where the good stuff will eventually end up like all the other Java stuff.
Future? How about present?
Puzzle Pirates is a Java game title. It's available now. Apparently it's fun. I tried it. It wasn't my cup of tea but I suck with puzzle games.
Java 3D uses scenegraph and branchgroup concepts, exactly like VRML. It is a "higher level" 3D language than OpenGL, and therefore C+OpenGL and Java 3D are not (maybe just for now) in the same playing fields.
Where Java3D should thrive now is rapid developpement of possibly complex 3D scenes. We're not talking of a game with pixel shaders, but for example of a simulator of a robot with a manipulating arm. The scenegraph would make it very easy to set up the arm articulations quickly.
Given the current sorry state of VRML browsers, and the immaturity of X3D, the release of Java3D could give birth to very interestings developements.
For complex game development in Java, look for Java OpenGL bindings instead.
A few references:
Scenegraph basics
X3D
I haven't found the performance of Java 3D to be that great when running the VRMoo client, but then that could be just because I'm not a great Java 3D (or even 3D) coder.
Anyways... That's all I guess. Just wanted to say, hey looky, open source Java 3D app over here!
Slashdot Required Reading
If this is indeed the grandparent posters problem, he's using strictfp on all his methods. I doubt he does, since few people even know of its existance.
However, I also do not believe the numbers he was posting. It did have that trollish odour to it. I would very much like to see his test code. There must be something wrong with it.
Here's a tutorial on the use of strictfp.
An API like OpenGL or Direct3D is much more flexible. It is possible to implement Java3D in something like OpenGL or Direct3D. It is not possible to implement OpenGL or DirectX in Java3D. This lack of flexibility may not be important to a lot of developers (or at least less important than the fact that it frees them from having to think about the low level details. If you want a cross platform alternative to OpenGL, try OpenGL.
I am TheRaven on Soylent News