| |
To
the VRML Community,
Ten
years ago today (25/5/94) a group of Web enthusiasts gathered
for a birds-of-a-feather session in a small conference room
at CERN to talk about “VR and the Web”. That BOF,
chaired by Dave Raggett, the father of HTML, was part of the
larger suite of BOFs on the opening day of the First International
Conference on the World Wide Web. During the BOF, people knocked
around all sorts of ideas for providing virtual reality interfaces
to the Web. Some people – Raggett included – favored
abstract description languages, where the token "house"
would refer to a semantic definition of a house - different
from user to user - rather than a strictly defined grouping
of geometry, materials, and lighting.
Raggett
had already decided what to call this new Web-based language:
Virtual Reality Markup Language. When I heard this, I muttered,
"Hmm. Good name." And immediately started to re-title
my presentation slides.
As
real-time 3D graphics were still something of a rarity in
the early 90s - before Direct3D, before nVidia and ATI, before
a hundred million polygons a second could be had for a hundred
dollars - no one else at the BOF had any practical experience
working with virtual reality. Well-intentioned, most of the
proposals floated at the BOF had, for various reasons, no
practical implementation. But that didn't really matter: that
room constituted the core of a nascent VRML community. Two
folks in that room have names that may be familiar to you:
Kevin Hughes, who, as an undergraduate at the University of
Hawaii, realized that you could apply a link to an image and
thereby created the button; who first said "vermal"
to me, a neologism that stuck in all the years that followed;
who showed me a cute little picture grid of a green cube,
red sphere and blue cone that became the semi-official VRML
logo. Another person in that room was Brian Behlendorf, who'd
just taken a course on computer graphics at UC Berkeley, and
would go on to become the father of Apache, co-founder of
Organic Online, and open-source advocate extraordinaire. It
was Brian Behlendorf who talked the management at WIRED into
letting the VRML community use WIRED's servers for a mailing
list and website; it was Brian who gave Rikk Carey a call,
suggesting his Inventor group at SGI might want to talk to
this guy Pesce who has this idea about 3D on the web.
The
formal unveiling of VRML - that is, Tony Parisi's parser and
my renderer and network interfaces - came two days later,
in a session titled "Advanced Topics". The other
presenters blew me away: one group had connected the Web to
the phone network to a television station in Germany, creating
real interactive television on a roll-your-own budget; another
had developed tools that allowed you to publish the entire
content of a CD-ROM just by popping into it into the drive
of your computer. None of this seems incredibly exciting today;
we've seen things like this many times over the last ten years
-- just as super-fast 3D graphics rarely elicit more than
an "ooh, pretty" from any but hard-core graphics
weenies. It's all a matter of course, these technical wonders.
But back then, when everything was shiny and new, when everything
lay before us and anything seemed possible, it was a fairly
heady brew.
My
own presentation used VRML (almost as an afterthought, to
be totally honest) as the starting point for an exploration
of shared virtual spaces: using network protocols to share
databases among an arbitrarily large number of internet-connected
machines. I probably should have stopped with an explanation
of VRML and its associated "helper app" (remember
those?). Instead I went on to a detailed explanation of topological
storage, query structure for distributed spatial databases,
and a formula for calculating the speed of light in cyberspace.
In retrospect, complete overkill. But who knew when I'd have
this opportunity again? As I concluded, one poor conferee
came up to the presentation table, muttered "Very interesting,"
and ran from the room.
***
And
now we flash forward ten years. The 3D graphics revolution
has happened, as predicted. As we all knew it would. No one
talks about
virtual reality anymore, except, maybe at SIGGRAPH, NASA,
or in bad science fiction movies. But real-time 3D can be
found in a few hundred million households, courtesy of Sony,
Microsoft and Nintendo. No one calls it virtual reality, because
it lacks the conspicuous clumsiness of head-mounted displays
and data gloves. Thankfully. But make no mistake, whether
it's the imaginal world of EverQuest, Star Wars Galaxies or
GTA3, it's all virtual reality - a mature technology used
daily by hundreds of millions, on every continent.
So
where is VRML? We all know what happened: too much hype, too
fast, too soon. SGI saw a path into the consumer market -
and a way to go one up on SUN - and plowed their enormous
PR resources into Cosmo. But John Carmack pronounced VRML
dead on arrival. His words carried more weight with the people
who really mattered - the core 3D developers - so what should
have been the core constituency for VRML, games developers,
never materialized. There was never a push to make VRML games-ready
or even games-capable, because there were no market-driven
demands for it. Instead, we saw an endless array of "science
experiments" (to quote a famous venture
capitalist) which showed how interesting VRML could be. But
never, ever, how lucrative.
These
science experiments continue today. Although the projects
I've seen in Australia (Australia, for some curious reason,
is a hotbed of VRML development) are interesting, and potentially
lucrative, each of them is hamstrung at a fundamental level
because the basic VRML "player" (a more useful term
than "browser" and more in keeping with the concept
of the media players proliferating on desktops and in pockets
around the world) hasn't matured much (to be brutally honest,
at all) in the last decade. The processors have gotten faster,
the GPUs can render at speeds undreamt of just a few years
ago, but the player itself is nearly always buggy or incomplete
in some fundamental way, making it, in the end, nearly always
unsuitable for any task assigned to it.
I
have seen people do amazing things in VRML, but this is almost
always because they have waged wars with the player, learned
their way around its bugs, and adapted to it, only to find
themselves platform-bound (a decade should have been long
enough to write a good player for the Macintosh, and another
for LINUX), unable to share their work widely enough for it
to break through to the wider audience of desktop media consumers.
And
let's not even talk about MPEG-4... Well, let me say this:
MPEG greedily took our IP to help them make more money. We
thought it would help us, but it turns out their greed got
the best of them, and MPEG-4 BIFS is just about as useful
as a buggy whip. Maybe less useful, because there are still
horses and carriages around. When was the last time you used
or even saw an MPEG-4 BIFS-capable media player?
Fortunately,
there is a solution. Unfortunately, some of you won't like
it.
***
The
open source movement had its beginnings long before VRML,
though it was much smaller and more poorly organized than
the GNU/Linux community is today. VRML tried to be an open-source
movement from the beginning, or rather, half-tried. In retrospect,
this was a mistake of the first order, but an honest mistake,
which was made in order to encourage a variety of commercial
enterprises to compete in the creation of a range of VRML
players, targeted at a broad range of platforms. And this
mistake was made before anyone knew that giving your software
IP away generally makes it more valuable, not less.
By
1994 I'd had time to reflect about the debacle of the early-90s
VR industry, which did the whole boom-and-bust cycle in an
eerie foreshadowing of the Web dot-bomb. One reason that the
VR industry collapsed was because too many companies were
competing to offer the same sorts of basic solutions to fundamental
problems. Each company - armed with its particular patents
in one or another area of VR hardware or software - had dreams
of "ruling the world". Each walked the garden path
to destruction.
I
never like to repeat my mistakes. I wanted VRML to become
a standard - to rule the world - and that meant sharing: specifications,
insights, and code. Tony and I never released the source code
for the "Labyrinth" proto-VRML player, but only
because it a) sucked and b) never ran VRML 1.0. SGI did contribute
VRML 1.0 parser source code to the VRML community, and many
VRML coders used it to build their first browsers.
And
that's where it stopped.
Yes,
I know there have been several open source VRML players; I
could download one right now and run it on my LINUX workstation
- though would probably crash, and it would definitely run
slowly. Perhaps it's for this reason that commercially available
players are considered "crown jewels" by those who
have created them, and are guarded jealously. This is a mistake.
The player is irrelevant: without a kick-ass, world-class
VRML player (and there has _never_ been one of these) VRML
is dead on arrival. Which explains the current state of affairs.
(And let me assure you: most of the world thinks VRML died
a long, long time ago.)
Hundreds
of man-years have gone into the creation of significant codebases
for various VRML players. Some of the companies which created
these players still exist, others have gone out of business,
or have been swallowed up by organizations that have neither
the spare cycles, the marketing prowess, nor the good sense
to utilize these assets effectively.
Since
I seem, these days, to be in the business of giving advice,
let me give this community some advice, freely and with no
lust of result: give it
away. Give it all away. Release all of the source code for
every VRML player that's ever been written. And use that to
build one VRML player.
There
is no need for more than one VRML player, any more than there's
need for more than one HTML player. (With 95% of the world
using MSIE as an HTML player, that point has been proven,
though not in a way I'd care to see replicated within the
VRML community.) A single codebase can be designed to compile
for the three major OSes: Windows, OS X, and *NIX. Given that
all three platforms support OpenGL (something that wasn't
true back in 1994), it shouldn't even be that hard, if there
is an enormous pool of source code to serve as the starting
point for development.
The
idea is simple enough: with enough source code, a dedicated
and focused community can begin to cherry-pick, taking the
best of the best from each of the codebases, using these to
construct a better player. In an open source environment,
disputes about my-solution-is-better-than-your-solution are
resolved in the open, or, as Brian Behlendorf has sagely noted,
"open source is essentially the right to fork".
So if you don't like someone else's implementation, fix it
and feed it back to them and prove them wrong. Eventually
they'll capitulate, overrun by the sheer logic of elegance.
With
this simple transition - one that will be terrifying for some
folks who have built successful commercial careers developing
VRML players - you can put VRML back on the map. X3D players
could be as fast (if not faster) than anything anyone sees
in a Quake 3 or UT2003 or Half-Life 2 engine, better looking,
more flexible, and far, far more useful. Gamers would flock
to it. Millions would use it. X3D would succeed where VRML
failed. This could happen - but only if those who own the
player IP could be persuaded that the key to unlocking its
value lies in letting it go.
Fortunately,
it is easier today to make this argument than at any time
before. Consider MySQL. Or RedHat. Or Novell.
***
None
of this will happen unless there is someone there to herd
the cats; to bring order and stability forth from the chaos
of community. It's a rare bit of magick, this capability.
But the VRML community has proven time and again that it is
capable of confounding the odds, producing the impossible
upon command. In some ways that's been its biggest downfall:
it's been able to resuscitate itself so often that it has
no real fear of death. And it's been irrelevant for so long
people have forgotten that there was a brief, shining moment
when it looked an awful lot like the future.
The
future is back, but it won't be here forever. There is a rare
opportunity, in the transition to X3D, to correct the mistakes
of the past.
In the tradition of the Linux kernel development team, and
the Apache developers, the VRML community could decide to
cast their lot together.
It's
either that, or hang separately.
Happy
Anniversary.
Mark
Pesce
Sydney, Australia
25 May 2004 |