Cyberspace I
The Dreamer

15 Feb 1999.

Everyone has a story to tell. This is mine. It roughly outlines my place in the VRML history - as seen through my eyes. Why and How I became involved in the VRML effort.

I present this as a backgrounder to the other scrawlings of mine. Hopefully, this will put them all into better perspective. Its rough, it doesn't cover every single decision and item that happened between me and VRML, just those that I remember and think are important.

  Return to top

Where did I come from?

Actually, I think most people tend to ask "What planet do you come from?" but I think that's entirely irrelevant. Way back in the dark, musty days of the Internet, 1990 to be precise, I first came across a toy. Although I didn't know it at the time, this was the beginning of the awakening.

Back then, it was my first year of uni. Doing Elec Eng, that involved a lot of CS components, I was exposed to Unix and the internet in one swoop. We'd been getting the shits with a completely inadequate CS department not having enough terminals so we went down to the EE labs and telnetted to the CS servers and did our work that way. The beauty was that we had colour screens - they didn't in the CS rooms!

Fast forward a couple of years. I've almost made it to the end of second year CS. A couple of more experienced hacker mates than I found that the physics dept had a bunch of brand new 486/33s arrive. They had a huge 40MB harddrive and 8MB of RAM - AWESOME. Somehow, they'd run across this thing they were calling Linux. Buggered if I knew what it was, but they acquired access to the physics lab and started the stealth installation of Linux on a couple of the 486s. My first exposure to this was wandering out of the next door lab (we had 4hr pracs) to find these things with 132 column screens and a unix prompt - on a PC!! Next thing I knew was that I was investing in a heap of 5 1/4in floppies to get a copy of Slackware. That puts it at late 1991.

Now, 3rd year CS was rather fun. I graduated to hacker status. There were eight of us that formed the back row squad. We lived in the labs from 6am to 11pm - litterally. We didn't go to lectures, the lecturers came to us. A couple of subjects were really interesting to me - software eng (well, really the project part of it. I just couldn't handle Z) and computer graphics. I spent the entire software eng project hacking my own UI toolkit from the primitive Plan9 graphics library. All I had as a base was line primitives, mouse handling, and a popup menu. The rest of it, I wrote myself. Cool, graphics is fun.

Fast forward another year. Now in 3rd year Elec Eng, I'm playing with the computer labs. I'd managed to convince them to install Linux on the PCs as well as netware. I got to do most of the Sysadmin on the unix side (except the servers). Buying a new machine too. 3D graphics and I had some spare dosh to throw at a system. The Matrox Impression Plus had just been released - I had to have it. From there, I just had to play with 3D graphics.

Thesis time came for elec eng (1995) and everything was pretty boring. So I tried to find a lecturer that would help me out. Sure enough I managed to find one that would let me do something looking at 3D graphics and the PC. Life was difficult, almost no-one knew about PCs and 3D graphics then. I wanted linux to run it so I had to find a commercial X server with the PEX extensions (What's OpenGL???). Things did happen, then didn't happen. My thesis objectives moved on a weekly basis, but it maintained the core theme of 3D graphics and the PC.

One day, somehow, I came across Mark Pesce's Homepage. It was a bit strange, but it had this thing called VRML on it. After reading everything on his site, and everything else I could find on the subject, I became hooked. Here was something that I could play in. While it never became the core subject of my eventual thesis output, VRML did figure reasonably heavily in it - an application of 3D graphics for the PC.

Until this point, I'd never done much reading. Like most, the experiences of high-school english saw me swear I'd never read another novel in my life. Well, Pesce made reference to all these novels like SnowCrash and Neuromancer. Having joined the VRML list in June of 1995 (just after VRML 1.0 was formalised), there were references floating around to these novels in every second email. So, I just had to read them.

Having read them, I never looked back. Hooked for life. So was the rest of the VRML list. These days, it reads like a who's who of the 3D graphics world. And here I was, a lowly uni student surrounded in this. These poeple living the dream of cyberspace. They'd taken the best approach - let's not try building everything at once. Let's do it a bit at a time as we learn and understand more of the problem.

  Return to top

The Growth of VRML

I remained fairly silent on the list for a long time. It wasn't until the VRML 2.0 efforts started to materialise, did I actually start getting out there and debating seriously various technical matters. On the Internet, no-one cared how old you were. If you could argue a good technical case, then that is all that mattered.

With VRML 2.0 becoming a serious thing, I became interested in other things. I'd been working for about 5 months when that steaming coffee cup came wandering across my line of fire. I jumped in boots and all. During the day I was still working as a C/C++ coder hacking motif and 2D/3D graphics libraries, but on the side, I started to dabble with Java. Welcome to Java 1.0.

Hmmm. what an interesting combination. Portable 3D geometry and portable executable code. Quite an interesting match up. Things could get really interesting here. In fact, they did. I got Involved. Boots and all, debating various things about Java, VRML and music file formats. Somewhere along the lines, I also got involved in writing books too - ACK, both reading and writing. The two things I never, ever expected I would be doing when I left highschool.

And here I was stuck in the middle of it all. Playing, arguing, debating and most of all, having fun with my dream. Gibson got to me. The guy that invented the term Cyberspace while writing on a clunk typewriter, now was living and breathing the air with me, for me. They were amazing days. New faces were popping up every other day. We all shared that dream - taking the next step towards creating cyberspace. Each of us knowing that we were involved in Making A Difference.

Of course there was a lot of back room plays with the guys from SGI, but we all pretended not to notice. Our voice was being heard. We could make a difference. Occasionally we were wrong, or had to be persuaded that there were better ways, but that didn't matter. Tempers frayed, but it was exciting. We could all rewrite the spec. In fact, we did - four times in four days for the Java script node bindings. In the end, we had to call a halt because they wanted to publish the thing for Siggraph96.

  Return to top

The Dream Driver

By now, I was fully immersed in the dream. I spent hours every day working on and with VRML. I was starting to spread the gospel to work. People were listening - a division of my employers working on the other side of the country were interested in exploring VRML. One phone call to introduce myself and I found myself on a Plane heading for the wild west, to get PAID to do VRML and Java.

Things were very interesting. The VRML spec was out, but it was pretty clear that more work needed to be done. We had the end of November to get the spec sorted out for sending it off to ISO. Once again we dived in with hands and feet and re-wrote the Java part of the spec. Again I was out there pushing to do the best we could.

It was done, then Chris Marrin dumped a minor bombshell on the community. We'd been talking about a Java interface to the VRML browser for some time, but just before Christmas, CosmoPlayer beta 3 came out with an External Authoring Interface. Well, kiss goodbye to Christmas that year!

Actually, there was more to this than that. In early November, I'd accepted an offer to do a book with Bernie Roehl about VRML and Java combined together. This was to be a No Holds Barred approach to VRML and Java. None of this introductory stuff. Lets see what we can do approach. Here was my chance to not only live the dream, but to be fundamental to its creation - teaching others how to live and love it too. Today that book still stands as being the bible of the VRML industry.

As time moved on, I became more and more involved in VRML. I was starting to do it as a job too. Frequent trips across the country for prototyping and development exercises kept the body clock screwed. Tough life, but someone had to do it! All the time VRML was moving towards the Consortium and ISO standardisation. As more people got more experience with the Java and Javascript API's things got more hectic with calls about the "Broken" spec. We had precious little time to get fix it before the final round of ISO processes. Seeing the need, I jumped and formed a list devoted to dealing with the issues - the vrml-script working group. This must have been one of the first official working groups of the VRML Consortium.

After some eight or so weeks, we'd bashed the event model into some reasonable shape. It wasn't perfect, but we plugged the main leaks. We did this through shear determination and a lot of bloody mindedness on my part. If the list traffic dropped, it was because we'd finished one topic and were ready to start the next. Levels were high. I remember days where it must have been close to a hundred emails for the day. Somehow, I managed to keep track of everything that was happening and kept it going on the public web pages.

There was a lot of ferocious arguments. On one side were the browser writers, and on the other, content developers. I was somewhere in the middle as a applications oriented guy. At times it came close to flamewar, but it was somehow averted. We progressed - extremely rapidly. Now, I grant that my methods probably we're not the most popular. Sometimes this involved interjecting in a thread to kill it because it was getting off topic. We had to be tightly focussed on solving only the issues at hand. As I said, I hate politics, so if it required a flametory remark to kill a thread, that's what I did.

These were amazing days for me. Not only was I playing with VRML as my job and hobby, but I was getting the chance to drive that dream forward. Take it where I believed it should go. Heady days indeed for me. Ones that I will never forget. Maybe I could be Hero Protaginist?

  Return to top

Dousing the Fire

Things were just moving along so smoothly. Then Mark Pesce gets up and quit. He walks out in a hail of weird and wonderful allusions that only he could make. This attracts some interest in the computer press. After all, he was the public evangelist of VRML.

Though I never realised it at the time, he cited the very reasons that I saw when I decided it was time to make my exit. However, we sort of shrugged it off and kept going. Besides, everyone else from those early maddening dream days were still in there madly making hay with the VRML spec. Efforts sprung up everywhere to enable cyberspace.

I'd decided that the EAI was going to need some attention. Chris had been giving it on and off attention for some time, but we were getting nowhere. At the VRML98 conference, we had a BOF and discussed the spec. It was pretty clear to me that Chris was noting going to be able to do it himself. I was pretty fired up and keen to get in and make something of it.

Following a week or two's pause after the conference (pretty good case of jet-lag), I jumped in and started making suggestions to the list about various improvements. One of the big ones of these was to re-organise the java classes to be more oriented to the Java philosophy. Somewhere along the line, Chris invited me to become co-chair of the group. I took it seeing it as another chance to drive the dream forward.

Initially this started a great flurry of emails. Ideas such as re-writing the APIs to be much more in line with the script APIs were suggested. I had my proposal, and I wasn't interested in others. If they had one, put it forward and let the community decide which was the best one. To this end, I started a major work to rewrite from scratch the EAI. This took forever. Some two or three months if I recall. I'd covered almost any possible situation I thought. Still nothing else from others came forward. So what I wrote ended up becoming the defacto EAI drafts.

Around June 1998 I put out a call for comments. I get a few, but not many. I was very upset by this. I'd put out so much effort into creating something to have it almost completely ignored. I started the first of my rants. I was trying to get the VRML community to rally and start heckling the browser vendors to do something. The vendors just weren't interested in helping me out.

Siggraph came and went. I came away with a very uneasy feeling. I just knew something was not right. In the many conversations that I had with various people there, the feeling that I got was that those on the inside were not very happy with the consortium. Stuff was being done behind their backs. They were being told what to do and say with almost zero notice. This next generation VRML effort sprung from nowhere. It completely surprised just about everyone. Like stunned mullet, we sat there and let it all happen.

As time wore on, I became more and more frustrated. Despite pleas, rants and various forms of torture not seen since the Spanish Inquisition, not one browser was willing to put the effort into helping with the EAI spec. I could not get a commitment, either public or private to do an implementation. You see, the VRMLC has these very good rules in place. You can't create a specification without two independent implementations of the spec. I couldn't get one. The Java3D source came along and I took some time and people from work, and we implemented the EAI.

Again, disappointment struck. I'd been submitting the core code to the team managing the J3D effort. The core was an absolute mess. It would make the obfuscated C code contests look like a picnic in the park. There were code dependencies all over the place and grafting the EAI into it meant having to recode a lot of the code handling. Also, the browser, in its current form, was never going to be conformant to the VRML event model. We kept submitting the changes but they've never seen the light of day - at least in the official source code. All this wonderful hoopla about open source projects was being killed by the very organisation that was trying to prevent it. Open source lives by the openness of the project. Update often and deal with all the code. They failed.

During this time, and all through the later part of 1998, various little tidbits of information were filtering through. One of the most devastating was an email from the Cosmoplayer crew (now owned by Platinum). The gist of the email was "don't bother asking us for an implementation of the EAI because nobody is working on it. We're all focused on developing the NG browser". A little later I got another email, this time from a member of the VRMLC (now web3d) Consortium board of directors. In this email, it was basically stated that if my company did not join the consortium, it would have no say in the spec development process.

Well, after all of this, I finally decided that it was not worth taking the shit any more. I'd put a good six months of my life into developing that EAI spec. All I got from it was "thanks for coming, but piss off" from the people that mattered. Sure the VRB were being supportive, but they are effectively powerless in a consortium run by multi-billion dollar companies.

This was the killer. At the same time, my long term interest in Linux was starting to pay off. It was hitting the mainstream big time. At the same time it was pulling every other open sourced project with it. My big belief in this development culture and the hacker community was vindicated. We can and will produce better work in that sort of environment. The X11 saga served to re-inforce that view. The community will continue to prosper with or without a commercial consortium behind it. If the consortium screws up, they'll tell it where to go and make its own way.

All of these things finally came to a head on the 4th of Feb 1999. Sick and tired of the shitfights (or complete lack of anything at all), i sent off my Farewell to VRML. The fire and the passion for the dream were gone for me - at least as far as VRML is concerned. My efforts were being wasted as far as I could see. I'm here to make a difference. If I can't make a difference, I'll leave and find somewhere that I can.

I will continue to maintain and further that dream, just not involving VRML.

  Return to top

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