Been There, Done That -
Where were we going again?

25 August 1999.

Since leaving VRML, I've had a huge number of people asking "Why did you leave?" and "What are you working on now?". In some respects, this is my FAQ for you. The original was written for Maureen Stone as part of an opinion piece for a Vision 2000 issue of Computer Graphics and Applications. Designed as a short commentry from which she would take snippets as part of a larger piece, it got out of hand and ended up as this. It sums up many of my current thoughts, but a lot can be expect to be added. It is designed to challenge your assumptions, not agree with you.

  Return to top

The Big Blue (Virtual) Room

The Great Cyberspace Dream, or at least that's what the popular press wants to pigeon-hole it as, has been a common motivator behind a lot of the Virtual Reality industry. Obviously not every VR researcher is there because they want to be in the Matrix (either the Gibsonian or The Movie version), but talk to enough people and you will see it as a common thread. The Goal: Build a computer generated environment so real that you'll swear it was. Global online communities in VR - in the lounge room of course.

Will True Cyberspace ever be possible? Why do we seem to be going everywhere, yet never seeming to actually get any closer to the dream? There's a lot of chaos in the 3D space at the moment. The wbe browser and a huge number of technologies with 3D capabilities are starting to all clamour for our attention. However, none of them seem to be getting any closer. If the wheel was patented, there would an almighty legal battle going on right now.

At the beginning of the year I decided that is was time to leave the VRML efforts in a fairly public way. Since then, whenever I run into the old crowd, the most asked questions are "what are you doing now?" and "why did you leave and what needs to be done to get us there now?".

This 3D thang ain't that new. Back in the late 60's with the first vector based displays it was possible to build 3D representation of objects if you knew what you were doing. Admittedly it wasn't done for everyday use, but Bezier and co decided that it really was necessary to get stuff done. Enter the AI craze of the 80's, throw in a dash of Neuromancer and a splash of hackers and you get the start of the media hype. Cyberspace is here they cry. Ha, far from it, yet even 15 years later the same things are repeated in the press (the noise gets particularly loud around Siggraph time every year).

  Return to top

So What's Real?

They reckon it takes around 60 million polygons to model reality. Obviously this is probably also going to mean texture mapping with phong shading and some radiosity lighting thrown in for good measure. How do you measure sound or smell in polygons? Does your mother care how many polygons you are made of? Does she even know what a polygon is or even how to turn on the computer?

You see, that's the problem. For the last few thousands of years we've been dealing with the 2D world of the written page. Prior to that, we had to deal with the 3D world of reality. Reality is kind of neat, but it's just so limited for presenting information. How many Sabre-Tooth tigers are running around in this part of the world (how many fellow Ogs got eaten by said tiger in the last year...)? Here's how we killed a tiger. You can read the illustrated instruction manual I've painted on the wall. If I write it well enough, maybe in 40,000 years they might still be able to do it? Gee this wall is so limiting, if only I could walk around it in 3D you could examine the exact angle to throw the spear at.

Working in 2D has served us incredibly well for a very long period of time. For many tasks, there is no need to use anything more. To expect to make the move to 3D everything is such a relatively short time span is just unrealistic. Most of the world doesn't understand Internet Time. Sure development may be going that fast, but the basic research principles and also adjusting the collective brain to deal with 3D again operates on Real Time.

One of the biggest problems is perception. Putting a 3D environment onto a 2D space just doesn't seem to gel to most humans. We live in a 3D world and that's how we move around. The idea of dragging a mouse or pressing the arrow keys to wander around this projected object just feels plain wrong to most people. The reason is not necessarily that it is wrong (see how well a higly tuned Quake or Descent player handles this problem), it's just for most people, today, it feels un-natural.

The acceptance of 3D technology has been one of the factors governing why efforts like VRML have not hit mainstream acceptance. Let's look at today's crop of software that uses 3D: CAD, Animation/Modelling, Graphics. Have you noticed that in each of these tasks, it takes a great deal of training before you can start to be proficient. Sure, after using one for a while it is relatively easy to shift to another, but for the first time 3D user, there is a steep learning curve associated with a completely new way of interacting. Consider a graphics program like The GIMP or Photoshop. To make a decent looking model using 3D effects that you can chuck on a web page takes much more than just the typical 5-6 mouse clicks that a beginner is willing to use. How many people do you know that could sit down at Microstation and draw up a model of their house and then walk around in it the first time that they've seen a piece of 3D software?

The lack of 3D exposure could be blamed on many factors: PC's not capable, graphics hardware is expensive, no-one else is using it etc. Many of these factors definitely weigh into it, but there is also the problem that there is no company pushing 3D at the masses in a sensible way that makes the average manager want to use it. There's just too much fuss for the computer semi- litterate (think of the manager using Excel to produce company reports) to do something nice and simple. We need someone like Microsoft to get out there and start dumping simple, easy to use 3D applications in the hands of your mother before we're ever get anywhere with this VR thing.

Let's take a look at the 3D graphics market. At the bottom we've got OpenGL, Direct3D, Heidi and Glide as some of the most popular choices. Next up the ladder there's Inventor, Performer, Java 3D, Fahrenheit and countless others. Climbing on these shoulders we've got DXF, VRML, OBJ, LW3D, OpenFlight and again a supporting cast of thousands. Somewhere mixed in amongst this comes AutoCAD, 3DSMax, Maya, Photoshop, Quake and your local Timezone. For all of these, there are only so many ways you can express a polygon. How much has Java 3D progressed us over GKS/3D in the last 15 years? In the rush for progress we seem to be standing still.

With the massive leaps in 3D geometry representation over the past 15 years it seems that we may have actually advanced the state of 3D graphics. A polygon is a polygon, a scene graph is a scene graph, all we've managed to do is just make them look a little more realistic - mainly due to Moore's Law than anything else. We haven't advanced the way we represent 3D graphics at all in that time. If one fails, people automatically set out to find the new answer, which is exactly the same as the old answer. Look at what is happening with the VRML efforts: X3D is no advancement over VRML, and is no different to 3DML, Shockwave3D or anything else. Was there anything new or revolutionary shown at the Web 3D roundup at Siggraph 99? That bloody wheel thing just keeps going around in circles.

Unfortunately, nobody seems to be realising this predicament. They simply run off to the next bandwagon and claim it to be the next great thing without actually realising where they've come from, or where they're going - or even how many others are actually doing exactly the same thing. Everyone wants to get to this Cyberspace nirvana and yet they can't seem to extricate themselves from the polygonal web. The reason the last product failed was not because it wasn't any good, or that the new one does it so much better, but simply because your mother isn't ready for it yet.

  Return to top

Getting from there to here

Today, it is treated as almost a right to be able to drive a car. Back at the turn of the century, this was not so. Them new-fangled horseless carriages where an amazing thing to behold. The guy that owned it probably had a decent chunk of money, but also was probably technically inclined. If something broken, they could grab a bit of wire, pair of pliers and have it fixed before lunch. Today: "oh, I like that colour and that one looks like my sort of car". Something breaks, take it to the local mechanic. You can pretty much jump from a VW to a Ferrari and be able to tell immediately how much fuel is left, what speed you're doing and what gear the car is in. This is not due to some industry standardisation working group, just a clear understanding of what seems to work, developed over time.

Computing, and particularly 3D graphics are just a century behind the car and Microsoft is our Henry Ford: whatever colour you like, so long as it's black. Sometime soon someone else will give us a choice of colour, but hey, now everyone can afford to drive a car. What we need to do is harness this process to make sure that the cyberspace dream makes it into reality. Let's make 3D so pervasive that it is assumed to be a right to use it, not a toy for the privileged few. Doing this means that we need to get MS, or the next company to take 3D and shove it in the face of the ordinary user - in a form that makes sense. 3D bar charts are wonderful to bore the pants of the audience of your next presentation, but they are pretty much useless for the average person. Start to think not about what you can use 3D graphics for, but how would a person like to perform a task in the quickest and most efficient manner. Don't look at polygons and textures, look at clusters of information, trends and statistics - and make sure the BFG9000 has enough ammo left.

You think Quake is just a game. Today's teenagers are tomorrows managers. They've grown up in a world of Zelda and Mario. Thinking in 3D is as natural to them as pen and paper are to your grandparents. If we can't express our applications in such natural terms to them, how do we expect to provide this cyberspace thing to them. What, you can draw more polygons faster than anyone else. Great, just how am I supposed to work out the sales trends with that?

There is a lot of serious work being done on virtual environments in the research labs. How do I better model accoustics, what are the best forms of moving around in a world as well as the usual crowd trying to make the next Hollywood blockbuster. Obviously these things need to keep going, but shouldn't the rest of us stop arguing about how best to represent a polygon as a piece of ASCII text and start looking at how to represent and build the infrastructure?

  Return to top

The Building Blocks of Life

So it's pretty obvious by now that we now how to represent and draw polygons. We've even got a pretty good idea on how to manipulate dynamically. What else have we got? 3D sound cards are available so that looks like something that is worth persuing. The old text and chat things is pretty well sorted out, even moving those into 3D has been done many times before (AlphaWorld, Cybertown, Spline et al). Basic and complex physics have all been done (MathEngine, simulators). Networking so we can deal with lots of other people. Fine, but I want to take my dog with me when I leave here and go there.

Networking is a major bottleneck. For highly interactive worlds, I'd like to fetch stuff locally wherever possible. But if I start moving around, that will probably need to be fetched from somewhere else. Hmmm, my neighbour's house is not kept on the same server as mine. That's a pity because their protocol is not supported by our client. Sorry, you don't live next door to your neighbour.

That's just not acceptable.

Apart from the Current cyberpunk novels, where is the Theory of General Relativity for Cyberspace? Has anyone ever thought about how we make all these different things coalesce into a single meaningful space for a user? The network is not the computer, but it provides a really good access mechanism to computational resources and stuff to play with. Can I get my ISP's router to help render my garden?

What I fetch from the network should look no different to what I have on my disk. For the 90% of the time that it matters, I shouldn't need to know whether something I am seeing comes from the network, from a local disk or a cache (the other 10% is dealing with network failures that will always occur). It should be a case of "fetch this object" not "make me a socket connection to this machine because I want to get some files from it". Describe a world as a collection of objects, not by how to fetch them. How these building blocks function should be the definition of the author of that block. Like the car, if you don't know how to change the spark plugs, get the mechanic to. Just add the bits to the car that you want, like petrol, a couple of kids, some CDs and drive off. That is assuming you know what a steering wheel, key and accelarator pedal are in the first place.

The other half of it is getting the infrastructure right to support this. Making sure that you can resolve all these objects to real executable chunks of code, able to fetch a description of what to render and all of those things. At the other end, the distributed networking parts, they're up to the author of the objects. There have been great Holy Wars over what the best architecure is for a distributed virtual environments. None are right for 100% of the situations, but as far as the desktop user is concerned that shouldn't matter. Fetch the object and let its internal implementation deal with what is best for itself. In your environment you should have a collection of objects that might use multicasting, proxied or central server philosophies. How each works should not effect how the others perform. If they interact, it is within your local environment and then let each deal with the problems how they know best.

  Return to top

Which Way's North?

So where does this leave us? As a first step, the need to continually redefine the polygon needs to stop. Its been done already. Instead of chasing our tails with the latest and greatest file format with the biggest buzzwords associated with it, we should concentrate on building on the foundations that we already have and sorting out where the new problems arise.

Actually starting to work towards the real dream with a common core. We had one, VRML, but it suffered the buzzword death because it wasn't an instant success. Guess what, nothing will be until everyone is happy to work in 3D. That will take time - let's say around 10 years from now. Stop re-inventing the wheel and start trying to solve the rest of the problems that will prevent us from getting to nirvana.

To get from A to B, you need to actually make an effort to move. Sitting down and staring at the ticket will not get you anywhere.

  Return to top

[ Home ][ Opinions ][ VRML ][ Java ][ Linux ][ Books ][ About ]