I do understand your criticism on the lack of Xj3D documentation. It’s something that I’d like to make better, but to be honest, we’re still not even at version 1.0 yet. Things are changing on a daily basis and keeping up to date docs about changing the internals is rather hard to do.
We basically have two main classes users of Xj3D - those using either the SAI or EAI to create a browser and work with it at the X3D/VRML spec level, and those using it as a Java3D loader. It’s extremely rare that we see anyone using it any other way. As such, there has been no demand for external documentation for doing other work that is down in the weeds with it. In both cases, the usage documentation is well specified elsewhere.
If your interest is in creating new nodes or changing something about the implementation, then there’s documentation on the Xj3D website about how to do that. Properties that can be used to control the functionality are documented on the front page (overview) and in each package overview.
Apart from those, what else do you want to see in the way of documentation?
As for things not working, that’s correct, we have bugs. Sorry, but the X3D and VRML specs are horribly complex things to implement. X3D is now three separate specifications with over 2000 pages of spec docs. Another thing that we run into time and again is that it’s not our bugs, its the user’s VRML files that are not spec compliant. Blaxxun and Cortona are notorious for completely ignoring the specification and letting all sorts of stuff through that is illegal. OTOH, we are strictly compliant to the spec and will refuse to run a file that is not spec compliant and point out the error. Are you sure you haven’t confused that behaviour with a full-on crash?
Just to explain a little more - In earlier versions of Xj3D, whenever we got errors we would report these as exceptions from the guts of the nodes. However, our output code like the consoles weren’t particularly intelligent about how they handle them and would dump stack traces for stuff that really wasn’t a genuine error and some of the reporting paths for errors were not hooked up. Something like a colour value out of range would still end up with the complete exception trace being dropped to the command line. M9 and some recent work post M9 have pretty much removed all of those now and will just report the correct error and line of the file it occurred on.
As for the lots of jar file comments, well that’s a personal preference and one which I don’t agree with. Since Xj3D is designed to be segmented and used in parts, our users prefer having the ability to take just the JAR files they need rather than one huge file that is around 4MB in size. If you look at other projects of similar size, such as Batik or JBoss, you’ll see they take exactly the same approach as us - a lot of smaller jar files that allow the code to be segmented and only the appropriate parts needed. For reference, the Xj3D library is now over 450K lines of code. Add in all the external libraries like j3d.org, URI handling etc and we’re well over 700K lines easily. Aviatrix3D I did a quick wc -l on last night and it was 75K lines alone!
Edit: As for the javadoc being pitiful comment, I reject that completely. Xj3D has the best javadoc of any project I’ve ever seen. You’re telling me http://www.xj3d.org/javadoc/ that that is poor javadoc, then I’d like to see what you classify as “good” javadoc. Considering every single method variable and class is commented with more than just “sets the size” sorts of comments, then I fail to see what else could be done, unless you’d like us to comment it in Z to formally prove the function of each method call!
Right now i cant even launch the browser on xp the msdos version of xp has been severely tunned down by Micro$oft.
