This isn't a real post but more of a rant session about the quality of the X3D specification. This spec is of mediocre quality at best. It's quite clear that they revised the spec many times and forgot to clean up references to old revisions. For other parts of the spec, they seemed to be describing an existing implementation as opposed to specifying how new implementations should behave (i.e. they leave out important details). Various parts of the spec are inconsistent or confusing. Worst of all, some parts of the spec give off the impression that they've NEVER BEEN IMPLEMENTED.
I've only tried to implement a very small amount of the specification so far, but here are various problems I've seen so far:
1. A lot of the example interfaces for the Java language bindings are inconsistent with other parts of the specification or are simply wrong.
2. The Java language bindings have clearly never been implemented or tested.
3. Default values are defined for several field instances when they are simply the same as the defaults for fields themselves
4. They never really make it clear what their notation for node fields are
5. Various inherited fields are listed repeatedly over and over again
I suppose it's a little worse for me because I'm autogenerating code based on the specification, so things that would be glossed over by someone implementing the specification by hand really cause problems for me. Oh well. So far, I haven't hit any part of the spec that was so outrageously wrong that I couldn't figure out what they had intended, so maybe things aren't so bad after all.