VRML And The Dream Of Bringing 3D To The World Wide Web

You don’t have to be a Snow Crash or Tron fan to be familiar with the 3D craze that characterized the rise of the Internet and the World Wide Web in particular. From phrases like ‘surfing the information highway’ to sectioning websites as if to represent 3D real-life equivalents or sorting them by virtual streets like Geocities did, there has always been a strong push to make the Internet a more three-dimensional experience.

This is perhaps not so strange considering that we humans are ourselves 3D beings used to interacting in a 3D world. Surely we could make this fancy new ‘Internet’ technology do something more futuristic than connect us to text-based BBSes and serve HTML pages with heavily dithered images?

Enter VRML, the Virtual Reality Modelling Language, whose 3D worlds would surely herald the arrival of a new Internet era. Though neither VRML nor its successor X3D became a hit, they did leave their marks and are arguably the reason why we have technologies like WebGL today.

Inspired By Wheels

View of CyberTown's VRML-based Plaza and interface.
View of CyberTown’s VRML-based Plaza and interface.

With an internet-based virtual reality a highly topic concept, David Raggett from Hewlett Packard Laboratories submitted a paper back in 1994 titled Extending WWW to support Platform Independent Virtual Reality. This imagined a virtual reality layer to the WWW by the end of the millennium featuring head-mounted displays (HMDs) and tracking of a user’s limbs to fully integrate them into this virtual world with potentially realistic physics, sound, etc.

Describing these virtual worlds would be at the core of this VR push, with SGML (standardized general markup language) forming the basis of such world definitions, much like how HTML is a specialized form of SGML to define the structure and layout of a document. The newly minted VRML would thus merely define 3D worlds rather than 2D documents, with both defining elements and their positioning.

Although nothing revolutionary by itself – with games and 3D modeling software by then having done something similar with their own file formats to define 3D models and worlds for years already – VRML would provide a cross-platform, fully open and independent format that was specifically made for the purpose of this online VR experience.

All Starts With Polygons

The interesting thing about VRML is perhaps that it was pushing for a shared online 3D experience years before the first commercially successful MMORPG came onto the scene in 1999 in the form of EverCra^WEverQuest. VRML was pitched in 1994 and by 1995 the very RPG-like MMO experience called Colony City (later CyberTown) was launched. This created a virtual world in which members could hold jobs, earn virtual currency and purchase 3D homes and items that were all defined in VRML.

CyberTown endured until 2012 when the company behind it shut down, but there’s an ongoing push to revive CyberTown, with the revival project‘s GitHub project giving a glimpse at the preserved VRML-based worlds such as the home world. These .wrl files (short for ‘world’) use the VRML version 2.0 standard, which was the 1997 version of VRML that got turned into an ISO standard as ISO/IEC 14772:1997, with the specification itself being readily available over at the Web3D website.

As defined in part 1 of the specification, each VRML file:

  1. implicitly establishes a world coordinate space for all objects defined in the file, as well as all objects included by the file;
  2. explicitly defines and composes a set of 3D and multimedia objects;
  3. can specify hyperlinks to other files and applications;
  4. can define object behaviors.

VRML got combined with the Humanoid Animation (HAnim) standard to make realistic humanoid articulation and movement possible. Much like HTML documents, it are often the external resources like textures that determines the final look, but basic materials can be defined in VRML as well.

A very basic example of VRML is provided on the Wikipedia entry for a simple triangle:

#VRML V2.0 utf8

Shape {
  geometry IndexedFaceSet {
    coordIndex [ 0, 1, 2 ]
    coord Coordinate {
      point [ 0, 0, 0, 1, 0, 0, 0.5, 1, 0 ]
    }
  }
}

The interesting part comes when the material and texture appearance properties are set for a shape, albeit with basic lighting, no shaders and similar advanced features. All of these would see major improvements by the late 90s as consumer graphic cards became commonplace, especially during 1999 when we saw not only NVidia’s impressive RIVA TNT2, but especially its revolutionary Geforce 256 GPU with its hardware transform and lighting engine.

At this point video games began to look ever more realistic – even on PC – and with the release of new MMORPGs like 2004’s World of Warcraft and EverQuest II, the quirky and very dated look of VRML-based worlds made it clear that the ‘3D WWW’ dream in the browser was effectively dead and the future was these MMORPGs and kin.

It also seems fair to say that the fact that these games came with all of the assets on installation discs was a major boon over downloading hundreds of megabytes worth of assets via an anemic dial-up or crippled cable internet connection of the late 90s and early 2000s.

A Solution In Search Of A Problem

Virtual Environment Reality workstation technology in 1989 (helmet & gloves) (Credit: NASA)
Virtual Environment Reality workstation technology in 1989 (helmet & gloves) (Credit: NASA)

One could argue that science-fiction like Snow Crash provides us with the most ideal perspective of a VR layer on top of the Internet, where its Metaverse provides a tangible addition to reality. This same concept of a metaverse where the mind is no longer constrained by the limitations of the body is found in animated features like Ghost in the Shell and Serial Experiments Lain, each of which feature digitalized, virtual worlds that unchain the characters while creating whole new worlds previously considered impossible.

In these worlds characters can find information much faster, move through digital currents like fish in water, inhibit the digital brains of Internet-connected devices, and so on. Meanwhile back in reality the way we humans interact with virtual worlds has barely changed from the 1980s when NASA and others were experimenting with VR interface technologies.

Why move clumsily through a faux 3D environment with cumbersome input devices strapped to your body and perhaps a display pushed up to your noggin when you can just use mouse and keyboard to tappity-tap in some commands, click a hyperlink or two and observe the result on your very much 2D monitor?

As around 2003 the latest web-based VR world hype came in the form of Second Life, it followed mostly the same trajectory as CyberTown before it, while foregoing anything like VRML. After some companies briefly had a presence in Second Life before leaving, it became a ghost town just in time for Facebook to rename itself into Meta and try its hand at the very creatively named Metaverse. Despite throwing billions of dollars at trying to become at least as popular as CyberTown, it mostly left people with the feeling of what the point of such a ‘metaverse’ is.

Never Stop Dreaming

The Web3D Consortium was set up in 1997 along with the standardization of VRML, when it was called the VRML Consortium. Its stated goal is to develop and promote open standards for 3D content and services on the web. It currently pushes the somewhat newer X3D standard, which among other things supports multiple syntax types ranging from XML to classical VRML. It also supports modern physically based rendering (PBR), which puts it at least somewhat in the same ballpark as modern 3D graphic renderers.

Meanwhile there is the much more significant WebGL, which was originally created by Mozilla, but has since found a loving home at Khronos. This uses the canvas feature of HTML 5 to render 2D and 3D graphics using OpenGL ES, including support for shaders. The proposed WebGPU would merge the web browser and GPUs tighter still, albeit with its own shader language instead of the standard OpenGL ES one.

With these new technologies it would seem that rendering prettier 3D worlds in browsers has become easier than ever, even as the dream of bringing 3D worlds to the WWW seems as distant as the prospect of VR games taking the world of gaming by storm. Barring major human-computer interface advances, the WWW will remain at its optimum with keyboard and mouse, to browse through 2D documents. This alongside 3D game worlds controlled with the same keyboard and mouse, with said worlds rendered on a very much 2D surface.

Here’s to dreaming that maybe some of those exciting aspects of sci-fi will one day become science-fact, and to those who strive to make those dreams reality, in lieu of simply being given a nanotech-based Primer as a shortcut.

16 thoughts on “VRML And The Dream Of Bringing 3D To The World Wide Web

  1. I explored VRML at work/home back when. Still have a ‘Teach Yourself VRML 2’ book in my library. Seemed promising for mapping our SCADA system entities into a 3D environment. Ie. View a substation/power plant and ‘walk’ through it sort of interface with real-time data and controls updating the objects in the ‘world’. Never panned out into a real project as plain one-lines seemed to work just as well without the ‘fluff’.

  2. I modeled my cube in VRML back in the mid 90s, with the intention of copy pasting it to lay out our entire cube farm. I had the walls, desk, a couple cubes to represent a boxy monitor and computer, and a rudimentary desk chair with the 5 spoke legs. Not exactly a photorealistic rendering, but you knew what it was.

    My browser crawled to maybe display 0.5 frames per second. Trying to navigate with the mouse lagged so badly that I had to let go of it until the screen settled. Never bothered trying to render a second cubicle, let alone the farm.

    1. In the mid 90s your PC had roughly the compute power of a Pi Pico, if you were lucky. In 2000/2001 I learned CAD on the 200mhz Pentium machines that the school had for a computer lab. Maybe running NT 4.0? We took photos for the school website using a Sony that took a 3.5″ floppy disk.

  3. VRML is easy, here’s a model I just did

    Shape {
        appearance Appearance {
            material Material {
                diffuseColor 0 1 0
            }
        }
        geometry Transform {
            translation 0 0 0
            children [
                Shape {
                    appearance Appearance {
                        material Material {
                            diffuseColor 0 1 0
                        }
                    }
                    geometry Cylinder {
                        radius 0.5
                        height 3.2
                    }
                },
                Transform {
                    translation 2.1 0.4 0
                    children [
                        Shape {
                            appearance Appearance {
                                material Material {
                                    diffuseColor 0 1 0
                                }
                            }
                            geometry Box {
                                size 0.6 0.3 0.8
                            }
                        }
                    ]
                }
            ]
        }
    }
    
  4. Oh I remember wasting quite a few hours at work on a few VRML civilizations. It felt pretty futuristic back then in a Lawnmower Man kind of way. I remember having to schmooze around to get property to build my box shack on which had zero property rights lol. Ah the yonder days of the interwebs. I remember looking into it by checking out books from the library and then xml dropped and that was that.

  5. We had a customer in the mid-2000s that was fascinated with the idea of embedding a VRML tour of their facility. Went far enough that I remember walking around their facility with a tape measure & camera. Never actually made it to the website because it quickly became apparent that doing a half-decent job with basically notepad was not a cost effective use of anyone’s time.

  6. I played with it a little back in the day and even with a pretty beefy setup and a Nvidia grforce ddr, it seemed like anything but the most simple objects would run at the framerate of myst

  7. Unfortunately anything that’s related to viewing 3D is a failure from the economical pov: VRML, augumented reality, virtual reality, Google lens and alike, 3D headsets for games, and so on. People just don’t like it.
    Perhaps this techology/ideea sits in the uncanny valey for reality for us humans.

    1. wait till you find out that the poorly named vrchat is a massive success for the simple reason that it is actually the next “wild west” of the internet. its a weird place.

  8. I remember that I had a database assignment as an intern @ the local university. At one point, we would get an SGI Origin 200 server and 3 shiny 80MHz Silicon Graphics O2 workstation with Cosmoworlds installed on it. Being a 3D-studio for DOS user, I teached myself to use Cosmo Worlds, 3D modelled the whole unversity in it and started giving lessons as a student-teacher in 3D modeling. Those were the days…

  9. VRML had promise, but the successor was too stupid to go open source or provide clients outside of Windows – hardly a bastian of early adoption. Screwing Unix screwed them and X3D.

  10. I built a VRML website for Swiss Air, it was fun, but didn’t really match their esthetic, so it was on their server for a while but never had a link to it. We were able to build a floor of some hotel they owned.

    Any graphic that had the vertical as an even multiple of the horizontal play as a square animation was fun. I had a fountain and a fire using several intersecting animations with clear pixels and different prime numbers of frames so it would take a long time to repeat.

    VRML was nice and very simple to do by hand. And even easier if you made a spreadsheet to build the code.

    I recall that collision detection left something to be desired however.

  11. I remember trying it for fun.
    But it was already old by the time, and barely supported (it was a plug in for firefox back in the day if I remember correctly. Or Am I mixing with WebGL1?)
    Anyway, spending some time to create cool 3D environment for nobody to see it because the function is not implemented was stupid.
    So if I had to ask the user to download something, better ask them to download my DarkBasic/GM6 program that did 3D and anything else.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.