Next entry: To The Artists and Content Owners
Previous entry: The Quiet Tipping Point of Commercial Standards

X3D Community Blog

November 15, 2006

VRML and X3D don’t suck. If we don’t get that, we suck.

There has been a lot of discussion comparing VRML/X3D to Second Life (SL) and MMORPG such as World of Warcraft (WOW). To some it appears that X3D is simply too difficult to use and the money is going to be made in SL or similar “user friendly environment” that are focused on social spaces and shared worlds. The argument further goes that building behaviors and hacking geometry in VRML/X3D are too difficult for mass market use.

I agree that working in the vertex economy is not as productive as working in the scene economy.  I don’t think the situation is as bad as we may think but I defer that topic to later in this blog.

Regarding social worlds and X3D, it seems to me the right thing to do right now is ask how H-Anim and NetworkSensor are going to interact and how one creates messages among them.

Designing a behavior language is fairly straightforward *once you define the level of abstraction*.  Welcome to domain specificity.  This problem has been solved dozens of times since Logo.  Now ‘moveTo’ or ‘walkTo’ or ‘flyTo’? Does this behavior apply to an ‘object’, a ‘tank’, a ‘human’ or a ‘gazorpFromGazeek’? Will you implement this as ‘objects passing standard messages’ or ‘scriptable API calls’?

As early VRML developers, we proposed again and again that an author- friendly High Level Language for Reactive Behaviors be specified.  The closest we ever got to having this was the submission from Microsoft for VRML 2.0.  It was soundly rejected in favor of the Moving Worlds(?) proposal which was the basis for VRML97 which is the basis for X3D. Some of us worked on the Human Markup Language project at OASIS but that was not promoted as a virtual character language; it became a project for describing political negotiations and has died of neglect.  That was a much tougher problem than making a language from which gestures for avatars can be derived for multiple cultures.

Trying to create generalized languages that do too much rather than focusing on a narrow but achieveable application is the most common way such projects do fail.  This is the Scylla and Charibis of language design:  too simple and it takes too much scripting to do interesting work.  Look at HTML squarely and tell me it is an interesting language without JavaScript and CSS to do the heavy lifting.  On the other hand, the one constant in my VRML work of late has been how often I tried to create an effect through intricate scripting only to discover that the right combinations of sensors and fields in the language already do that.

I get up every day to wash the feet of the KISS gods and watch them wag their pointy tongues at me laughing.

Some say X3D/VRML is too general.  I don’t because I’ve built enough with it to see that it is in the sweet spot of the learning curve.  It is hard initially but the basis in geometry, interpolated engines, and a scene graph or network for passing event values is just flexible enough to do hard things and easy things.  Graphics are not easy and never will be when one is working with indexed face sets and scripting, but this is the cost of having a language that one can apply repeatedly to different tasks. 

The success we see in any one application such as SL or WOW we see repeated in many applications using X3D and without having to rent space on a privately owned server farm or learn technology that can only be applied on that server farm.  So observably, X3D gets the level of abstraction right even with the learning curve.  I’d rather climb that hill once and get the power where I need it then have to climb dozens of hills that all look alike but do simple things differently.

X3D/VRML for multi-user worlds isn’t dead yet.  As Eric Maranne notes, the VR market is really only now beginning to emerge commercially and it is too early to pronounce one application the winner and another the loser.  I don’t think real-time 3D when applied to virtual reality or simulation or training or real world mapping shakes out to be a single market with a single application language unless that language is standard, unencumbered and powerful. 

There are things I note that make me confident that ISO X3D is the right standard for 3D on the web and that the 3D revolution has come.

  1. Note Kurt Cagle’s xml.com article on JSON.  Note that he is providing an example of a game object message.  That’s a clue about what he and others are thinking.  Kurt was a member of the HUML Working Group at OASIS.  I suspect there are those outside this list working on a prize of such a messaging standard.  Will they apply that to Second Life?  Could they?  Kurt is thinking about X3D as he chats with Mark Pesce and others. People in the XML community who have historically kept 3D graphics at arms length are warming up to X3D now that they see more successful 3D projects.  In this case, Second Life is the best thing that could happen to 3D on the web and X3D in particular.  It validates one segment of a fast growing market, but only one.
  2. X3D is still the ISO standard for real time 3D on the web.  You undervalue that and as a result, you don’t take advantage of what momentum you can build with that advantage.
  3. VRML and X3D have been picked up by government agencies.  That won’t last if there aren’t good results quick.  Developers who focus on VR get this and they are successfully selling product, not vertices and syntax to these agencies.

Can we make X3D easier?  Certainly.  Actually, some already have.

If you want a high level building language built over VRML/X3D, you must have a library of VRML/X3D objects that support a network API such that dragging and dropping objects into scenes is fast and painless.  If you spend a little time Googling for proto libraries, you discover there are some excellent open resources for these libraries.  People like Eric Maranne, Cecile Muller, Braden McDaniel, Herbert Stocker and others have been creating and releasing these for years.  It is very easy to put together a scene with simulated day and night, follower objects, shooting stars, GPS metadata and a lot more.  The more professional open code we have, the faster we can build and as one who had been at this as a hobbyist since VRML’s salad days, compared to where we were when VRML was The Winner, the available free libraries are far more extraordinary and provide more than enough to build compelling 3D worlds.

I’ve been saying this for so many years now that it feels like a rant but it is the reality of the marketplace:

ANY SINGLE COMPANY UNDER A SINGLE MANAGEMENT USING A PROPRIETARY TECHNOLOGY AND THEIR OWN SERVER FARM CAN MOVE FASTER THAN YOU CAN.

No coordination problems; just design, code, release and debug.  It works for Second Life for the same reason it works for Microsoft.

BUT NO SMART AGENCY OR COMPANY RENTS THESE FOR VERY LONG IF IT THREATENS THE SECURITY OF THEIR OWN COMMUNICATIONS.

You would be stupid as a cow to host your design world communications in Second Life.  Those server and chat logs are gold.  How are they protected?  That doesn’t mean some companies won’t do it.  It means they will have second thoughts about their second lives once the first disgruntled employee or clever hacker pilfers those logs.

The success of Second Life IS about presence, yes, but people gather in communities for lots of reasons.  Identify more reasons that people get together to chat or do other things at a distance where presence improves the communication and build for that, but before you spend too much time on designing a behavior language, pick exactly the right level of specificity. We tackled this problem in HUML and discovered it isn’t trivial. You either take a Gencode approach (HTML is a GenCode) and keep adding nouns and verbs, or you take an abstract class approach. Remember, XML is not really an extensible language.  It is a means to create languages.  Full stop.

One last thing:  as a professional musician who has spent a lifetime in one band after another, it’s my experience that spending too much time worried about the success of others is deadly bad juju.  It’s ok to be enamored of the success of other bands if it makes you competitive.  That is the right thing to feel.  OTOH, if all it results in is sitting around the studio whining and carping about why their band has gigs and your band doesn’t, it is more than a waste of time. It rots the very morale of a band from the inside out.  You don’t pick material, you don’t rehearse, you don’t write, you don’t record.  You just whine.  At the next awards ceremony, you aren’t even invited.

You have more advantages in this market than you will be led to believe by the press or your competitors.  You forfeit them by doing nothing.  A band that does that does suck. 

There is incredibly stunning VRML and X3D out there and this community built it.  I am in utter awe of the VRML and X3D code I find out there ready to be used just for the acknowledgement of the person who wrote it. I don’t understand people who don’t get that and I never will.  VRML and X3D don’t suck.  They are marvelous.  If we don’t get that, we suck.

Comments

I’m using VRML (and now X3D9 since about 1997-1998 or so. I’ve also used it in my graduation thesis and I think this is a good technology and solution for easy 3D interactive environment!
Maybe, at the moment, the standard Xj3D viewer is a bit clumsy in world exploration and navigation and I think (not sure) it does not support multi-user… but anyway I still think X3D is a good technology and maybe the community should be extended through the development of object libraries, APIs, and a higher participation so that many people can contribute to the development, enhancement and improvement of this technology.
Also, I’m a fan of free software and open source things… so: Live Long and Prosper to X3D! :-)

Great article.
the problem i see with VRML/x3d
is the lack of public content that is beyond academic and is aimed for fun.
what needs to be done: is make vrml/x3d easy to make and host
so that web3d becomes as normal as a flash plugin.
in this incarnation web3d might show up as a spinning 3d logo(i still like 3d spinning logos) or as an end destination.  the embed functin does this greatly.
Tools are a key:
i suggest a big library of premade models.
drag and drop to add behaviors.
make it 100 bucks or less.
THEN I think EVERYONE here
should shut up and make a web3d page.  Not just talk,
but with actual web3d files.

WE NEED CONTENT.

I don’t know about your experience, but I find plenty of protos out there for the picking.  Just Google for them.  I’ve spent the last few months building a new world and it runs well, incorporates publicly available protos, and does everything I need to to do.  I use the ISB Demo (for making small boolean carved objects) an obsolete but still working V-Realm/Ligos Builder and PFE.  I spend as much time in PFE as any of the others because I find VRML to be a pretty easy language to learn.  There are lots and lots of tutorials on the web.

I agree with your points, they do help, but they don’t have to stop anyone from building.

As for too many worlds being behind firewalls with subscription fees, true, but then that’s how the authors are making a living and I can’t quarrel with that.  Otherwise head off to vrmlworld.net and there is an open world(s) system united by a common MU and chat system.  It isn’t a fancy affair, but it does work and it is free.

It don’t come easy.  But it doesn’t come at all without plenty of time and perspiration.  3D worlds are not HTML web pages and never will be.  Spinning logos are cheaper and more reliable using gif animation.  Pros know that and build accordingly.  One steps up to real-time 3D for VR and other more complex animation tasks.

Best not to confuse the public about that.  It is hard work because it is a complex technology relative to HTML.  Compared to C#.Net, it is easy.  Compared to C++, it is child’s play.

I don’t expect the public to start building X3D worlds next week.  In fact, I hope they don’t.  The last time we did that, we left a lot of awful works out there and were judged by them.  I know because I made some of the cheesier ones.  But for those willing to stick with it, to learn from the tutorials, to master the language, and to wrl like hell, I say, do!

Post your comments

Note: All comments are moderated by the webmaster. Until then, the comment won't appear on the entry. Thanks for waiting.

Name:

Email:

Remember my personal information

Please enter the word you see in the image below:


Member Login


Username:

Password:

Not yet a member?