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."
Great, another DNF fan... if only if he wasn't lying
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.
They are constantly changing direction and contradicting themselves. But, they have made some good technology and have made contributions to the Open Source world. But, most of the time, they are a confusing, self-contradicting mess of words and actions.
Pain is merely failure leaving the body
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?
To late for me, but hats of to them on this. If they had done this about 5 years ago, I would have put my energy into learning, but now that Coin has implemented OpenInventor and then some, I have little interest in java. I was always worried about sun letting java 3d drop off the face of the earth or only updating for solaris (which might be a worse fate)
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...
How is the code being shined from Sun? Does this new code use RMSS General Public License, or another alternatve to it? It will a difference to developers as soon as software released is make.
Read journal when you are not understand
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
Does this mean that if Java gets their speed up, universal platform games are the future?
Whoever dies with the most toys wins.
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.
I, for one, want options other than GPL. The Berkeley license works just fine, thanks.
There are plenty of developers that don't want to touch and taint commercial code with the GPL. Java has plenty of commercial success. Not everyone has to chant the GPL mantra, nor join a jihad, including Sun. There are room for multiple licensing models.
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.
Nice try AC, but you got that all wrong.
Traditional compilation is like taking food, and deciding what body part exactly that food is going to be turned into ahead of time and converting it before eating - so that steak may be turned into muscle, or perhaps a bit of extra fat to go around your stomach. Then you graft it on without the pleasure of actually eating.
Meanwhile let's example what's happening with the Java (TM) Steak. You eat the steak (code) as normal, then your body (processor) decides at runtime (digestion) where best to put the energy (compiled code) coming out of that food. Perhaps you need extra energy because a bear has suddenly come after you, and you can quickly run away.
So, would you rather manually turn a beautiful steak (think roasted tomato for vegetarians among you) into a lump of fat, or enjoy eating it and let your body do what is best for you with it (like avoiding bears!).
In short if you want to be eaten by a bear, by all means continue to use compiled languages with no dynamic runtime optimization of code.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
In short, its a tradeoff with no clear winner and pleanty of room for improvement
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
I'll stick with the PHP web-server.
Who cares what the license is.
Sorry to sound freakish but I keep hearing this over and over again until my head explodes on why only GPL is free etc.
I agree there are only semi free licenses out there for alot of things, but BSD is considered free by all but the most extreme in the GPL area.
I use FreeBSD and prefer the license but whatever rocks anyones boat?
Alot and I mean alot of free software like Apache, Sendmail, Bind, python, and perl are not gpl either. Either they are BSD, artistic, free domain, or have their own free license.
There is alot more free software than just gpl products besides Linux and emacs.
Yes Sun is open sourcing the product fully even if their are BSDing it rather than GPLing.
http://saveie6.com/
Looking glass is cute, but also utterly useless, both as a system and as a performance indicator.
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.
No they aren't. RTFA.
Female Prison Rape in NY
Greetings All,h tm)
I don't think the awesome Ubisoft game IL-2 Sturmovik uses Java 3D but a large part of it is written in Java (noted in the report http://www.rolemaker.dk/articles/evaljava/errata.
You can see screenshots of the game at
http://www.il2sturmovik.com/
Cheers,
Mike
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.
Key portions of that code are not released under open source licenses. These kinds of "source releases" under proprietary licenses have only upsides for the company making them: they aren't giving away anything valuable (Java3D isn't exactly a hot property), the company still retains all the important rights, and they can claim that people copied stuff from them if there are similarities between their proprietary code and open source software. The latter is also the reason why you run the risk that open source projects will simply not let you participate if you as much as look at these kinds of proprietary source releases.
And even if Java3D were released under an open source license, it still wouldn't do you any good because you couldn't use it without Sun's proprietary Java implementation or uncertified, partially Java-compatible implementations of dubious legality (meaning, all the, incomplete, Java implementations that don't come from Sun).
The plus points couldn't be implemented into linux any more readily with the source available than now if the licence wasn't GPL.
It would not be a trivial job to do either - they are utterly different implementations of a kernel, I imagine that whatever code could be salvaged would need major massaging.
Can you (or anyone else) highlight some significant advantages of the solaris kernel over linux which should be ported across if it became possible to do so?
then implement the 3D stuff using JNI (Java Native Interface) and OpenGL. Wouldn't that be an interesting experiment? I've done some tests using Java, OpenGL and JNI and it surely is possible but I haven't looked much at Java3D.
For your information, the JRL (license used for the core of Java3D) is a non-free license and non-OSI compliant. This is a proprietary software license. The main restriction is that you get the license *only* for "the following for Your Research Use only:".
;-), this was too late...
Sun doesn't want to understand what is a real free software license... But think a second about the sofware with a growing user base, I see only the software release under a free software license (like OpenOffice).
I see Sun like Netscape. When they took the option to release under a free software license the core product (think about Java
Remember to check the alternatives, too. LWJGL has been around for quite awhile, has been used to make a commercial game, and is BSD-licensed for all your open source needs.
If all you need is a stripped down OpenGL library without all that messy swing and awt code and want to just get down and write some nifty console-style games, LWJGL could be the library for you.
If you were me, you'd be good lookin'. - six string samurai
People are saying "why not BSD for the core".
The problem is, if it was BSD or LGPL, all it takes is one person to make a change that intentionally or unintentionally breaks the API before we end up with the kind of problems that SUN is trying so hard to avoid.
Basicly, it seems like there is one licence for "use it however you like except you cant sell it or use it commercially" and then another one for those waniting to use it commercially where you have to pass all the java compatibility tests to be able to use/distribute your new version.
For those who claim that OSS prevents incompatible forks, there are almost certainly examples of where multiple almost-but-not-quite-the-same implementations of some language or API or whatever exist.
Although, now that I think about it, a better way would be to Open Source Java3D completly but if you wish to distribute the modified version, you have to either pass the java tests or move your library from the javax package so it doesnt replace any standard version with a (potentially incompatible) new one.
LGPL allows you to redistribute it as GPL if you wish. Of course this wouldn't really take hold unless people started getting it from you.
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.
Traditional compiler: You plan how you would run away from a bear ahead of time. You have advantage of being able to think it through, but you don't customize your strategy for habits of the particular bear.
Oh really? How did you know there was a bear?
You can optimize forever, but any optimization that is not dynamic invariably has made SOME choice that is incorrect, or at least has not made all the choices it could have made knowing exactly how the program was to be run. In this case the bear come on you after you ate.
JIT: You observe a few people being chased by a particular bear and either get eaten or escape. Then, when you are chased yourself, you come up with a strategy based on your observations. On the downside, you don't have much time to think and everyone who gets chased after that uses your exact strategy, even if the bear changes his habits
But in the computer world you have MLLIONS OF BEARS PER SECOND. Which means it's OK to have a few people eaten, as everyone else gets away. With the static compiler you have whole CITIES of people being devoured by the ravenous ursids. if the bears change tactits you adjust - but the real beauty is that people tend to be chased by bears (run programs) in the same way. The way I use Photoshop for example is a very different but predictible pattern to someone doing more graphic design work than photography, for example.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Newer work seems to be based on calling OpenGL from Java. With widespread OpenGL support in hardware, that makes sense. There are at least five incompatible OpenGL bindings for Java, though. Sun has an "official" one, but they couldn't resist crudding it up with all their "technologies", so you have to download Ant, Antlr, and Java Web Start. This last tangles you up in some Sun licensing restrictions. This is a bit much for what's no more than a shim.
There are a lot of people talking about the poor performance of Java as a platform for 3d.
http://www.megacorpsonline.com/ is a Java game that more or less proves that a "high quality" FPS can be done in Java. It's beta, done by a small team, so it isn't quite going to compare to Doom3 or Half Life 2, but it does show a game 3d application running well.
Yes, I officially searched the Sun Corporate Headquarters, and no Soviet flags were found. Thus, they are not using the GPL.
...I just wish it was faster. I love Java to death, run my alumni site using JSP (Shameless plug: Downers Grove South) (please go easy on it, still in development, and yes, I'm design challenged), and program all sorts of baubles using it.
A fast Java 3D would be terrific. Sun, here's a quick hint: Get the basics down, 3d cubes, spheres, etc, optimize them to hell and back, make them blindingly efficient and fast, and then do the icing on the cake. I don't care if it just takes one function call to create a 3D representation of a Halo Marine machine gun, I can't use that if it's slow as heck.
Get to work, Sun.
Sparc is a big endian RISC platform. You know what another big endian RISC platform is? PowerPC. That means on Mac OS X you should see equal performance between C++ and Java as well.
So there!
(wah wah, nothing but x86 will satisfy me)
and using three exclamation points is not grammatically correct.
In other words, something like this....
Because Sun has had to hash out many of the issues of scalable vector drawings, gradients, etc. that would be very useful in an SVG implementation that could be incredibly powerful for resolution independent, dynamic web applications in an open standard, open source way (as opposed to Flash or PDF).
[I know that ghostscript has many of those issues worked out, too, but the code base was started back in the days of C and DOS and might not be as nice to work from as the Java 2D API. The Mozilla and KDE SVG efforts might benefit from an open source Java 2D.]
"Provided by the management for your protection."