Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Java Programming Software Sun Microsystems

Java3D Source Code Released 220

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."
This discussion has been archived. No new comments can be posted.

Java3D Source Code Released

Comments Filter:
  • Testing the waters? (Score:5, Interesting)

    by Anonymous Coward on Sunday June 27, 2004 @12:10AM (#9540701)
    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
    • by Anonymous Coward on Sunday June 27, 2004 @12:19AM (#9540742)
    • 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, opensou

      • by Macrat ( 638047 ) on Sunday June 27, 2004 @12:47AM (#9540820)
        FYI, OpenOffice.org is LGPL and SISSL. Not GPL.
      • by Tarantolato ( 760537 ) on Sunday June 27, 2004 @12:48AM (#9540823) Journal
        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?
        • by fdobbie ( 226067 ) on Sunday June 27, 2004 @04:40AM (#9541283) Homepage
          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.
        • by Anonymous Coward
          Yes, I officially searched the Sun Corporate Headquarters, and no Soviet flags were found. Thus, they are not using the GPL.
      • 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.
      • 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.

          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.

      • by Anonymous Coward on Sunday June 27, 2004 @02:13AM (#9540983)
        > 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.

      • 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 p

      • by Mithrandir ( 3459 ) on Sunday June 27, 2004 @03:09AM (#9541073) Homepage
        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.
      • 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
    • 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 [gnu.org] or IKVM [ikvm.net]. 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
    • 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?
  • Speed of 3D in Java? (Score:5, Interesting)

    by Anonymous Coward on Sunday June 27, 2004 @12:10AM (#9540703)
    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.
    • by allenw ( 33234 ) on Sunday June 27, 2004 @12:16AM (#9540731) Homepage Journal
      If the final release of Looking Glass [sun.com] turns out to be as impressive as the demo [sun.com] shows, I don't think anyone will ever doubt Java as a 3D application language.
      • Thanks for sharing that with me... but why do you say it's actually coded in Java?
        • Even more, if it is coded in Java, does it use Java 3D, or the available Java - OpenGL hooks ?
        • by Mithrandir ( 3459 ) on Sunday June 27, 2004 @03:17AM (#9541101) Homepage
          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.
      • 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.

    • by koreth ( 409849 ) on Sunday June 27, 2004 @12:18AM (#9540736)
      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.
    • by thedigitalbean ( 268010 ) on Sunday June 27, 2004 @12:29AM (#9540767) Homepage
      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.
      • by Anonymous Coward on Sunday June 27, 2004 @01:08AM (#9540872)
        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.

        • by Anonymous Coward on Sunday June 27, 2004 @02:51AM (#9541041)
          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.
          • 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.
          • ...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.

        • Not true any more (Score:3, Interesting)

          by lokedhs ( 672255 )
          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. [sun.com]

        • 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 SI
      • by Decaff ( 42676 )
        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 J
        • 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.
          • 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.
      • 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.
    • by Laser Lou ( 230648 ) on Sunday June 27, 2004 @12:42AM (#9540800)
      Java3D was used for the game Roboforge [roboforge.com]. It was also used in Law and Order: Dead on the Money [lawandordergame.com].
    • by Aardpig ( 622459 ) on Sunday June 27, 2004 @01:11AM (#9540882)

      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.

    • 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 Pe
    • 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...
    • by Cochonou ( 576531 ) on Sunday June 27, 2004 @03:14AM (#9541091) Homepage
      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 [math.ubc.ca]
      X3D [web3d.org]
    • by Mithrandir ( 3459 ) on Sunday June 27, 2004 @03:15AM (#9541093) Homepage
      Speed is exceedingly good. In the area that we develop an open source toolkit (Xj3D [xj3d.org]) 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 [j3d.org]. You may also want to check out Xith3D [xith3d.org], another highlevel scenegraph API written in Java that is optimised for gaming purposes and gets even better performance than AV3D.
    • 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 [harvard.edu] and VisAdd [wisc.edu].

      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 be
    • 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
    • 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 w
  • Will 3D ever boom? (Score:4, Interesting)

    by eipipuz ( 631495 ) <guillermo DOT alcantara AT gmail DOT com> on Sunday June 27, 2004 @12:11AM (#9540708) Homepage
    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?
    • 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.
    • 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

    • 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
    • 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 clos

  • BFM (Score:5, Interesting)

    by TexasDex ( 709519 ) on Sunday June 27, 2004 @12:12AM (#9540713) Homepage
    The BFM [forchheimer.se] is written in Java. I think it actually uses this library, and it's nice to have it available and open.
  • by coupland ( 160334 ) * <dchase@hotmailCHEETAH.com minus cat> on Sunday June 27, 2004 @12:12AM (#9540717) Journal
    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...
  • Lookglass ? (Score:3, Interesting)

    by Anonymous Coward on Sunday June 27, 2004 @12:15AM (#9540729)
    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.
  • Whaa?!? (Score:4, Interesting)

    by quantaman ( 517394 ) on Sunday June 27, 2004 @12:23AM (#9540751)
    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!
    • Re:Whaa?!? (Score:2, Funny)

      by Orgazmus ( 761208 )
      Wow. That is nice!

      But..
      Will they die too now?
    • Re:Whaa?!? (Score:5, Informative)

      by HRbnjR ( 12398 ) <chris@hubick.com> on Sunday June 27, 2004 @01:03AM (#9540864) Homepage

      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.
  • fav java 3d demos (Score:5, Informative)

    by Anonymous Coward on Sunday June 27, 2004 @12:28AM (#9540764)
    one of my personal favs... http://equinox.planet-d.net/java/vectorball/ [planet-d.net]
    • Re:fav java 3d demos (Score:5, Interesting)

      by IrresponsibleUseOfFr ( 779706 ) on Sunday June 27, 2004 @01:09AM (#9540875) Homepage Journal

      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.

      • Re:fav java 3d demos (Score:2, Informative)

        by Mithrandir ( 3459 )
        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 [java.net]. 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
      • 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 [sun.com] may help.
    • Demoscene classic stuff, so they are of course not using Java3D, software rendering is still where it is at :)
  • Java 3D is slow (Score:4, Interesting)

    by JavaPunk ( 757983 ) on Sunday June 27, 2004 @12:42AM (#9540803)
    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 [xith.org]. 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.
    • Re:Java 3D is slow (Score:5, Interesting)

      by Anonymous Coward on Sunday June 27, 2004 @01:59AM (#9540962)
      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.
  • That's too easy (Score:4, Insightful)

    by KalvinB ( 205500 ) on Sunday June 27, 2004 @01:19AM (#9540898) Homepage
    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 [icarusindie.com]

    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
    • Re:That's too easy (Score:3, Interesting)

      by furball ( 2853 )
      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 librar
    • 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 [slashdot.org] 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 [iht.com] is another copy, but no pictures.

  • by Anonymous Coward
    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.
  • by karnat10 ( 607738 ) on Sunday June 27, 2004 @02:17AM (#9540991)
    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.
    • 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 Ope

  • Hey, at last a topic where I can talk about an open source project I'm working on and be quite on topic. VRMoo [vrmoo.org] 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!

  • 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 so
  • Remember to check the alternatives, too. LWJGL [lwjgl.org] 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.
  • 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
    • 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)

  • 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 make

  • 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.
  • ...I just wish it was faster. I love Java to death, run my alumni site using JSP (Shameless plug: Downers Grove South [dgsalumni.com]) (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 crea

I tell them to turn to the study of mathematics, for it is only there that they might escape the lusts of the flesh. -- Thomas Mann, "The Magic Mountain"

Working...