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

22 of 220 comments (clear)

  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:Testing the waters? by Anonymous Coward · · Score: 4, Informative
  4. fav java 3d demos by Anonymous Coward · · Score: 5, Informative
    1. Re:fav java 3d demos by Anonymous Coward · · Score: 1, Informative

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

    2. 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
  5. 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
  6. Re:OpenOffice.org is NOT GPL by Macrat · · Score: 5, Informative

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

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

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

  10. 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
  11. 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
  12. 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

  13. 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
  14. 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.
  15. 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!

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

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

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

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

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