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.
Finally Java 3D has been released. I've long been a critic of Java, largely due to its "2D" nature. I'm very glad to see Java finally go 3D, especially since Open Source rocks and Sun sucks, particularly since they did a deal with Microsoft. Maybe C++ and Pascal will go 3D now, long live that programming language I'm talking about. Yeah... Java...
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
one of my personal favs... http://equinox.planet-d.net/java/vectorball/
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.
FYI, OpenOffice.org is LGPL and SISSL. Not GPL.
I'm currently working on what will be a large number of tutorials that go through the process of building a graphics API with pure software rendering. Starting with JavaScript and eventually will get into C and ASM.
JavaScript 3D
The most recent lesson (written Friday) demonstrates how to do texture mapping. With a color key to boot.
With OpenGL and DirectX already being used with pretty much everything I don't think Java3D is going to go very far. It has no real advantage on the desktop. The problem is that most devices that rely on Java like Cellphones don't have a large enough screen to make 3D really useable. And they certainly don't have the hardware acceleration.
Where Java3D might have a chance, developers are probably better off sticking to software rendering and 2D games with some 3D effects like lighting, alpha blending and whatnot.
I'd imagine they're making it open source because they realize that without a community to call it their own there's probably not going to be much of a fan base to get anything practical (read: that can make money) done with it. If anything goes wrong, Sun isn't really out anything.
Ben
Work Safe Porn
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.
While the examples and utilities for Java3D are being released under a BSD-like license, Java3D itself is being released under the Java Research License, which is neither a Free Software license nor an Open Source license. It allows use of the code for research purposes only.
But now i'm hungry damnit!
"Sic Semper Tyrannosaurus Rex."
I'd like to think that under the hood Java3D uses whatever hardware accelerated 3D technology is available on the current system.
So whether Java is "just another 3D library" or an abstraction layer to truly make cross-platform development easier depends on the quality of the VM.
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.
Sun are not "testing the waters". Instead they are continuing to follow their extremely successful strategy of the last few years. What Sun really don't want is a viable open source clone of Java, whether it is gcj or IKVM. So, every so often they make noises about open-sourcing things. This means that people think working on the open source Java clones is a waste of time. People also carry on working on open source Java applications, providing Sun with help that Microsoft can only dream of.
.NET. The .NET system is probably better than Java, and we knew that if we wanted a free version we would have to write it ourselves.
.NET and c# are very nice to develop with, there is a high quality open source version, and the platform has Microsoft's marketing clout behind it. Oops...
Why do you think Mono is now days away from a 1.0 release, while gcj and classpath are still lagging the current Java? Because everyone knew that Microsoft would never open-source
This is the reason why Sun's strategy is, ultimately, misguided.
You want to know about Java3D and why people love it? Try looking towards the medical profession, especially radiology and surgical planning. There are a number of Java3D based DICOM viewers out there for viewing CT and MRI images, such as SPLViz and VisAdd.
The cross-platform portability means that the same CT and MRI images can be loaded up onto the same viewer on both the doctor's office PC workstation, their home macintosh or linux system, or even onto one of the esoteric workstations.
To get a better handle on why this images are needed, read up on this article: Combining Local and Remote Visualization Techniques for Interactive Volume Rendering in Medical Applications, and check out the Stanford-NASA National Biocomputation Center Website.
Once you dive around those articles and websites, you'll realize that Java3D supports alot of exotic hardware, such as 5 megapixel LCD monitors, Projection Tables for Virtual and Augmented Reality and Virtual Surgery Tables.
Radiograph images in most hospitals are obtained on VAX or QNX or HP Unix systems, and are then transmitted to Solaris or Windows workstations/servers for post processing. It's typical to have sometype of Oracle database sitting on an imaging archive (we have a 20TB archive, for example), feeding images to the clients sitting on workstations. Sometimes the images are saved as 3D volumetric data, although usually they're saved as 2D slices. So, you need some type of portable 3D viewing application that can sit on nearly any type of box, and can compile the radiographs for whatever local viewing equipment is available...
FYI, medical systems have to conform and perform according to federally mandated law, and there isn't the market pressure to compete with the newest processor on the market. Therefore, priorities are very different in the medical world. Pixel shading and texture mapping are generally on the bottom of our list of importance. True stereoscopic visualization and platform portability are near the top. For our purposes, Java3D outperforms all other competitors, because we *need* the portability, the garbage cleanup of java, and all of the other advantages of Java.
Yes, I officially searched the Sun Corporate Headquarters, and no Soviet flags were found. Thus, they are not using the GPL.