Call for Collaboration between Web3D Consortium and Browser Vendors
About a week ago, a question was posed on the X3D-Public mailing list: "Is Web3D beyond its infancy?". The following is my belated response.
I'd like to answer this question from the point of view of someone who is very new to the X3D community.
In terms of technology I don't think it's fair to say Web3D is in its infancy, it's very mature by software timescales. X3D is an ISO standard with multiple implementations and has a good pedigree.
However, in terms of adoption I think X3D is very much in its infancy. The truth is, I've been interested in X3D for about 5 years and in that time I've not come across a single person who isn't a software engineer who has an X3D browser installed on their computer. Why is this?! People have Flash, Java and PDF plugins in their browsers, they even have limited support for SVG, but not X3D.
In my opinion, it has very little to do with how good the technology is. There are only two ways I can think of to raise X3D adoption significantly. One is the egg, and one is the chicken.
- A killer Web3D app.
- Collaboration with browser vendors (by browser vendors I mean Microsoft, Mozilla, Apple, Google etc.) to get native support for X3D into existing web browsers
I'm sure that many members of the Web3D consortium are trying very hard on number 1 (Vivaty for example), but who is working on number 2?
Samuel Degrande touched on this in the thread [on the Web3D mailing list] about Khronos' new initiatitve to create a standard for accelerated 3D on the web. He said "the ultimate choice would be to have a native 3D renderer, just as SVG is natively embedded in Gecko".
I think there's an important lesson to learn from SVG here. SVG support is slowly getting native support in Gecko and Webkit based browsers, but unfortunately the demand isn't really there. In the case of SVG, a proprietary alternative (namely Flash) got there first. Flash is not only widely used for 2D vector graphics, but is also used for embedding video in web pages. Proprietary solutions - 2, web standards - nil.
There are many competitors to X3D out there for interactive 3D graphics on the web. Third party 3D engines for Flash, direct use of Java3D in an applet, Acrobat3D, a possible Canvas3D element in HTML5, Khronos' new initiative, a significant other I know of going on behind closed doors and lots of proprietary gaming plugins.
The one thing all the competitors seem to have in common (please correct me if I'm wrong) is that they use an imperative approach rather than the declarative approach taken by X3D. The XML-based solution implemented by X3D seems to me to fit much better with the architecture of the web. (The exception is that X3D has presentation and logic mixed in with content, whereas best practices have emerged on the web which create a clear separation between data, logic and presentation - namely XHTML, ECMAScript and CSS).
Many competing solutions take the approach of creating a JavaScript API which (to my untrained eye) looks very much like a slightly higher level abstraction of OpenGL! If you're going to bother creating a high level graphics language, then it seems much more worthwhile creating a declarative approach which operates in the descriptive realm of the content creator rather than the logical realm of the software engineer.
So what do you think? Should there be a "Mozilla X3D" or "Webkit X3D" project? I think such a project would massively increase the chances of X3D beating a proprietary competitor to the post.
I'm not sure which will come first on the 3D web - the chicken or the egg - but what I do know is that the chances of either coming about are greatly increased by the existence of the other.


X3D Adoption...
I think you have made some excellent observations on the factors surrounding adoption of X3D. I have been a fan of web based 3D for ages, but even since the VRML days the biggest block was browser support and now that X3D is here this still hasn't really changed.
But think that outside of browser support the other factor is getting the creative community on board. Too often I think that the software engineers and techies think they own the web and that it is all down to them. But in reality, the popularity (and usability) and growth of the internet in its importance with the general public has a lot to do with the creative application of the technology. It is a collaboration between creative designers and techies that will really bring it about. This brings me to the other missing factor for X3D to become popular - tools for designers.
Vivaty Studio (Formerly known as Flux Studio) is the closest to being a decent X3D authoring tool. It's pretty powerful, having used it myself, but still has room to develop in terms of accessibility for beginners. At present a designer familiar with flash and a 3D authoring program could probably figure it out without too much trouble, but the animation and interaction editing could do with some refining to make it easier to use, and the modelling tools could learn a lot from other programs. Having said all that generally it is really good and certainly the best X3D authoring tool I have come across.
Authoring tools won't be enough, as we learn from Axel - an excellent authoring tool (vivaty can learn a lot from their animation and interactivity implementation), but lacked plugin penetration. This is where other vendors like Adobe have already got it made.
What concerns me is that while proprietary software vendors like Adobe have their own 3D standard, and push it out to all their current Adobe users in software already familiar to most designers, and nice integration with other Adobe apps, X3D will have a hard time getting a look-in. I for one cannot imagine Microsoft adopting an open standard either, when they no doubt add 3D to their Expression suite in the future.
It is refreshing that Vivaty are using an open standard however (unlike so many others "second life" for instance), and it is decisions like this that are X3Ds greatest hope.
Outside of that, I totally agree, browser implementation is the next step for X3D to come of age. MS will be the last to get on board but Mozilla, Firefox could lead the way closely followed by Chrome or Safari.
What also might help if Vivaty put their plugin source code back into open source. The Flux player used to be Open Source, but a visit to sourceforge now will show that all source files have been removed. Maybe the investors that made Flux into Vivaty want to guard their investment closely (who can blame them), but one wonders if by holding everything too tight X3D might just as well be a proprietary format for all the market penetration it has - and without the customer base of Adobe or MS, they will slowly dissolve like Axel and nameless others. In my view a better strategy would be to open their plugin source, get it included into a Mozilla release and start seeing popular browsers with built in X3D support. Surely that will help Vivaty's larger business aim (no plugin required) in the longer term, and get them on the market with a good authoring tool. Who knows but Google will buy them out under those conditions.