Slashdot Mirror


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."

220 comments

  1. Re:I heard... by Anonymous Coward · · Score: 0

    Great, another DNF fan... if only if he wasn't lying

  2. Testing the waters? by Anonymous Coward · · Score: 5, Interesting

    I believe Sun is testing the waters for possibly fully releasing Java into the open source world.

    3D people out there .. utlize this stuff so they'll be encouraged to release Java.

    On a side (offtopic?) note. According to a member of the solaris dev team at http://blogs.sun.com/roller/page/tucker/20040618#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.

    -Johan

    1. Re:Testing the waters? by Anonymous Coward · · Score: 4, Informative
    2. Re:Testing the waters? by InodoroPereyra · · Score: 3, Insightful
      I'd like to think so. However, they chose a BSD license apparently. In my humble opinion, if they want to open Java, they should go GPL. This way, at least they know that nobody (like MS) will use the code they are opening after years of development, turn it into a proprietary, incompatible beast and release it and even perhaps make money out of Sun's effort, without contributing anything back.

      In fact, OpenOffice uses a dual licensing scheme that includes the GPL right ?

      Bottomline: come on Sun, opensourcing Java will be the final step to make it a Standard (it is almost there, how many IT Jobs requre Java these days ?)

    3. Re:Testing the waters? by Tarantolato · · Score: 4, Interesting

      However, they chose a BSD license apparently.

      I'm aware that every single anti-GPL troll in existence has suggested the BSD license for Sun in every single forum discussion to even touch on the topic simply because they don't like the GPL, but is there anything official or semi-official to back that assertion up?

    4. Re:Testing the waters? by Wesley+Felter · · Score: 1

      In my humble opinion, if they want to open Java, they should go GPL. This way, at least they know that nobody (like MS) will use the code they are opening after years of development, turn it into a proprietary, incompatible beast

      It's not that easy; if Sun releases their VM under the GPL then the evildoers will simply write new VMs from scratch or adopt non-GPL VMs like ORP.

    5. Re:Testing the waters? by Brandybuck · · Score: 1

      This way, at least they know that nobody (like MS) will use the code they are opening after years of development, turn it into a proprietary, incompatible beast

      Java currently IS a proprietary incompatible beast. What's your point? ...and even perhaps make money out of Sun's effort...

      Heaven forbid that anyone should make any money off of someone else's work! A bunch of people, including Richard Stallman, the creator of the GPL, see nothing wrong with people making monetary profit off of other's works. ...without contributing anything back.

      This affects Sun, and only Sun. It is not your code. If they aren't getting their panties in a twist over the thought of people not reciprocating their generosity, that is their concern, not yours.

      --
      Don't blame me, I didn't vote for either of them!
    6. Re:Testing the waters? by Anonymous Coward · · Score: 1, Interesting

      I heard Sun's going to take advantage of IBM having opened up Power - and announce a port on to IBM's pSeries systems. Add this, plus open source, plus java - hmmmm.

      You gotta give credit to these guys - they are nothing if not persistent.

    7. Re:Testing the waters? by Anonymous Coward · · Score: 4, Insightful

      > opensourcing Java will be the final step to
      > make it a Standard...

      Ugh!!! Why is it that people in the open-source
      community can't seem to grasp the concept that
      open-source is not necessarily equivalent to
      open-standard. One has nothing to do with the
      other. Closed source can ahdere to standards
      just as well as open-source. This *isn't* a
      tirade against open source; it's just that I'm
      amazed at how often I seen this fallacy crop up
      in open-source circles.

    8. Re:Testing the waters? by aristotle-dude · · Score: 2, Insightful
      Java is a standard already. Do you understand that software can be an open standard and yet not open source? Do you also understand that BSD is and Open Source license?

      If you want to see an example of a successful open standard created with BSD code, look at TCP/IP. Perhaps you've heard of it?

      Is InodoroPereyra another alias for RMS? Honestly, I cannot fathom how so many people don't know that GPL != Open Source as it is one of many open source licenses.

      Take a look at Apache and many other Open Source projects which are not GPL'd.

      --
      Jesus was a compassionate social conservative who called individuals to sin no more.
    9. Re:Testing the waters? by Xabraxas · · Score: 2, Insightful

      You're downright stupid if you think that happens when you use the GPL.

      --
      Time makes more converts than reason
    10. Re:Testing the waters? by Mithrandir · · Score: 5, Informative

      Only the utils and examples are released under the BSD license. The core and vecmath libraries are released under licenses named Java Development License and Java Research License. These are most definitely not OSI-approved Open Source licenses.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    11. Re:Testing the waters? by Anonymous Coward · · Score: 0
      It's in the preamble, which is an address from the GNU people to the user of the license:
      We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
      This isn't a problem for GNU drones because they'd rather the FSF control the software anyway (it's GPL'd anyway, so it's not like the FSF can suddenly jerk the software out of the hands of everybody (unless they change the license)). It's a HUGE problem for companies who want to use the GPL to keep other companies from cashing in on their work.

      Read the COPYING file included with the Linux kernel source. It explicitly lays out who the copyright owner is:
      the instance of code that [the GPL] refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.
      Large companies who are contributing to Open Source Software are being careful about the licensing. You can bet Sun's lawyers won't GPL their code without taking similar precautions.
    12. Re:Testing the waters? by subStance · · Score: 1

      Perhaps the reason they chose a BSD license is a result of the Microsoft settlement ... maybe they secretly agreed to release the full JVM source under a BSD license so that Microsoft could make their own less-Free version available under different conditions as a derivative. That could be one possible reason.

      Damn ... any kind of license change is an improvement over the abomination they call an "open" license now. Sure it's open for users of their APIs, but implementors have to sign a contract before they get to read the contract they have to sign for the test kits (which the software is contractually required to pass before you can release any implementation). You end up agreeing to stuff that's got the potential to personally bankrupt you if they wanted to, all in the name of API compatibility.

      I guess that's what happens when you keep too many lawyers on retainer.

      Please Sun .... find a better way !! If a BSD rather than GPL license will do it, then that's fine by me. Just make it implementor friendly too - perhaps making the test kits automated (or really easy to use) and freely available would be a good start.

      --
      Servlet v2.4 container in a single 161KB jar file ? Try Winstone
    13. Re:Testing the waters? by Anonymous Coward · · Score: 0

      I don't know, but somehow he's managed to get a unicode character past Slashcode.

    14. Re:Testing the waters? by gr8_phk · · Score: 1

      I think SUN just wants to get as many open source projects using Java as possible. If/when open source becomes dominant on the desktop they could then start charging for Java. Don't believe it? Why then is everything going open source except Java?

    15. Re:Testing the waters? by ultranova · · Score: 1

      ...without contributing anything back.

      This affects Sun, and only Sun.

      This affects anyone who wishes to program in Java. After all, the more is contributed back, the better the JRE will be. With a BSD style license various corporations will produce their own versions with various enhancments, but there won't be a single version with all of them. With a GPL license, all the contributions would trickle back to a single pool, allowing one to get the benefit of all of them.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    16. Re:Testing the waters? by Anonymous Coward · · Score: 0

      they chose 'a' BSD license.
      There are many, with different behavior.
      So, BSD licensed does not say much.

    17. Re:Testing the waters? by Anonymous Coward · · Score: 0

      The preamble is an address from the Licensor to the Licensee, doofus - if you're not the FSF, and you use the GPL as a license, you're the one copyrighting the library.

      Idiot/Troll/disinformationist/astroturfer.

    18. Re:Testing the waters? by Richard_at_work · · Score: 1

      For those of us who like to use the BSDL for our code, the GPL is as bad as any closed source license, as it allows people to incorporate our code into it without allowing code to be contributed back to us.

      THe BSDL relies on peoples ethics for contributions to the code base, the GPL demands contributions if distributed. Theres the difference as i see it.

    19. Re:Testing the waters? by k98sven · · Score: 1, Interesting

      Open source won't use Java until Java is open source. Most OSS developers are wary of traps like that.
      (Which caused reluctance to using Qt, which sparked the Gnome project. Now Qt is free, of course.)

      Java is certainly going open source. Not Sun's java, but there are plenty of open-source VM:s, and compilers, and a full implementation of the class library in the works.

      I predict that, when these projects reach sufficient maturity (AWT/Swing support being the achilles heel in all the above), we will see widespread adoption of Java in the OSS community.

      What Sun does will have little impact on the OSS community unless they get serious about open source and put Java under a tolerable license.

      (If someone's curious about what is bad about the Sun license, see Dalibor Topic's post here, containing a point-by-point comparison to the Open-source definition.)

    20. Re:Testing the waters? by tolan-b · · Score: 1

      "Closed source can ahdere to standards
      just as well as open-source."

      Yet it's remarkable how often it doesn't.

      There's far less motivation for an open-source project to break standards.

      By the way, you probably shouldn't write your replies in OE with text wrap on and c/p them ;)

    21. Re:Testing the waters? by Xabraxas · · Score: 1

      Exactly dumbass. It's in the PREAMBLE for a reason. It's not a part of the licensing terms.

      --
      Time makes more converts than reason
    22. Re:Testing the waters? by Brandybuck · · Score: 1

      This affects anyone who wishes to program in Java.

      No, it only affects people who wish to contribute code TO Java. A universe of difference. Take a look at C and C++. Their specifications are 100% open, and essentially in the public domain. Any fewer protections than the BSD license would give. But no one has been able to "hijack" those languages.

      The BSD license (or freer) is essential for software that is to be a standard. Even the FSF says BSD is appropriate in such situations. All you need to prevent proprietary enhancements is a trademark. You don't follow the specs, you can't call it "Java".

      --
      Don't blame me, I didn't vote for either of them!
    23. Re:Testing the waters? by HuguesT · · Score: 1

      So what you are saying is that the BSD licence is idealistic and the GPL is pragmatic but both tend towards the same goal?

      If that's the only important difference then can we stop arguing over which one is better?

    24. Re:Testing the waters? by Sinterklaas · · Score: 4, Insightful

      So what you are saying is that the BSD licence is idealistic and the GPL is pragmatic but both tend towards the same goal?

      By using those words you are already showing bias. You have decided that the GPL is necessary to get contributions and that's why you call it pragmatic. If you believe that you get plenty, if not more, useful contributions with the BSD license, you could call the BSD license pragmatic and the GPL idealistic.

      If that's the only important difference then can we stop arguing over which one is better?

      No, another important difference is that you can't use GPLed code without GPLing your entire app (you can't have one part BSD and another part GPL). That means that in some cases, the GPL will actually prevent people from doing the right thing (using open source code and giving back code). Those practical considerations make it so that non-GPL open source developers have a big reason to lobby against using the GPL. I think that the arguments would be much less if the GPL-advocates would ask for the LGPL instead of the GPL.

    25. Re:Testing the waters? by dekeji · · Score: 1

      I believe Sun is testing the waters for possibly fully releasing Java into the open source world.

      This release of Java 3D is not an open source release, it's a release of proprietary software in source form under a restrictive license.

      3D people out there .. utlize this stuff so they'll be encouraged to release Java.

      If you even so much as look at that code, you have looked at Sun's proprietary source code under a non-open source license. Rather than helping open source, you may be making yourself ineligible to work on open source 3D projects.

      but people will foolishly ignore it, rather than implement it's plus points into Linux.

      People will ignore Solaris source releases because they will not be open source releases, they, too, will be source releases under restrictive, proprietary, and dangerous licenses. (IMO, they will also ignore them because Solaris has nothing to offer technically to Linux, but that's a separate point of debate.)

    26. Re:Testing the waters? by Anonymous Coward · · Score: 0

      Completely off topic, but relevant to the parent: does anyone know why the fuck Slashcode won't allow a paragraph to begin with an ellipsis? This is a cause of endless confusion (when people forget to preview their posts) and frustration (when they do preview them and then have to insert
      tags by hand to get the formatting right), and I simply cannot imagine what problem it is meant to solve.

    27. Re:Testing the waters? by Anonymous Coward · · Score: 0

      Is InodoroPereyra another alias for RMS? Honestly, I cannot fathom how so many people don't know that GPL != Open Source as it is one of many open source licenses.

      You're slandering RMS there. RMS is perfectly aware that there are many Open Source licenses: more than that, he acknowledges that there are many Free Software licenses (his preferred term), and he includes the BSD license in the list of Free-as-in-what-RMS-approves-of licenses at gnu.org.

      He thinks everyone should use the GPL for political reasons, but that doesn't mean he doesn't acknowledge that other licenses provide more freedoms.

      There are plenty of pro-GPL trolls, but RMS is not one of them. You may think him misguided, or even unhelpful and doing his own cause harm by being so outspoken, but you can't possibly accuse him of trolling.

    28. Re:Testing the waters? by Anonymous Coward · · Score: 0

      Going back to the last major language (b4 Java) C++ was an open standard language. (ANSI)

      Microsofts closed source implementation of it is, to this day, non-standard.

      Borland always kept up with each release of the standard, at least when it was important - during the first few releases.

      M$, of course wants no standard other than it's own, thus breaking C++ portability, making code much harder to port. M$ dosn't want code ported to other OSs.

      anyway - standards can be
      open while the products that follow them go their own way ...

    29. Re:Testing the waters? by HuguesT · · Score: 1

      > If you believe that you get plenty, if not more,
      > useful contributions with the BSD license, [...]

      In your own words, BSD licensing is being idealistic here. Here's free stuff, use it, do what you want, do the right thing.

      There is nothing wrong with being idealistic. In fact a lot of things are being done through idealism.

      > That means that in some cases, the GPL will
      > actually prevent people from doing the right
      > thing (using open source code and giving back
      > code).

      Similarly but in different contexts, the GPL will actually ensure that people are doing the right thing, using open source code and giving back stuff. Without the GLP, no Objective-C in gcc for example, no improvement to KHTML in Konqueror. There are many other examples. The FSF has actually been very successful in ensuring compliance without ever resorting to courts.

      Microsoft is starting to give stuff back. Maybe the BSD license works as well in different ways.

      The aims are the same. We should stop arguing. Indeed you can't use the BSD license if some of the code you want to use is GPL but that's just what the developers of the code you want to use wanted, to ensure compliance with Free software ideals.

      Is it unfair that the GPL camp developers can use BSD code when BSD camp developers can't do the reverse? No. Absolutely not. When a BSD camp developer uses the BSD license this is precisely what they give up, and more. Their code can be used in proprietary software in fact. BSD camp developers cannot complain that their code is being used in ways they don't approve of.

      Similarly when BSD developers complain that they can't use GPL code for the reasons above they are being disingenuous. By its very nature the BSD license admits the existence of other ways of distributing software, so they should not complain that it does happen in practice.

      It would be much more productive to everybody if the BSD developers expressed happiness about seeing their code used in GPLed products (as well as in proprietary ones), and continue to advocate the BSD license as a license that actually encourages even proprietary developers to do the same thing in practice in practical examples, not just theoretical ones.

      Like I said earlier, even Microsoft is starting to release code under BSD-like licenses. I think this might be indication that the BSD camp is doing something right. Is Microsoft doing that of its own volition or because of the widespread percieved threat of GPL software I honestly don't know. This is a question for another day.

      In the meantime peace in the F/OSS camps would be absolutely terrific.

    30. Re:Testing the waters? by Sinterklaas · · Score: 1

      In your own words, BSD licensing is being idealistic here. Here's free stuff, use it, do what you want, do the right thing.

      I think that pragmatism means that you try to solve the problem in the best possible way. If you think that the BSD license is best, then choosing it is a choice for pragmatism. Forcing people to contribute, when that doesn't advance your goals as well (according to your beliefs), is then idealistic.

      Personally, I favor BSD in most cases, but GPL can be a better choice for some situations (since I think that neither is better than the other in all cases).

      Similarly but in different contexts, the GPL will actually ensure that people are doing the right thing, using open source code and giving back stuff.

      It is not clear how much is gained by 'forcing' people to contribute and how much is lost by scaring people away with a more restrictive license. Since no good research has been done on this topic, it's more about beliefs. Do you believe that:
      - sharing code is generally in the best interest of those who use open source code.
      - companies who do so will generally be more succesful.
      - the marketplace and common sense will 'force' companies to open source in the long term.
      - A permissive license will make adoption of open source easier and thus result in a faster adoption.

      If you believe these things, then permissive licenses would be your preference. If you don't, and you are free to disagree, I ask only that you try to understand my standpoint.

      Without the GLP, no Objective-C in gcc for example, no improvement to KHTML in Konqueror.

      The first was true, because Apple didn't want to open source Obj-C, once upon a time. But Apple has recently changed and has since returned changes when they used open source code from a third party (see Darwin/BSD). They have also open sourced some of their other infrastructure-level projects (ie. Streaming Server, Open Directory, Common Data Security Architecture, OpenPlay, Rendezvous, HeaderDoc). So I would definately assume that GPL enforcement would not be necessary for WebCode/KHTML, because Apple 'got it.' My hope is that more companies will 'get it' and then you don't need to force people to contribute (in most cases). They will see the advantages of doing so.

      Microsoft is starting to give stuff back.

      No, AFAIK the stuff that they are open and shared sourcing is 100% Microsoft code. It is not a case of taking open source, modifying it and giving back changes (which is actually very good, since MS seems to skipping steps on the path to adopting open source). However, it also clearly demonstrates that the GPL is not (always) necessary to get contributions. MS decided to open source, not because a license said they should, but because it made business sense (and conviction is always better than coercion).

      The aims are the same. We should stop arguing.

      No, we should not stop arguing. It's important for the BSD and GPL communities to understand and respect each other. That can only happen if we argue about our positions and through these clashes, find out the limitations of our views. Hiding in ivory towers, cuddling our ideas only results in blind idealism. We need pragmatism and cooperation.

      Is it unfair that the GPL camp developers can use BSD code when BSD camp developers can't do the reverse? No. Absolutely not. When a BSD camp developer uses the BSD license this is precisely what they give up, and more. Their code can be used in proprietary software in fact. BSD camp developers cannot complain that their code is being used in ways they don't approve of.

      Of course they can complain. The BSD license only makes it so that you can't go to a judge to get your way. However, there is a big different between morality and law. Just because something is legal, doesn't mean it is right (or vice versa). Because the BSD license doesn't specify what to do, it's up to the users of the code to use their own judgm

    31. Re:Testing the waters? by HuguesT · · Score: 1

      Thanks for the discussion.

      First of all BSD people make use of GPL products a gread deal. AFAIK gcc is still the compiler of choice for all the BSDs. It's not as if GPL people never give anything back.

      I sometimes wonder if the world would have been different if the *BSD had become Free earlier than Linux. As it is more developers use the GPL over the BSD license. Is that an artifact of the most popular Unix-like kernel license, or do more people really believe the FSF than they believe the BSD people? I don't know.

      Personally I have my own Free software project (http://imview.sf.net) and I've released it under the GPL. I did this partly so that people who want to include parts of it in different, non-GPL projects ask my permission first (so far always given). I wouldn't want my work to participate indirectly in things I don't approve of. Call me paranoid if you want. In larger projects this is not a workable approach of course, but it does illustrate the fact that just because a whole piece of software is GPLed it necessarily means it has to be that way for all time and for all people.

    32. Re:Testing the waters? by Molt · · Score: 1

      I don't think any C++ implementation has ever been completely 'standard', it's a very difficult goal to acheive.. especially when you consider how difficult and complex the STL is to implement.

      I'd agree that a few years back Visual C++ was woefully non-standard, but of late they seem to have made standards compliance a major goal to the point where they're probably at least as standard as GCC now and improving rapidly.

      Admittedly the fact that the VC++ has been steered this way of late may have something to do with the fact they have the chair of the ISO C++ Standards Commitee as one of the big muckity-mucks working on VC++...

      --
      404 Not Found: No such file or resource as '.sig'
    33. Re:Testing the waters? by ultranova · · Score: 1
      No, it only affects people who wish to contribute code TO Java. A universe of difference. Take a look at C and C++. Their specifications are 100% open, and essentially in the public domain. Any fewer protections than the BSD license would give. But no one has been able to "hijack" those languages.

      I didn't mean enchantments to Java as a language, I was meant enchantments to a specific Java Virtual Machine. And my argument was that with a GPL license, any improvements to that specific Java interpreter (such as smaller memory footprint or faster execution speed) would be contributed to a single program, which would then have them all. On the other hand, with a BSD-style license nothing stops anyone from making their own slightly improved closed-source version, and there is no single Java Virtual Machine that would have both fast execution speed and a small memory footprint.

      Of course it's also possible that competition would eventually result in better JVM.

      The BSD license (or freer) is essential for software that is to be a standard. Even the FSF says BSD is appropriate in such situations. All you need to prevent proprietary enhancements is a trademark. You don't follow the specs, you can't call it "Java".

      Like I said, I wasn't talking about enchantments to the Java language, but to the Java interpreter (JRE).

      Of course, a reference implementation with a BSD license would be a nice thing...

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    34. Re:Testing the waters? by Sinterklaas · · Score: 1

      First of all BSD people make use of GPL products a great deal. AFAIK gcc is still the compiler of choice for all the BSDs. It's not as if GPL people never give anything back.

      That is true. I'm not saying that GPL people are selfish or anything. I just wanted to make the point that BSD license isn't necessarily without any obligations (not legal ones, but social/moral).

      I sometimes wonder if the world would have been different if the *BSD had become Free earlier than Linux. Is that an artifact of the most popular Unix-like kernel license, or do more people really believe the FSF than they believe the BSD people? I don't know.

      Me too. I think that a lot of people who start with Linux see the GPL as the 'default' license. If *BSD wouldn't have had the AT&T lawsuit and perhaps a bit better marketing, things might be just the other way around (perhaps with Linus forking *BSD).

      However, I do think that many GPL-advocates genuinely believe in the GPL philosophy. However, from the past we know that many things can seem like 'clear' truths based on historical events. For instance, for a long time, people thought that you could determine character from the features of someone's face/head (many characters are analysed that way in Jane Eyre). Science has eradicated that idea. Now, I'm not saying that the FSF's ideas are wrong, because I don't have the science to back that up. It might be wrong, partially wrong or right. However, I don't think that popular opinion is a good indication.

      Personally I have my own Free software project (http://imview.sf.net)

      Looks nice!

      I did this partly so that people who want to include parts of it in different, non-GPL projects ask my permission first (so far always given).

      But that assumes that people will ask you for permission instead of moving on. Generally, when I see a GPL lib that I want to use, I will move on, unless I really can't do without. Obviously it will be a bit different for an application, but you probably will scare people away (also because you don't indicate anywhere that you are willing to sub-license, so people might be afraid to ask you).

      I wouldn't want my work to participate indirectly in things I don't approve of. Call me paranoid if you want.

      I understand you want to keep control, but what do you really hope to accomplish? Al Qaeda is not going to ask permission. We may dislike companies like MS, but having them move to open source is probably a good things. If you are a pacifist, you might want to deny the DoD/military from using your stuff, but that only means higher taxes and you won't stop any wars anyway. It seems quite unlikely that you actually want to forbid someone from using your code, so what is the point?

  3. Speed of 3D in Java? by Anonymous Coward · · Score: 5, Interesting

    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.

    1. Re:Speed of 3D in Java? by allenw · · Score: 5, Informative

      If the final release of Looking Glass turns out to be as impressive as the demo shows, I don't think anyone will ever doubt Java as a 3D application language.

    2. Re:Speed of 3D in Java? by koreth · · Score: 5, Informative

      Java hasn't been interpreted byte code (strictly speaking) for some time now. The byte code gets compiled to native code at runtime, with optimizations that are determined by the runtime behavior of the code rather than by simple static analysis.

    3. Re:Speed of 3D in Java? by spudchucker · · Score: 0

      PLease type that again, only dumb it down a notch - thanks

    4. Re:Speed of 3D in Java? by thedigitalbean · · Score: 5, Interesting

      I have been writing 3D software in C++ for years and every so often (every release of Java) I get excited and want to port to Java. However, every time I try running simple performance tests of Java's floating point, the results are tragically dissapointing. The last time I tried (with JDK 1.4.1), Java was 2 decimal orders of magnitude (ie. 100x) slower than the identical code in C++ (interestingly, C# was 50x slower). My test was really simple involving vector math and matrix multiplication.

      I did some reading and found (from a long time ago) that floating point representation in Java was really slow because of the floating point standard in the VM set forth by Sun.

      My challenge is for Java advocates to publish with source a head to head comparison of floating point performance of Java vs. C++. Most of the challenges tend to focus on integer performance or memory performance, but very few people talk about floating point performance which is essential for 3D graphics.

    5. Re:Speed of 3D in Java? by Orgazmus · · Score: 1

      Instead if reading it like php, it gets compiled like c++.
      think visual basic? ;)

      --
      The system had the verbosity of HTML combined with all the readability of compiled assembly viewed as bitmap images
    6. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 5, Funny

      The java compiler is like a meat grinder. You put steak (source code) in, and it "compiles it" into ground beef (bytecode). When you eat a hamburger, your stomach's acid "compiles" the ground beef into it's different protiens/minerals/fats/whatever (native code). That's much more efficient than rubbing the ground beef (bytecode) into your skin (using a bytecode interpreter), don't you think? Your stomach acids (JVM) break down the hamburger (bytecode) and make it run on your "platform" natively.

    7. Re:Speed of 3D in Java? by Laser+Lou · · Score: 5, Informative

      Java3D was used for the game Roboforge. It was also used in Law and Order: Dead on the Money.

      --
      No data, no cry
    8. Re:Speed of 3D in Java? by Orgazmus · · Score: 1

      You win ;)

      --
      The system had the verbosity of HTML combined with all the readability of compiled assembly viewed as bitmap images
    9. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 2, Funny

      You forgot the final phase... the core dump.

    10. Re:Speed of 3D in Java? by addaon · · Score: 1

      Thanks for sharing that with me... but why do you say it's actually coded in Java?

      --

      I've had this sig for three days.
    11. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 5, Informative

      Get a clue, dude. It depends on the platform. If you're running on an x86, yes, the IEEE FP standard that is used by x86 CPUs is the backward one. SPARCs support nateively the same FP format, and that's the reason Sun chose it. Intel has been bitching for years to Sun asking them to change the format to one that does not require conversion for x86 systems. If Intel had chosen the better format, they wouldn't have this problem. Try runing FP on a SPARC -- it's on par with C++ code.

    12. Re:Speed of 3D in Java? by Aardpig · · Score: 4, Interesting

      Does anyone have any positive experiences with Java3D with high performance 3d applications?

      I believe that it is possible for Java3D implementations to be (partial) wrappers around hardware-based OpenGL/DirectX functionality. With this in mind, I really don't see much performance overhead associated with coding 3D applications Java, as opposed to something like C++.

      Of course, there are certainly other reasons why one might want to avoid using Java. For instance, if the 3D visualization is reliant on a computationally-intensive backend, it may be better to use a language specifically oriented toward number crunching -- for instance, Fortran 90/95, which has glut-featured OpenGL bindings through the f90gl project.

      --
      Tubal-Cain smokes the white owl.
    13. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 1, Funny

      It rubs the bytecode on its skin!

    14. Re:Speed of 3D in Java? by igny · · Score: 1

      While it is a cool demo, it is far from 3d. What it allows to do is to rotate planes of applications, be able to look at the apps from different angles, including from behind. It is far from 3d, because it doesnt allow to fold the application's plane, just rotate it, well how about nonplanar surfaces? Desktop will become 3d when I'll be able to create origami out of planar applications and do whatever i like (...words fail to describe what i imagined...) with 3d applications.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    15. Re:Speed of 3D in Java? by TheRealMindChild · · Score: 1

      That "horrible salsbury steak right out of a $2 TV dinner" is one of my favorite foods... more so then the other meet you listed

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    16. Re:Speed of 3D in Java? by PenguinOpus · · Score: 1, Interesting

      The speed of the high-level language is getting less and less important. Java3D is an API that is implmented as native code (JNI?) on the target system. The application can construct the data using Java prior to runtime, but display lists and scene graphs take the high-level language out of the critical path.

      It's true that SciVis, CFD and the like aren't going to be happy running in Java, but I believe you can do a good flight sim or game using Java3D.

      (Disclaimer: I haven't used Java3D... OpenGL and Performer are/were my preference, but Java3D was designed with the help of the SGI Performer team)

    17. Re:Speed of 3D in Java? by Basehart · · Score: 1

      You forgot to preface your post with You Insensitive Clod "That "horrible salsbury steak right out of a $2 TV dinner" is one of my favorite foods... more so then the other meet you listed "...never mind

    18. Re:Speed of 3D in Java? by Christopher+Cashell · · Score: 1

      Sun has stated so on numerous occasions. It's actually been used as a "Java Technology" demo, in the past.

      --
      Topher
    19. Re:Speed of 3D in Java? by mmusson · · Score: 2, Interesting

      Java Advanced Imaging (JAI) was supposed to be a showcase for Java. And it is implemented with Java, but they also ship platform specific implementations written in C if performance is remotely important.

      Although I think 3D performance would be easier for Java to achieve as long as a suitable graphics card is present to do the heavy lifting.

      --
      SYS 49152
    20. Re:Speed of 3D in Java? by mallfouf · · Score: 1

      Nice one.

    21. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 0

      Your argument has merit but can be equally applied
      to any branch or aspect of software development.
      Which leads me back to the question... From a
      technical perspective what have we gained, really?
      Will someone invent another mechansim to bridge
      the gap between Java and .Net? Oh, look we have
      a virtual system which runs transparently across
      Java and .Net! Wow, VMs on VMs. Ad infinitum.

    22. Re:Speed of 3D in Java? by Cochonou · · Score: 1

      Even more, if it is coded in Java, does it use Java 3D, or the available Java - OpenGL hooks ?

    23. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 5, Insightful

      Java FP may run well on Sparc, but do you know anybody who owns a Sparc machine? I presume my university's got a few of them, but absolutely nobody I know uses them for their own machines. And that's the crux of the issue. It's fine to say that x86 is the inferior platform and all, but the fact of the matter is that it's the platform that the vast majority of end-users use.

    24. Re:Speed of 3D in Java? by E_elven · · Score: 1

      ..from which we can infer that C++ is clearly the superior since the JVMs are written in C++. The C++ code reads bytecode *and* translates it to native code fairly swiftly while even Java itself can't be trusted to actually run Java :)

      --
      Marxist evolution is just N generations away!
    25. Re:Speed of 3D in Java? by Ilgaz · · Score: 1

      I tried couple of apps on my Mac G5 and it was fairly impressive.

      The commercial MMOG (massive online game) guys are after it since they won't have to sell CD/DVD to broadband users, will be multiplatform and could run inside browser.

      I have seen what happens if a commercial company codes java apps and sells them. E.g. I am a thinkfree java office user and I am pretty amazed about the performance. So, it won't be vaporware if Sun doesn't do a stupid thing. Can change face of gaming...

    26. Re:Speed of 3D in Java? by Ilgaz · · Score: 1

      What about PPC arch? Especially G5? Your point seems interesting...

    27. Re:Speed of 3D in Java? by Mithrandir · · Score: 4, Interesting

      Speed is exceedingly good. In the area that we develop an open source toolkit (Xj3D) and commerical applications in (X3D/VRML) our Java3D renderer is the same speed as the natively coded OpenGL and D3D applications. We have another renderer that is built directly on top of the JOGL OpenGL bindings that is at least twice as fast in every instance as that of the J3D renderer.

      So, put simply, in our application space, the Java-based application is at least twice as fast as every native code competitor. We also have a high-level scene graph optimised for visualisation that has these speed advantages as a replacement for Java3D called Aviatrix3D. You may also want to check out Xith3D, another highlevel scenegraph API written in Java that is optimised for gaming purposes and gets even better performance than AV3D.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    28. Re:Speed of 3D in Java? by Mithrandir · · Score: 4, Interesting

      LookingGlass is coded in Java and uses Java3D for the 3D part of the rendering. It uses JMF and JAI for the other media handling as well as pushing out a number of other experimental Java APIs from Sun, including one that does the low-level desktop integration like Icons, system trays etc. Can't remember the name of that offhand, but it's something like JDNC.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    29. Re:Speed of 3D in Java? by LarsWestergren · · Score: 3, Informative

      I believe that it is possible for Java3D implementations to be (partial) wrappers around hardware-based OpenGL/DirectX functionality.

      Well, there are several projects available which make OpenGL available for Java programmers.
      Lightweight Java Game Library
      Open GL for Java
      Don't think the second one is still being developed, but I think Sun is working on something more up to date.

      --

      Being bitter is drinking poison and hoping someone else will die

    30. Re:Speed of 3D in Java? by Mithrandir · · Score: 3, Informative

      Plenty of companies own lots of high-end Sparc boxes. Think of all the E10Ks, Starfires and newer boxes that have been purchased throughout the dot-com era and still today. Typically they're acting as the big number crunchers on databases or application servers for websites - places where Java is by far the dominant development language in use today.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    31. Re:Speed of 3D in Java? by Billly+Gates · · Score: 0, Flamebait

      Those are databases like you said not to develop 3d applets on or run cad software.

      Yes Unix use to be hot for this but Windows ate it for lunch with StudioMax, lightwave, and the ability to run MS Office.

    32. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 0

      Interesting that you say C# (essentially .NET) is 50 times slower. But on practical terms, Microsoft compiled a copy of Quake 2 to .NET (using C++.Net since that is what the code was initially in C++) and it ran pretty well. Perhaps not as well as native C++ but good enough for MS to recommend it to game developers to start exploring it. I tested the binary and it ran at least on my machine (1.7 Ghz Athlon) with performace indistinguishable from the original. Now if they compiled Doom 3, the difference might probably stand out.

      Of course, the difference is .NET does not try to be as "pure" as Java does. It is Managed DirectX and the core is native. So the point is somewhat moot.

    33. Re:Speed of 3D in Java? by Decaff · · Score: 2, Informative

      Java was 2 decimal orders of magnitude (ie. 100x) slower

      I'm sorry if this sounds harsh, but its not Java that is slower, its your code. Modern Java is regularly benchmarked as being around the same as C++ or Fortran for numerical work.

      However, I have seen some numeric Java code run a lot slower than C++ code. The usual reason is the way data structured are coded. If you use Collection classes in Java you will get slow access to your data. If you use Arrays and code carefully, there is no reason for Java to be significantly slower than C++, and certainly not 100x!

    34. Re:Speed of 3D in Java? by steve_l · · Score: 2, Informative

      I dont know about SPARC, but Java 1.4 on x86 can hand off FP maths to the SSE registers, rather than the classic "shite" x86 FPU, the one Patterson and Hennessey cover as a "what not to do" example in their Computer Architecture Book.

      And that is one of the nice things of Java: you get a boost from whatever accelleration is in the platform, if the compiler handles it.

      I think to make best use of the SIMD features in modern CPUs we need better array operations with compilers/runtimest that bind to the new SIMD FPUS. I think Fortran still has the edge there, for historical reasons.

    35. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 1, Informative
      Altivec support the java FP format.

      AltiVec Instruction reference for the G4 say that one extra CPU cycle is needed when using java FP. Why is this relevant? Because the topic is 3D involving vector processing.

    36. Re:Speed of 3D in Java? by super+awesome · · Score: 1

      The graphics look quite dated

      --

      m y k a r m a i s m o r e p o s i t i v e t h a n y o u r s.
    37. Re:Speed of 3D in Java? by cparisi · · Score: 1

      Does Quake 2 use any floating point math?

    38. Re:Speed of 3D in Java? by thedigitalbean · · Score: 2, Informative

      Now thats interesting. I didn't use collections or any ADTs actually. All I used were simple doubles held in a class with operations performed on them.

      I unlike many others am willing to put my code where my mouth is, so I will implement a rigorous floating point benchmark in both C++ and Java and I'll be more than happy to have people school me on my crappy Java coding by optimizing it to be as fast (or with 90%) of the C++ code.

    39. Re:Speed of 3D in Java? by twocents · · Score: 1

      Sort of cool to be able to play the law and order demo online.

    40. Re:Speed of 3D in Java? by Monkelectric · · Score: 1

      I'm worried about anyone who eats "meet"

      --

      Religion is a gateway psychosis. -- Dave Foley

    41. Re:Speed of 3D in Java? by upsidedown_duck · · Score: 1

      ...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.

      One thing I learned recently is that Java is only one part of the performance recipe. I had really good luck with Java 2D and Swing on a Sun Ultra 30 with a UPA graphics card but very poor luck under Linux and Windows with a PCI graphics card. My general conclusion was that raw bandwidth was a huge factor which was compounded by varying levels of optimization in Java for each platform.

      One thing that impressed me, though, was that with absolutly no platform-specific Java code, my little test app worked truly consistently on each platform, aside from the performance differences.

      Another thing, without hardware acceleration, pretty much all graphics is going to be slow, no matter the OS or development environment du jour.

      --
      -- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
    42. Re:Speed of 3D in Java? by danharan · · Score: 1

      Last time Java was benchmarked here on /., I found optimizations for one test that doubled the speed. After posting that, someone showed how you could optimize it even further.

      I've no knowledge of fp optimization, but I encourage you to have java-types critique your code. Good luck! :)

      --
      Information: "I want to be anthropomorphized"
    43. Re:Speed of 3D in Java? by Decaff · · Score: 1

      Actually, C++ can be slow too - even light object orientation, and doing things like using accessor methods as against direct use of instance variables can slow things down significantly. A key part of good Java is to pick the right VM: the latest Sun or IBM VM (IBMs is particularly fast), and use the -server switch to give priority to code optimisation.

    44. Re:Speed of 3D in Java? by mysterious_mark · · Score: 1

      I've used Java 3D quite a bit, the performance issue really depends on a lot of factors, but it doesn't necessarily suck. I've compiled Java 3D into win32 native code also, this seems to work quite well as it is quite performent but still gives you the advantages of nice clean OO Java. I think its great that they've released the source, it will definitely make life easier for developers. I think the next big step foward is to get awt support for gcc/gcj such that Java 3D can be compiled to native code for various platforms. Mark

    45. Re:Speed of 3D in Java? by upsidedown_duck · · Score: 3, Interesting

      ...do you know anybody who owns a Sparc machine?

      Yes.

      One thing that is nice about having the "real deal" is some of the perks that come along with it. For example, a Sun or SGI workstation makes a nice reference platform for OpenGL apps, because they ship native optimized GL libraries for their graphics cards. You also get a different take on UNIX standardization, which helps with writing portable software.

      --
      -- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
    46. Re:Speed of 3D in Java? by jonathanduty · · Score: 1

      I've written small CAD clients using Java 3D and it has worked pretty well. Its really a case-by-case decision. The GUI CAD client software worked well in java but the high-end simulation software that most CAD packages also provide usually needs to be writting in a lower level language ususally because they take advantage of processor-specific math libraries. A lot of CAD packages are now moving to a client/server model where the designer will create their design on a client and send it to a server for varification.

    47. Re:Speed of 3D in Java? by mattgreen · · Score: 1
      My challenge is for Java advocates

      As an aside, the fact that people have to advocate something to me signals that it doesn't measure up in some category. Good products stand on their own merits.
    48. Re:Speed of 3D in Java? by OrangeTide · · Score: 1

      Well the idea is that the java code is there to manipulate high level objects and configure the scene graph. You wouldn't want to push a bunch of draw lists through java every frame, like you would with OpenGL. You would instead define your scene on start. and just touch objects that have changed position, orientation, etc.

      You spend hardly any time in the JVM dealing with static objects. So you can focus on doing real-time effects (like modifiable terrians). But Java3D is much more limited than OpenGL in what you can do. On the otherhand it has potential to be optimize much more than the back-end of your OpenGL could ever hope to be.

      CAD software would theoretically be easy to do quickly in Java3D. Doing tricks with the stencil buffer or other things to do realy interesting effects that are easy in OpenGL would probably not work nearly as well in Java3D.

      (note: I don't have any personal experience with Java3D, I've just been reading up on it for the last couple days to see if it would be better to use Java3D instead of the OpenGL bindings in Java)

      --
      “Common sense is not so common.” — Voltaire
    49. Re:Speed of 3D in Java? by kaffiene · · Score: 1

      Java3D is typically about half the speed of using Jogl (the Java OpenGL bindings).

      Jogl runs at about 80-100% of the speed of equivallent c++ / openGL depending on how much batching of data you do.

      Of course, Jogl is very low level (it's just openGL) whereas J3D is a whole scenegraph implementation. J3D is also not designed for high performance - it sacrifices speed for ease of use. People wanting a scenegraph in Jave oriented towards games programming should look at Xith3D

    50. Re:Speed of 3D in Java? by kaffiene · · Score: 1

      That's funny. I did a benchmark of floating point ops in M$ Visual Studio 6.0 versus Sun's old 1.4 JVM and found the performance was identical.

      I suspect that getting the code to run 100 times slower required some real effort.

    51. Re:Speed of 3D in Java? by kaffiene · · Score: 1
      Well, there are several projects available which make OpenGL available for Java programmers. Lightweight Java Game Library Open GL for Java Don't think the second one is still being developed, but I think Sun is working on something more up to date.

      Yup, check out Jogl: https://jogl.dev.java.net/

    52. Re:Speed of 3D in Java? by psetzer · · Score: 2, Interesting

      The inline keyword is there for a reason in C++, and it's a godsend for field accessor methods, where it turns into almost the exact same code as a direct access.

      --
      "Anyone who attempts to generate random numbers by deterministic means is living in a state of sin." -- John von Neumann
    53. Re:Speed of 3D in Java? by Decaff · · Score: 1

      The Java HotSpot optimiser should automatically inline accessor methods, but there is no harm in avoiding them where possible.

    54. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 0
      Java was 2 decimal orders of magnitude (ie. 100x) slower than the identical code in C++ (interestingly, C# was 50x slower).
      I don't know how you got your C# environment(sp?), but the .NET license I have says: No performance results can be published without prior consent from MS
      Granted that this shows C# is faster than Java, so they might have given you the permission, otherwise, expect a knock on your door. :)
    55. Re:Speed of 3D in Java? by SmittyTheBold · · Score: 1

      Pardon, but I'm really having a hard time thinking that every implementor of native OGL interfaces is that inept at optimization, unless your "application space" happens to be Fully-3D-Apple-II games or something similar.

      --
      ± 29 dB
    56. Re:Speed of 3D in Java? by p3d0 · · Score: 1

      Why is x86 the backward one? SSE and SSE2 are IEEE 754 compliant.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    57. Re:Speed of 3D in Java? by Anonymous Coward · · Score: 0
      Yes, there are plenty of games. A couple of volunteers have started a site to collate state-of-the-art java games here:

      Java Games Factory (no domain yet)

      Conveniently, it has a "tech" section with one page per java game-dev library - and each library has thumbnails linking to games known to use it. So you can go see some J3D games right now (and some using the other Java hardware-accelerated OpenGL libs, like LWJGL, JOGL, Xith3D, etc)

      Unfortunately, there's only about 50 games listed at the moment (and some of those are "retro" things like games written in 4kb; at the other end of the spectrum there's also a couple of Quake3-clones with modern graphics).

      So, if you know some great java games, send them to the guys running the site. Free publicity ;).

      PS I don't generally read slashdot because of the 75% of posters who have no idea what they're talking about, but mouth-off anyway. Suffice it to say that Sun *officially* stopped Java3D at least a year ago, and that Java3D was designed for high-end systems, like research labs, rather than games. Sun has only in the last 12 months realised the importance of games-developers as a target market. Nowadays, most 3D games run in java within +/- 5% of the speed of C++ ones (assuming your coder knows Java and C++ well).

      There are three areas where java can be 30% or more slower: vector CPU instructions, particular FP ops, and the more advanced/esoteric OpenGL extensions. The FP is due to a spat about FP standards, which is really important stuff to everyone except games developers, and has been mentioned above. In the other cases this is because the relevant libraries simply aren't up-to-date with the latest hardware features (e.g. Sun only recently added SSE2 support - although it automatically speeds up ALL legacy code without recompilation, which is a heck of a boost compared to C++ apps where you need to get out the source and recompile for vector ops)

    58. Re:Speed of 3D in Java? by bay43270 · · Score: 2, Informative

      including one that does the low-level desktop integration like Icons, system trays etc. Can't remember the name of that offhand, but it's something like JDNC.

      It's JDIC

    59. Re:Speed of 3D in Java? by zebracrossing · · Score: 1

      Tried out Java3D/OpenGL on Windoze.

      The application startup time is long.
      (okay JVM. we tolerate this).

      The application rendering seems fine
      but select and move the demo objects arounds.
      You would experience momentary freezeups.

      After having run few examples, there was also
      a crash. The system complained of an error in one of the DLLs.

      It *is ready* for prime time on the windows, given
      the performance and crashes.

  4. I never know what to think of Sun by haruchai · · Score: 0, Troll

    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
  5. Will 3D ever boom? by eipipuz · · Score: 4, Interesting

    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?

    1. Re:Will 3D ever boom? by Tarantolato · · Score: 2, Insightful

      I can see medicine and CAD using it, but a employee, aunt or kid?

      Sun doesn't give a rat's ass about aunts and kids - they shouldn't, either; aunts are cheap and kids have no money. "Knowledge workers" might not have any use for it right now. But medicine and CAD might be lucrative fields...

      Probably also a few other small but expensive markets for it. At least that's what I'd guess would be the hope.

    2. Re:Will 3D ever boom? by grumbel · · Score: 1
      3D interfaces will never get much popular in the mainstream, they are simply to compilcated and to inefficent and especially not needed for day to day work. Writing a text or painting a picture are simple 2d jobs. Sure modeling a 3d model requires at least some short of way to navigating through 3d and so do many games, but these are special cases and not something Joe User needs for his day to day work, so the desktop environment itself will most likly stay 2d.

      What we however will most likly see in the future are zooming interfaces, something like Apples Expose which is still 2d, but it provides a way to 'step back' to get a better overview of what is going on. So icons of a document could get thumbnails to which you just 'zoom-in' to be able to edit them, instead of opening and saving them. However this will still be 'flat' 2d.

    3. Re:Will 3D ever boom? by dk.r*nger · · Score: 1

      I worked on a project a while back for a guy who build [a specific kind of house enhancement, don't know english term], and wanted a 'live' 3D visualisation on his website/shop, where customers could enter basic dimensions of their house, and then tweak parameters for their extention, and see what it would like .. but as we skecthed it out, this single feature would bloat the development by about 160%, so he dropped it.

      I definately see visulisations like this happening in the future - as internet bandwidth and computer-power allows it.

    4. Re:Will 3D ever boom? by sporty · · Score: 1
      The ONLY cool thing about 3d, is the fact that it resembles real life. We see in 3d, right? The problem is, the only information we can gather from it, due to culture, is spacial. How far objects are from things, what is behind another object...


      The mind is far better at doing things in 2d. The only reason you can close one eye and do anything, is due to experience. We know how large the average book is, or a couch, or a car. So it only would make sense to a person if it's only so far away or close up.


      The counter example is, take a video game in 3d, like Mario Sunshine. In the game, you have some large and small blocks, but the only way you can tell the size in relation to mario, is when you are close up until you have experience. The blocks have no marks what-so-ever, such as easily visible grains, that can help you see that it is only so distant.


      Having said ALL of that, it is far better to work in 2d, work meaning being productive, for dealing with numbers and words. As for plain 'ol navigation of semi-real life stuff, such as touring the inside of a building, there is an advantage of using 3d. You can go into a room and filter out a lot of crap that a bunch of 2d representations, such as floor plans, may confuse. i.e. how do you represent a box in a drawer of a table in a 2d representation using no 3d hints?

      --

      -
      ping -f 255.255.255.255 # if only

  6. congrats by goatbar · · Score: 0, Offtopic

    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)

  7. BFM by TexasDex · · Score: 4, Interesting

    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.
    1. Re:BFM by Attaturk · · Score: 2


      I believe the mini-mmog Runescape uses Java for its 3D engine - although it's pretty primitive.

  8. Please mod me down by coupland · · Score: 4, Funny

    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...

    1. Re:Please mod me down by callipygian-showsyst · · Score: 2, Funny

      I think 3D Java will help former Java executive Patrick Naughton (who plead guilty to possestion of child porno and crossing state lines to have sex with a 13 year-old-girl) get more realistic 3D kiddie porn!

    2. Re:Please mod me down by Anonymous Coward · · Score: 0

      And.. if he didn't cross state lines he would have been convited only of posession of child porn?

    3. Re:Please mod me down by Pieroxy · · Score: 0

      Finally Java 3D has been released
      It's been years. Where were you?

      I've long been a critic of Java, largely due to its "2D" nature
      "2D" nature? What in the name of god do you mean by that? Oh... I get it: Since you were not aware of Java3D all these years, you just assumed Java was 2D only.

      I'm very glad to see Java finally go 3D
      Hmmm. See first comment.

      especially since Open Source rocks
      Well, sure. Britney rocks too.

      Sun sucks, particularly since they did a deal with Microsoft
      So getting a big fat check from MS automatically makes you suck. Ok, sure, why not...

      Maybe C++ and Pascal will go 3D now
      Honestly, I want some of the stuff you're smoking. Seriously, it looks like you're totally out the real world. Where have you been in the past 15 years?

      I know we're on slashdot, but a little brain helps from time to time, combined with the preview button.

    4. Re:Please mod me down by nacturation · · Score: 4, Funny

      I know we're on slashdot, but a little brain helps from time to time, combined with the preview button.

      A little bit of brain also helps to detect sarcasm, something you might wish to try from time to time.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    5. Re:Please mod me down by Anonymous Coward · · Score: 0

      if he didn't cross state lines, he wouldn't be guilty of a federal offense of violating the age of consent, only a state one.

    6. Re:Please mod me down by JensLH · · Score: 1

      Let me guess - you're an american, right? :-)

    7. Re:Please mod me down by irc.goatse.cx+troll · · Score: 1

      Kind of makes you wonder whats going through his head. Surely there are 13 year olds in his state/city, especially those of which he could easily have sex with (the whole authority figure thing is bound to work on one of them)
      But instead he opts to spend the time and money to have sex with a specific 13 year old that lives in another state, meaning there might be some mental connection to her above just her being a minor and him being a pedo.

      --
      Pain lasts, kid. Its how you know you're alive. Sometimes I think this growing up thing is just pain management-TheMaxx
    8. Re:Please mod me down by Pieroxy · · Score: 1

      Nope, why?

  9. Is code released GPL? by Milo+of+Kroton · · Score: 1, Redundant

    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.

    1. Re:Is code released GPL? by Anonymous Coward · · Score: 0
      No, because the GPL is stupid.

      j3d-core-utils and j3d-examples are under a BSD license, and the j3d-core and vecmath are under the JRL and JDL.

    2. Re:Is code released GPL? by Anonymous Coward · · Score: 0

      Thankfully it's bsd and not gpl.. yay for sun.

  10. Lookglass ? by Anonymous Coward · · Score: 3, Interesting

    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.

    1. Re:Lookglass ? by Mithrandir · · Score: 1

      Nothing to do with it at all. At the 3D layer, LG isn't that complex a user of 3D graphics. You could port the LG code over to an alternate scene graph API in the matter of a day or two, maybe 3-4 days if writing directly to a Java OpenGL binding. Mostly it has to do with the internal things happening inside Sun. Most of that is due to the loss of staff due to enforced downsizing. There used to be 3 different groups doing 3D inside Sun, now there is one. From hundreds of developers down to, at best (it's hard to get a good indication right now), 10. Those developers are spread all over the map.

      Sun killed the J3D development team almost this time last year when they sacked the last fulltime developers working on it and have been struggling to decide what to do with it since. The basic reaction was for the commerical users to bail in a big hurry and all the non-commercial users like universities and hobbiest scream for Sun to release the source code. It was only in late March that Sun decided what they were finally going to do with it and only until this week that they had the final information and go-ahead from the lawyers about which licenses would be used.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
  11. Whaa?!? by quantaman · · Score: 3, Interesting

    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
    1. Re:Whaa?!? by Orgazmus · · Score: 2, Funny

      Wow. That is nice!

      But..
      Will they die too now?

      --
      The system had the verbosity of HTML combined with all the readability of compiled assembly viewed as bitmap images
    2. Re:Whaa?!? by Anonymous Coward · · Score: 0

      They won't die; The BSD license is non-viral.

    3. Re:Whaa?!? by HRbnjR · · Score: 4, Informative

      You are dreaming! BSD for the utils and examples. Whoopie.

      The main product...

      We are releasing the source code for the j3d-core and vecmath projects under separate research and commercial license. The research license is the Java Research License (JRL). The commercial license is the Java Distribution License (JDL), a no-fee license that allows a vendor to ship a compatible version of Java 3D with or without modification.
    4. Re:Whaa?!? by Anonymous Coward · · Score: 0
      Sun... "Open Source" Code... Non tainting license... Someone find me the strings, I must be dreaming!

      Uhhh, OpenOffice, you spaz. Sun has been writing or releasing "Open Source" code for years. You've been listening to PJ's anti-Sun rants for too long.

    5. Re:Whaa?!? by psykocrime · · Score: 3, Informative

      You've been listening to PJ's anti-Sun rants for too long.

      Heh...I love Groklaw, and PJ's probably really nice.. but she does seem to have it in for Sun for some reason.

      Yes, Sun has been a little wishy-washy in terms of whether they want to support Linux or want to see it die.. but otherwise they've been fairly friendly to the FOSS communities over the years... dating at least back to the time when they released the source for the ONC-RPC / NFS stuff... and of couse they support Open Office and NetBeans, etc... and let's not forget the various code donations they've made to Apache projects, like Tomcat, etc...

      --
      // TODO: Insert Cool Sig
    6. Re:Whaa?!? by TheAvatar666 · · Score: 0

      Strings?!?!

      Spoiled kids.. In my time, we only had char arrays...

    7. Re:Whaa?!? by codepunk · · Score: 1

      Actually I think she is rather good at calling a turd a turd.

      --


      Got Code?
    8. Re:Whaa?!? by Anonymous Coward · · Score: 0

      As one who worked with Sun for years, I can say that they are like a lot of other corporations. Schizophrenic . I found parts of Sun to be honest, truthful, helpful etc etc...and other parts to be underhanded, lying and down right scary. Maybe PJ has seen the latter side?

  12. fav java 3d demos by Anonymous Coward · · Score: 5, Informative
    1. Re:fav java 3d demos by IrresponsibleUseOfFr · · Score: 4, Interesting

      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
    2. Re:fav java 3d demos by Anonymous Coward · · Score: 1, Informative

      That's very cool - but it's not using the Java3D API...

    3. Re:fav java 3d demos by Mithrandir · · Score: 2, Informative

      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.

      It's called JOGL. There's a JSR associated with it (JSR-231) that is doing the work of the formalised bindings. My company (Yumetech) is on the JSR committee for that one and things are progressing reasonably well, though not at the scheduled timetable. There is also a related JSR that is getting off the ground right now for the OpenGL-ES bindings, JSR 239, but is a little further behind.

      Although, having a large higher-level 3D open-source library ready to use in Java might swing momentum in Java's favor.

      There's at least two that have been underway for the last year - Xith3D and Aviatrix3D. Both are already far faster than Java3D in their respective application spaces (gaming and sci-viz respectively). Come try them out and you'll be surprised at just what sort of speed can really be obtained from 3D Java apps and toolkits.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    4. Re:fav java 3d demos by tesmako · · Score: 1

      Demoscene classic stuff, so they are of course not using Java3D, software rendering is still where it is at :)

    5. Re:fav java 3d demos by aled · · Score: 1

      I entered Equinox site and it doesn't seem to be using Java3D. At least the 3D samples have this label "No Java3D plugin required. No hardware rendering".
      You should take a look at Sun GC site. Tuning the GC may help.

      --

      "I think this line is mostly filler"
    6. Re:fav java 3d demos by IrresponsibleUseOfFr · · Score: 1

      You are right, I'm not sure if the demos use Java3D or not (although, I will note only some of them say no Java3D plugin required, does that imply others do). I took it on faith from the parent post. But, the example apps have the same problem as many Java3D applications, the GC gets in the way of the rendering thread.

      I am relatively sure it is the GC. Even if you allocate a small number of small objects during your render loop. The fact of the matter, at 60fps, you are going to run out of memory very quickly. There is really no way to fix this, no matter how smart your garbage collector is. Either you don't allocate objects during your render loop, or the Java VM with the help of the compiler figures out all objects that you allocated in the render loop have a scoped life-time and can be deterministically free'd at certain points of the execution without needing the GC. I personally like the second idea. Although, some new programming constructs might be needed to support it, but it would make Java a lot more viable for real-time animation. Being slow really doesn't kill you in animation, it is being inconsistent that is jarring.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
    7. Re:fav java 3d demos by IrresponsibleUseOfFr · · Score: 1

      Since your company is on the commitee, I'll take some time to bitch at you about JOGL :)

      First, JOGL mirrors the C API too closely. Things that are necessary in C become down right absurd in Java. For example, the gl prefix on everything. This is necessary in C because it doesn't have a concept of packaging. Copying the C api into Java directly makes it worse since you usually invoke it on an object making it gl.glEnable(GL.GL_DEPTH_TEST); Every single line you write that calls into JOGL takes about 15% more typing for something that isn't even necessary and interferes with auto-complete features like those in Eclipse.

      Secondly, the OpenGL suffixes are unnecessary (3f, 4d, 3i, etc.). C doesn't have function overloading. Java does. Java programmers think this is a good thing. Use it.

      Third, Java just added type-safe enums. Use them. The OpenGL interface is very type-unsafe. You end up passing in a lot of int flags. And there are lots of int flags with subtle different meanings. Although, JOGL has excellent error detection facilities, there is something to be said for prevention also.

      But those grips aside. JOGL really needs to ship as a standard part of the java platform. I mean, I have JOGL applets sitting on my website that no one in their right-mind is going to view. I can't automatically install the java classes that they need because they need native code on their platform to support it. And if you try to use Cg it is even worse. So, until a binding ships with a VM it is not done.

      Thanks for the info about Xith3D. I'll have to give it a more thorough look.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
    8. Re:fav java 3d demos by Mithrandir · · Score: 1

      First, JOGL mirrors the C API too closely.

      Been there, done that :) There was a huge, rather vehement at times, discussion about this on the javagaming.org forums. There's the "make JOGL more like Java" camp and the "make JOGL exactly reflect C " camp. This extends to far deeper concepts too - namely how much of OpenGL extensions and the window-specific APIs (GLX, WGL etc) should be exposed to the end user. For example, there's the attitude of some that needing access to the GenLock functions is not needed because "Java doesn't do that sort of stuff". A decision has been made on these issues, but due to the JCP process rules we can't talk publically about it (which I really hate).

      Third, Java just added type-safe enums. Use them.

      That is a no-go right from the outset. JOGL has to remain as widely usable as possible - including the offshoot for the OpenGL-ES bindings that have to run with JME. Since that is a feature of 1.5 and a beta one at that, there is no consideration at all of using that as part of the spec.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    9. Re:fav java 3d demos by aled · · Score: 1

      I will note only some of them say no Java3D plugin required, does that imply others do
      Well, given that Java3D has native components and I haven't installed them, I assume that the browser at least would ask me before installing so is safe to say none of the samples uses Java3D.

      But, the example apps have the same problem as many Java3D applications, the GC gets in the way of the rendering thread.
      There are parameters to Sun JVM to instruct the GC use different algorithms that may be more suited to what you need and some parameters to tweak them further (see the link in my previous post for detailed info). Take a look at the concurrent low pause collector or incremental low pause collector. Usually there's some tradeoff between them, the default GC is a good common case. Let me quote:

      "When to Use the Concurrent Low Pause Collector
      Use the concurrent low pause collector if your application would benefit from shorter garbage collector pauses and can afford to share processor resources with the garbage collector when the application is running. Typically applications which have a relatively large set of long-lived data (a large tenured generation), and run on machines with two or more processors tend to benefit from the use of this collector. However, this collector should be considered for any application with a low pause time requirement. Optimal results have been observed for interactive applications with tenured generations of a modest size on a single processor."

      "When to Use the Incremental Low Pause Collector
      Use the incremental low pause collector when your application can afford to trade longer and more frequent young generation garbage collection pauses for shorter tenured generation pauses. A typical situation is one in which a larger tenured generation is required (lots of long-lived objects), a smaller young generation will suffice (most objects are short-lived and don't survive the young generation collection), and only a single processor is available."

      --

      "I think this line is mostly filler"
    10. Re:fav java 3d demos by e-Motion · · Score: 1

      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.

      What? I've used Java3D, and it seems to me that they went through great pains to ensure that nothing is allocated unless you ask it to be allocated. You're right, the GC can interfere with the rendering thread, but I've never had an issue with the Java3D library causing the GC to kick in. In fact, the Java3D API can look a little awkward when you're used to APIs that are not so sensitive about allocation. They usually design their APIs so you can reuse previously allocated objects. That way, you don't have to release them to the GC, and your performance is more predictable.

      For an example of this, examine the GeometryArray class. First, note that it is highly mutable. Everything about the object can be modified, so you never have to create another instance if you already have a spare one lying around. Also, take a look at how all of the setXXX() functions are overloaded so you never have to allocate an object to call the setter. While the API could have just provided one set() method and required you to create an object of the correct type to call it, they decided to instead overload it for any reasonable type that could be used to represent that property.

      Are you sure that it's Java3D that's allocating the objects and not the code you wrote?

    11. Re:fav java 3d demos by IrresponsibleUseOfFr · · Score: 1

      If you look at the process memory of a Java3D app, it will rise. Even with just a spinning cube without messing with the scene graph. It will be slow but it will be there. Regardless, in real applications you are going to change the structure of the scene graph. You are going to allocate new nodes and remove some nodes that will have to be garbage collected. Another poster noted you can tune the garbage collector so that it will be less obnoxious.

      Look, my original post assumed that the demos were written in Java3D. The animations drop frames. I think this is due to the garbage collector interfering with the rendering thread. However, I didn't write them, so I can't be sure. I do feel this is a fundamental problem with Java when doing real-time animation. You have a hard deadline. You have to render a scene in less than 1/60th of a second. The garbage collector adds some degree of non-determinism. You might render your scene in that amount of time, but sometimes the garbage collector can come in and interfere. This is annoying to the user of the application.

      In sum, the API does allocate some objects during a render. Two, these objects are deallocated in a non-deterministic manner that could interfere with your rendering thread. I also feel that it is unrealistic to expect all Java3D programs not to allocate objects during the rendering thread. What really needs to be there is a way help the VM figure out that it can deterministically deallocate those objects. Namely, some objects have a scoped life-time. This probably needs a source code annotation to do properly.

      If you still don't believe me. For the sake of argument, I'll assume that you use the OpenGL version of Java3D. If you have a windows box, try out the Direct3D version of Java3D. It is realistic that people have that one installed on their computer. And see how good your animations look.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
    12. Re:fav java 3d demos by keops · · Score: 1

      Actually it's all java 1.1, we dont use Java3D so the applets can run almost everywhere with basic 1.1 JVM. Our hardware accelerated work is there Keops / Equinox

  13. Java 3D is slow by JavaPunk · · Score: 4, Interesting

    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.

    1. Re:Java 3D is slow by Anonymous Coward · · Score: 5, Interesting

      My understanding is that Xith 3D is a mess. It's also quite incomplete.

      The primary problem with Java3D is not that it tries to be "everything". There are four problems with Java3D. First, it is synchronized everywhere, with heavy locking mechanisms. Second, it has both float *and* double environments. Third and most important, it puts an efficiency emphasis on static scenes where few things get added or deleted. Fourth, it attempts to run on both OpenGL and Direct3D, and so its underlying subsystem has an unnecessary layer of abstraction.

      Open-sourcing Java3D should do a world of good. It'd give Java3D a chance to fix this stuff. First, dump Direct3D and the private OpenGL bindings it uses, and sit it directly on top of JOGL. That's no small job, but it'd make a big difference. Second, strip out the synchronization and use of doubles. That'd be enough to get it more than a match for Xith3D. What to do about its emphasis on static scenes, I dunno.

  14. Re:OpenOffice.org is NOT GPL by Macrat · · Score: 5, Informative

    FYI, OpenOffice.org is LGPL and SISSL. Not GPL.

  15. That's too easy by KalvinB · · Score: 3, Insightful

    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

    1. Re:That's too easy by furball · · Score: 3, Interesting

      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.

    2. Re:That's too easy by Anonymous+Writer · · Score: 1

      The problem is that most devices that rely on Java like Cellphones don't have a large enough screen to make 3D really useable.

      Perhaps you missed the 3-D Gaming on Your Cellphone story that appeared on Slashdot some time ago. Unfortunately, since it is old, the link in the story takes you to NYTimes.com's archive where you have to pay to view the article. Here is another copy, but no pictures.

    3. Re:That's too easy by Anonymous Coward · · Score: 0

      You're quite wrong because the new Java enabled mobile phones contain a Java3D API that is based on emGL and pushed by ARM for obvious reasons.

  16. Universal java games by BlindSpy · · Score: 1

    Does this mean that if Java gets their speed up, universal platform games are the future?

    --
    Whoever dies with the most toys wins.
    1. Re:Universal java games by Anonymous+Writer · · Score: 0, Offtopic

      Obligatory Conan O'Brien quote: "In the year two thousand... in the year two thousand..."

    2. Re:Universal java games by Anonymous Coward · · Score: 0

      Yeah...right after hell freezes over

  17. Universal games are now by furball · · Score: 4, Interesting

    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.

  18. Not GPL by FiskeBoller · · Score: 0, Flamebait

    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.

  19. Not Free Software or Open Source by Anonymous Coward · · Score: 2, Informative

    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.

    1. Re:Not Free Software or Open Source by Anonymous Coward · · Score: 0
      go away ESR.



      anybody who RTFA knows this. it doesn't matter. the code is available to everyone, which makes it open source.

    2. Re:Not Free Software or Open Source by RPoet · · Score: 1

      Troll. If you can't use the source, how is it open? Open Source is what adheres to the Open Source Definition. Period.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    3. Re:Not Free Software or Open Source by psykocrime · · Score: 1

      Open Source is what adheres to the Open Source Definition. Period.

      Bullshit. I for one, don't recall agreeing to accept OSI's definition of Open Source as the one and only such definition. Open Source is a fairly general term, with many definitions.

      Troll. If you can't use the source, how is it open?

      Besides, the source for the "core" stuff is released under both the JRL and the JDL.. reading over the JDL, it looks pretty damn open to me. The biggest thing I see that seems overly restrictive is the time limitation... it expires after two years, with automatic yearly renewals, unless one party notifies the other within 60 days of an anniversary date, that they are terminating it. (or something to that effect, I read it last night)... but it allows use and distribution in both non-modified, and modified form, as long as modified versions pass the compatibility test. I don't see why anyone should consider that a big problem.

      No, the JDL isn't likely to be approved by the OSI as an official Open Source license anytime so, but so what?

      --
      // TODO: Insert Cool Sig
    4. Re:Not Free Software or Open Source by margal · · Score: 1

      So... it doesn't fit the necessary requirements for OSI or FSF and therefore doesn't warrent the label Open Source (let only Free Software).

  20. I dont know what you just said... by Cyno01 · · Score: 2, Funny

    But now i'm hungry damnit!

    --
    "Sic Semper Tyrannosaurus Rex."
  21. Java3D is a superset to DirectX, OpenGL by karnat10 · · Score: 5, Insightful

    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.

    1. Re:Java3D is a superset to DirectX, OpenGL by TheRaven64 · · Score: 2, Interesting
      No it isn't. Java3D is a retained mode API. You create objects in a scene, and then manipulate them. OpenGL and DirectX allow the developer to exercise a fine level of control over the graphics hardware by drawing graphics primitives directly (Direct3D used to have a retained mode API, but I think it stopped being worked on after version 6).

      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
    2. Re:Java3D is a superset to DirectX, OpenGL by Anonymous Coward · · Score: 0

      That would be nice if it where true. Java3D doesn't use any of the native 3D libraries available. Besides, anyone that thinks that Java or even C# can manage 3D graphics is just plain reaching too far. The ONLY way you can get acceptable 3D performance, other than tranforming single planes of graphics, is using machine code based programming. In other words, compiled languages such as C++ (unmanaged), C etc. Sun will never release Java3D because it would show simply show the weakness of the lanaguage or it would show the strength of the underlying 3D libraries if it ever decided to use them.

      Yes, I'm an Anonymouse Coward and proud of it :-)!!!

  22. Completey incorrect analogy by SuperKendall · · Score: 1

    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
    1. Re:Completey incorrect analogy by Anonymous Coward · · Score: 0

      Both analogies are correct, Registered User. You just explained runtime optimization. My post explained interpreted bytecode vs. native compiled code.

  23. Better stay away from analogies by iamacat · · Score: 1
    Do you mean to say that optimization is a finute resource and must go into either making fat or into running away from bears, but not both? If anything, a traditional compiler would have advantage of having (almost) unlimited time for optimization. It's more like that:
    • 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.
    • 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


    In short, its a tradeoff with no clear winner and pleanty of room for improvement :-)
  24. Re: J3D is more a competitor of VRML by Cochonou · · Score: 5, Interesting

    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

  25. VRMoo is a Java 3D App by Sir+Toby · · Score: 2, Interesting
    Hey, at last a topic where I can talk about an open source project I'm working on and be quite on topic. VRMoo is a Java 3D application for a 3D object-oriented MUD client/server.

    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!

  26. Some of it is BSD, some of it isn't by fdobbie · · Score: 5, Informative
    If people would have the decency to RTFA:
    LICENSE
    -------
    We are releasing the source code for the j3d-core-utils and j3d-examples projects under a BSD license.

    We are releasing the source code for the j3d-core and vecmath projects under separate research and commercial license. The research license is the Java Research License (JRL). The commercial license is the Java Distribution License (JDL), a no-fee license that allows a vendor to ship a compatible version of Java 3D with or without modification.
  27. No thanks. by Anonymous Coward · · Score: 0

    I'll stick with the PHP web-server.

  28. Jesus by Billly+Gates · · Score: 1

    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.

  29. This is impressive? by johannesg · · Score: 1
    So you are saying Java is impressive because it can draw a dozen large polygons (i.e. windows). Well, duh: have you ever checked out just how many polygons you need to push these days before people are impressed? Hint: millions...

    Looking glass is cute, but also utterly useless, both as a system and as a performance indicator.

    1. Re:This is impressive? by kaffiene · · Score: 1

      I'd agree. J3D has been compared to Java/OpenGL and found to be about half the speed.

      If you're looking for high performance in 3D in Java, Jogl is a much better bet (being a thin OpenGL wrapper)

    2. Re:This is impressive? by Anonymous Coward · · Score: 0

      So you are saying Java is impressive because it can draw a dozen large polygons (i.e. windows). Well, duh: have you ever checked out just how many polygons you need to push these days before people are impressed? Hint: millions...

      Um, wrong.

      When Apple released Quartz Extreme, people were impressed, because it could draw a dozen large polygons (i.e. windows). And people positively drooled over the cube effect on MacOS X's fast user switching, even though it obviously uses a sum total of four polygons (two triangles each for the "before" and "after" screens).

      When Microsoft demoed the 3D effects in Longhorn, people were incredibly impressed, even though it seems unlikely that an individual window will use more than a few dozen polygons.

      Yet when Sun demonstrate that Java can do the same thing, suddenly it stops being impressive? Get real, mister - it's as impressive in Java as it is in Objective C and .NET.

  30. Not true any more by lokedhs · · Score: 2, Interesting
    Sice JDK 1.2 there is the strictfp declaration that can be applied on methods which needs the precicise IEEE floating point.

    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.

    1. Re:Not true any more by RedWizzard · · Score: 1
      Sice JDK 1.2 there is the strictfp declaration that can be applied on methods which needs the precicise IEEE floating point.
      I don't think you understand what strictfp means. You should have another read through that tutorial you linked to. strictfp means that arithmetic must be performed with all intermediate value conforming to IEEE 754 form. Not using strictfp allows the compiler/JVM some leeway in the handling of intermediate values - specifically intermediate values can use an expanded exponent range so that expressions that would overflow due to intermediate values overflowing no longer do so. For example, consider the expression 10*x*0.1. With strictfp the intermediate value 10*x must conform to IEEE 754 format and so can cause an overflow even though the final expression will not overflow. Without strictfp the compiler/JVM can optionally use an expanded exponent range for the intermediate value to prevent that overflow.

      strictfp has nothing to do with allowing alternative floating point formats to be used other than for intermediate values (and then only increased exponent ranges). The lack of strictfp will not permit implementations to use machine-native formats that do not produce identical results (including binary compatibility) to IEEE 754. It is not going to fix the floating point performance issues on x86.

  31. RTFA by greenrd · · Score: 1
    Yes Sun is open sourcing the product fully

    No they aren't. RTFA.

  32. Java 3D applications by Anonymous Coward · · Score: 0

    Greetings All,
    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.h tm)

    You can see screenshots of the game at
    http://www.il2sturmovik.com/

    Cheers,
    Mike

  33. Sun will NEVER open-source Java by pchown · · Score: 2, Insightful

    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.

    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 .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.

    This is the reason why Sun's strategy is, ultimately, misguided. .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...

    1. Re:Sun will NEVER open-source Java by mrosgood · · Score: 1

      Why do you think Mono is now days away from a 1.0 release, while gcj and classpath are still lagging the current Java?


      Excellent example. Except for one small little detail. Mono is dramatically less ambitious than gcj and classpath. Not to denigrate either effort, of course.

  34. don't touch it by dekeji · · Score: 1

    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).

  35. opening up solaris by jdowland · · Score: 1

    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?

  36. Start with a Java implementation, by ErikJson · · Score: 1

    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.

    1. Re:Start with a Java implementation, by kaffiene · · Score: 1

      That's pretty much exactly what JOGL is (a thin wrapper over OpenGL using JNI)

  37. Java Research License is not free by Anonymous Coward · · Score: 0

    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:".

    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 ;-), this was too late...

  38. As always, there's also LWJGL... by Rinikusu · · Score: 1

    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
    1. Re:As always, there's also LWJGL... by mlk · · Score: 1

      LWJGL is more an alt to JOL/JAL or maybe a SDL wrapper.

      Xith3D is an "open" alternative.

      --
      Wow, I should not post when knackered.
    2. Re:As always, there's also LWJGL... by Rinikusu · · Score: 1

      True enough, but always trying to plug for one of my favorite projects. hell, when did "relevance" ever factor into a /. posting? :)

      --
      If you were me, you'd be good lookin'. - six string samurai
  39. the reason for the licences they picked... by jonwil · · Score: 1

    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.

    1. Re:the reason for the licences they picked... by Decaff · · Score: 1

      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.

      You are right. Examples are successive versions of gcc (some of which would compile the Linux kernel, others would not), the Perl 4 -> Perl 5 transition, and current different implementations of Python. (Python, Jython, and Python on .Net)

  40. Re:OpenOffice.org is NOT GPL by gr8_phk · · Score: 1

    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.

  41. Medical Applications by VoidEngineer · · Score: 2, Informative

    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.

  42. Point is YOU DO NOT KNOW THERE'S A BEAR by SuperKendall · · Score: 1

    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
  43. This is just GPLing abandonware by Animats · · Score: 1
    Basically, this is just a release of source for abandonware. Java 3D was a dud. I looked at it once because it offered collision detection. But the collision architecture was terrible, with no support for temporal coherence. That costs you orders of magnitude in performance. (Done right, collision detection is incredibly cheap. Done wrong, it's incredibly expensive. Java 3D did it wrong.)

    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.

    1. Re:This is just GPLing abandonware by Anonymous Coward · · Score: 0

      > their "technologies"

      ANT is Apache, nothing to do with Sun at all.

      > Java Web Start

      a) JWS comes with the JRE.
      b) IT IS NOT NEEDED FOR ANY LIB

      > This last tangles you up in some Sun licensing restrictions.

      No it does not. You are just spreading uninformed FUD due to Sun-hate.

      stop spreading FUD.

    2. Re:This is just GPLing abandonware by mark-t · · Score: 1
      Ant is an apache project, not Sun.

      Antlr is simply the java port of what was originally called the Purdue Compiler Construction Tool Set

      And I fail to understand where you've come up with the idea that webstart ties you down with some licensing restrictions.

      I'm no fan of Java3d either (I much prefer the opengl bindings), but please get your facts straight... or at least cite your sources.

  44. MEGACORPS™ ONLINE by Saville · · Score: 1

    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.

  45. Simple Analysis by Anonymous Coward · · Score: 2, Funny

    Yes, I officially searched the Sun Corporate Headquarters, and no Soviet flags were found. Thus, they are not using the GPL.

  46. As Java Programmer... by herrvinny · · Score: 1

    ...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.

  47. Re: PowerPC by Anonymous Coward · · Score: 0

    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)

  48. Re:cool beans! by Eideewt · · Score: 1

    and using three exclamation points is not grammatically correct.

  49. For example... by Captain_Chaos · · Score: 1

    In other words, something like this....

  50. I'd Settle for Java 2D by 4of12 · · Score: 1

    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."