It "feels" like Sun is not committed to making Java3d a true alternative to other 3d libraries.  Why do I say this?  Because you can do so much with Java3d, but when it comes to that final 10 percent, the difference between a product and an intellectual experiment, the contraints around the implementation stop you. 
 
What are these things:
 
1) Predictibility : You can't make a product if you can't write predictible code.  The behaviors in Java3d are completely unpredicable.  We all know the saying, use the WakeUpWhenIDarnWellPlease() behaviors.  I just can't figure out the reason why such a wonderful behavior mechanism is so broken.  Not only that, but broken by DESIGN.  Sun actually defends this.
 
2) Transparencies.  Now this still stymies me.  Yes I know the issues and the reasons behind the problems.  But if every single project has to write massive code to continuously sort its geometries so that the alpha blended shapes are ordered correctly then there is something wrong.  This is something you have to do in opengl, which makes sense, because it is a low level API.  Java3d is a high level abstraction.  A scene graph does not lend itself to perform this nasty sorting problem.  It makes sense that Java3d should solve this problem "in the general case" and let people override it if it does not meet their needs.
 
3) User Interface:  Yes I will continue to harp on this.  If Java3d is to be a world class 3d library then they need to wake up and realize that there is more to 3d than scientific visualization.  Yes I'm talking about games.  Games are a huge part of the 3d world, and almost every innovation in 3d in the last 5 years has been a direct result of games.  Many of us here are working in that arena and find ourselves having to jump through hoops to produce expected and normal interfaces to Java3d.  A FAST and reliable 2d interface on top of the canvas3d would be a big step in the right direction.
 
4) Bug fixes:  There are a lot of serious bugs in the current release.  Bugs that can stop a project cold.  The rumors are that the Java3d team has been spending a lot of time porting Java3d to the platforms of new "technology partners".  I don't know if this is true, but I have read the message board archive history, only to see people have raised some of these same issues 2 years ago.
 
5) Technical support:  Some of the Sun engineers do respond every once in a while on this board.  But usually it is to ask us to take time to write a test program to demonstrate a bug, not to help people solve problems.  While the other users are very helpful on this board, it would go a LONG way to secure Java3d's future to have someone fulltime at Sun monitor this board and answer technical questions.  Every once in a while they drop some exciting little tidbit about how the engine works, information desperately needed by all of us.
 
6) Documentation: Funny, there sure is a lot of it, but for some reason it "seems" largely unhelpful.  I am not sure why.  I can't nail this one down, but all I know is that there are a lot of things that are learned the hard way or passed down as "lore" on this board.
 
7) Marketing: Given that similar strength libraries which are platform and API dependent can cost $250,000 and up, it is amazing to me that Java3d is still a practically unknown library out there in the world.  It is truely unique and has the capability of being a big part of the future of 3d programming.  This becomes more true as Java speed issues melt away in the face of ever increasing CPU speeds and JIT compiling.  Given the time-to-market for a Java3d program can be sugnificantly faster than an openGL C++ program, I can easily see Java3d becoming a premier player... if Sun really gets committed to it.  If all Sun sees is scientific visualization and educational uses then Java3d is doomed to be relegated to a footnote.  People come to this site and say "where can I see what this product can really do?"  People point them to the demos and a few user submitted hacks, (no offense, but the examples under collateral do not show how Java3d can really shine.  I am sure the authors would agree).  I suggest that Sun have a full time engineer build a sexy, sweet demo that really shows what Java3d is capable of. ( a new engineer, not one that should be fixing bugs)  On an aside, it is the agreement of my development group that our client application be released as open source some time in the future.  Perhaps some of you might consider such a course, should your various legal and competative obligations permit.
 
8) Interfaces : Ok now....what is up with this total lack of loaders? Sheesh, please employ some college grad right out of school to sit down and write loaders for EVERY major file format.  Complete loaders that handle normals, materials, grouping, lighting, etc.  Its a crippling blow to Java3d.  Half the newbies who come to this board ask, how can I get XXXX models into Java3d.  "Write your own loader" generally sends them screaming.  And how many of those people could have represented serious companies looking for a solution?  The OBJ loader, written by Sun, is quite good.  Goes to show how people on the "inside" can do a good job, but please apply that skill to the half dozen popular model formats.
 
9) Open Source:  Something to consider is to release the source code as open source and let us fix all the bugs (heh).  I think there are lots of evidence to support how effective this is.  Sun could pick and choose what changes and fixes whould be folded back into the main source tree, so there is no lack of control.  While I agree that in the past this would have been premature, perhaps now is the time to reconsider that option.
 
Well there are many other issues along this line, I would be interested to hear from everyone on this topic.  I am pretty sure we represent the core group of current Java3d projects underway.  Your input might help Sun to focus their efforts.
 
Last Thought:
 
Sun is an amazing company.  Personally I consider the work they have done to have revolutionized the entire software industry.  The number of their products is staggering, innovative and sorely needed in this industry.  I assume somewhere the marketing strategy is to sell more sun workstations, although I have never seen how so many "free" products could have offset their bottem line.  It certainly has turned Sun from a "workstation" company into a dominant force in the world of technology.  Many of thier products are for sale, some acquired, some home built.  (IPlanet is a good example of a awsome move on their part).  I think many developers using Sun's "free" technologies (Java, Java2d, Java2d, etc) are stuck between a feeling of awe, respect and admiration for a companty willing to invest so much into creating technologies, and a feeling that as free software, you get what you pay for.  Would I rather pay for Java3d so that I could demand production quality support? Well no, because personally I am pretty sure I could never afford it :)  (take a look at the cost of IPlanet + Support if you want to realize the cost of licensing technologies like this) So the basic question is this, is Sun committed to these "free" technologies or not?  If they arn't committed then why make them?  Its like dangling a feast in front of a starving man then feeding it to him one speck at a time.  I bet the Java3d team is completely committed in a personal way.  If anything I bet the "fringe" Sun libraries are just not given the resources to be all they can be.  Hopefully in the future this will change.
 
For all I know, you will all think I am way out of line here.  Be greatful David, you may be thinking.  Well I am greatful.  I love Java3d, and have staked the success of a huge project on the technology.  My passionate words are only because I want to see this technology flourish and to see my team's project successfull.
 
 
Dave Yazel
 

Reply via email to