By Mark Pesce
ZDNet
There is a specter haunting VRML -- the specter of Java3D.
You wont hear it dicussed publicly; the conversation takes place away from the media and outside the earshot of VRML's growing and loyal user-base. But truth be told, many of the movers and shakers in VRML-land are quivering in their boots, entirely frightened by Java3D, a product thats nine-tenths vapor.
Java3D and VRML: Roots of Conflict
I blame myself. You see, this is all about
personalities. Strong
intellectual personalities often come into conflict, and I cant
say that
my relationship with Michael Deering at Sun Microsystems has
been anything
but coldly cordial. To his credit, Michael has a brain the size
of a
planet, and has designed more of Suns hardware than is often
acknowledged.
However, early in the process of creating VRML 2.0, he got a
snub that he
has never recovered from or forgiven.
In August 1995, during the first meeting of the VRML Architecture Group, I was informed that Sun was unhappy they hadnt been invited to attend. This surprised me. After all, Sun had ignored VRML for 18 months while Microsoft, Silicon Graphics, Intervista, and Autodesk (all of whom had sent representatives to the meeting) had been involved in VRML to differing degrees. Why should Sun attend, I asked, if they had not contributed anything thus far? With that the die was cast, and an enmity formed between Deering and myself that persists to this day.
I imagine Michael said, "Fine, Ill take my toys and go home," --- and he certainly had an outstanding selection of toys. Michael had the advantage of a superior mind and the development resources of Sun. He was playing with "Oak" - later renamed Java - long before any of us heard of it, and used it to build an extensible library for interactive 3D applications. In a demo at VRML 95, Michael demonstrated the power and flexibility of the programming environment, and repeatedly took the audiences breath away. Unfortunately for Deering, the VRML community had already begun to accept that "Moving Worlds" would become the specification for VRML 2.0, closing the door on his work.
But that didnt stop Michael, or even even slow him down. Deering submitted a proposal to the VAG for VRML 2.0. Presented to the VRML community, Deerings proposal garnered third place - after Microsofts Active VRML (which well come to in just a moment) and winner Silicon Graphics. At this point, Deering retired from the field, but kept working, coding and refining, eventually unveiling a Java graphics library that would be named Java3D.
Opposite Strengths and Weaknesses
Java3D is everything VRML isnt. First and foremost, its a set of
Application Programming Interfaces (APIs) for Java. At its base
level,
Java3D is a programming language and software library; the
browsing
environment is a Java applet; its file format is a stream of
Java byte
codes. All of the things that VRML makes easy, Java3D makes
hard, and all
of the things VRML makes hard, Java3D makes easy.
Critics of both Java3D and VRML have made much of this difference. At SIGGRAPH 97, a Java3D "birds-of-a-feather" meeting erupted riotously when Mitra (one of the main authors of Moving Worlds) displayed a VRML file that created a cube, using six lines of code. Mitra then showed an identical Java3D implementation that required four pages.
Meanwhile, on VRML and Java3D mailing lists, people complain about the level of integration between the VRML browser and the Web browser, tenuously maintained with the External Application Interface (EAI), which has neither the performance nor the flexibility that most 3D programmers need in their work. Integrating Java3D into an applet environment is entirely straightforward, while integrating VRML in any meaningful way is, at best, cumbersome, and sometimes nearly impossible. Hence the specter haunting VRML.
Nobody's Perfect
Neither VRML nor Java3D is perfect. Each has its own strengths
and
weaknesses. VRML 2.0 has been out there for nearly two years,
while
Java3D hasnt even reached the beta stages. VRML is included in
the
Netscape Communicator download; the Java3D class libraries
probably wont
be integrated with Netscape until release 6.0 - at the
earliest. And its
unlikely that Microsoft, with its antipathy to all Java APIs not
created
in Redmond - will adopt them quickly, if at all. Ubiquity - the
great
strength of VRML - is still far off for Java3D. Tools for VRML
creation
and export are commonplace now; while Java3D can read in several
file
types - including VRML 2.0 (most of the nodes, anyway) - writing
a
modeling tool which exports to a programming language is a
notoriously
difficult task, and will slow software support for Java3D.
But Java is the flavor of the month - or, more precisely - the flavor of the decade. Just as C++ swept the 80s for programming language chic, Java has captivated programmers around the world. Just say the word, "Java," and most geeks will smile with satisfaction. VRML - which had a ill-deserved reputation for being both slow and fat - still suffers from a bad rap in many programming communities. The features that make it so easy to use earn it scorn in the hard-core, high-speed graphics communities of gamers.
Will Content Save VRML?
By this time next year, programmers will be able to make a free
and open
choice between the two Web 3D formats; the only hope VRML has
against the
Java onslaught is its installed base of browsers, applications,
and
content. The Dilbert 3D site has been getting hundreds of
thousands of
hits a day, and the Mars panorama got well over a million hits a
day when
it first went up. Weve changed gears in VRML, from pushing
browsers to
pulling viewers in with outstanding content - content thats much
easier to
create in VRML than Java3D. Its the only real advantage VRML
has, and
without a continuing stockpile of incredible content, VRML will
begin to
fade before Java3D.
Which is why - if you listen closely - youll hear whispers about the "threat" of Java3D behind the closed doors of the VRML companies. Most are very worried. The content creators are philosophical. We care about 3D on the Web; if Java3D wins the battle, well begin the migration. Itll probably make things more difficult for us, but if Java3D represents the only path to our audience, its the road well travel.
Direct Animation Another Threat
Theres another specter wandering the winter wastes --- the -->
--specter of
Active VRML. Originally a SUN research project called TBAG, it
migrated
to Microsoft after SUN killed funding for the project. A year
later,
Microsoft proposed it as their choice for VRML 2.0; it came in
second,
behind Moving Worlds. The engineers refocused their efforts,
and it has
now re-emerged as Microsofts Direct Animation, included in
Internet
Explorer 4.0.
Theres no doubt about it, Direct Animation is very cool. It, like Java3D, is a programming language, but - unlike Java - its not procedural programming. Its an entirely different approach, which requires that developers rethink their designs, and rework them to the execution model that Direct Animation presents. This is not an easy switch to make - and most probably the reason that Active VRML failed as a VRML 2.0 proposal. (Lots of folks looked at it and said, "This is too weird.")
Within the last few weeks, Microsoft has begun a disinformation campaign downplaying the importance of VRML and promoting the importance of Direct Animation. One Microsoft executive - who will remain unnamed - has been visiting developers and telling them, "VRML is dead," then offering to support them in Direct Animation efforts. This is a curious assertion, because VRML - as near as anyone can tell - is more widely deployed and used than any time in its history. There are probably around 12 million VRML browsers installed on desktops around the world, and countless VRML sites. Conversely, there are but a handful (literally) of Direct Animation sites, and no authoring tools to speak of.
Fear of Microsoft
Is this another Microsoft attempt to derail a public standards
process?
(I allow myself anti-Microsoft paranoia only on Tuesdays and
Thursdays,
and Im writing this on a Monday, so Ill stay away from the
darker
implications of my question.) Theres no question that it is
scaring the
developer community. Its clearly a case of F.U.D. (fear,
uncertainty,
doubt), which - if VRML stumbles - could lead to the dominance
of yet
another Microsoft technology.
Campaign to Undermine VRML?
Microsoft, which has publicly committed to VRML several times in
the past
two years, is privately doing its best to weaken support within
its core
community of developers and content creators. And even if this
campaign
doesnt succeed in winning developers over to Direct Animation,
it could
clear the way for the rise of Java3D. That eventuality would be
a blunder
of almost unheard-of dimensions for Microsoft. 3D is the future
of
computing, and the group which controls that future - Microsoft
or SUN or
the base of developers that compose the VRML Consortium - all
know this.
In some ways, the VRML Consortium - composed of a few large
companies and
many smaller ones - is at a disadvantage. Its far more
difficult for the
Consortium to reach the consumer with a single, unified
message. But its
constituent companies can do what neither of the giants can -
create,
create, create.
Like Ebenezer Scrooges spiritual guide, the specter haunting VRML shows us not what must be, but what may be. The issue will remain undecided for some time to come. But VRML has an enormous head-start, and we all know - from examples like Netscape and PointCast and Marimba - that a head-start, properly leveraged, is enough to ensure eventual success. When we awaken from this dream of the future, well see what we always knew: VRML is here, now, and it works. Its up to us to work it.
Happy Holidays, and an Abundant New Year!