VRML which stands for the Virtual Reality Modelling Language, is the international standard for "Virtual Reality" - 3D content on the internet/web. The VRML standard was first adopted back in October 1994 and has since undergone several version updates (VRML 1.0, VRML 2.0, VRML97 and most recently the X3D Draft Specification) to enable more complex and interactive content to be displayed. For a more thorough description of the VRML standard (tech docs) take a look at the VRML International Standard.
In essence VRML is the format or language that is used/required for 3D interactive worlds. It specifies how such worlds should be described so as to work smoothly on the web as interactive 3D content.
The VRML format can be used in either human readable text format form or in a compressed (non human readable) format. As the compressed format (often seen as worldname.wrl.gz) makes for smaller file sizes and hence faster downloads, it is more commonly seen on the WWW.
Should I learn the VRML format ?
That depends, VRML is currently much like HTML was in the early days of the web. Back then it was not uncommon to see pages being written by hand in HTML. However as we have seen with HTML, over time tools have been developed to enable development of web pages using interactive graphical tools that don't require the developer to have any knowledge of the underlying HTML format.
At the moment most of the interactive VRML pages that we see on the web are hand written. However easy to use interactive tools are now beginning to appear for VRML development (eg. VRMLmagic). It is likely that (as was the case with HTML) as time goes by, the need for a detailed knowledge of the specifics of the VRML standard itself will become less relevant (and experience with the higher level world building tools will become a more useful skill).
VRML Web Pages
A VRML web page is the textual description (sometimes compressed for efficiency) of a 3D world and the items that make it up. This description includes items like backgrounds, objects (ie. geometric structures), lights and cameras (ie. fixed viewpoints). This world is described textually using the rules of the VRML format. Such VRML worlds can also include interactive content (eg. objects can interact with users and move, fade, make sounds etc). When you view a VRML world in a webbrowser what you see is the browsers representation of the world as described in the VRML file.
It is usually the case that a VRML web page (or world) is made up of a series of files. The main file being the descriptive world file (ie. the worldname.wrl or worldname.wrl.gz file) and other files such as images (used for texture mapping onto objects) or sound files (used for playback in the browser).
How do VRML Web Pages work?
Having developed your VRML world (either by hand writing it or using a tool like VRMLmagic), it functions as interactive 3D content on the web based on the following system:
- From within a browser application, the user clicks a VRML world file (eg. worldname.wrl)
- Browser identifies filetype of the main world file (eg worldname.wrl) as a VRML world
- Browser recognizes that it cannot directly display VRML worlds so it seeks a plug-in application to display the VRML content
- If user has a VRML plug-in then that plug-in application takes control of the window area specified and begins to load the VRML world
- The VRML file (containing the description of the world) is parsed (read through) by the plug-in and the geometry/lighting etc as described in the file is constructed and a 3D view of that world is displayed in the window area controlled by the VRML plug-in.
- The user can then view and interact with items in the 3D world (as it is displayed by the plug-in application)
How can I make VRML Web Pages?
There are several options for building VRML worlds. In simple terms they break down into two areas:
- Use a Development Tool (eg. VRMLmagic) - on the positive side these are easy to use, give you easy access to the most powerful features of VRML and allow you to begin developing immediately without needing to learn the complex details of the VRML format.
- Hand Write a VRML File - this is clearly the best way to learn VRML development, however it will take you a lot longer, but if your objective is to learn the details of the format then hand writing may be for you. Keep in mind that VRML is a relatively complex format and to access many of the powerful features (eg. animation and interaction) you will also need to have experience with programming and/or scripting.
If you're planning on hand-writing your VRML worlds, we highly recommend that you get a hold of some of the reference books on writing VRML (see the Other Useful VRML References section), in fact these books are recommended reading for anyone who wants to delve into the workings of VRML.
As a general rule its probably best to use Development tools where possible as they generate reliable VRML and enable you to access many features that are difficult to implement by hand. If you're looking for the best of the development tools, they fall into one of three categories:
- Enhanced Text Editors - As VRML is a text based format, most of the current VRML authoring tools are basically enhanced Text editors, allowing you to write your world by using some "enhanced" text editing features that enable you to textually add differing node types from within the text editing system. These aren't hugely different to hand writing your world but they do offer some features that make it quicker and easier to do the actual writing.
- Static Object Modelling Tools - Many/Most of the object modelling and CAD tools now support the VRML file format as an output option. These tools are excellent for constructing the geometric shape of complex objects, however they do not target VRML and as a result they are really only useful for making static objects (ie. they can't access the interactivity, multi views etc that VRML can make use of).
- Interactive VRML Specific Development Tools - These tools are aimed at making interactive VRML content and as such are the most likely to be of use (eg. VRMLmagic provides an interactive 3D workspace for you to lay out your world and then you can simply add interactions by choosing from sets of available pre-defined actions. When compared to the complex VRML work, not to mention the scripting, needed to do this by hand, these tools will certainly make building interactive 3D VRML files easier and much faster.
What can I use VRML Web Pages for ?
VRML enables you to create interactive 3D content, for example you could make something as simple as a 3D heading or you could create large complex virtual reality style environments. The VRML format itself has no limitations on size or type of 3D content, so you can use it to make whatever type of 3D content you choose. Of course if you are planning to build large/complex VRML environments or worlds, its probably worth looking into the available VRML development tools to help with this (as its a huge task to hand write large complex worlds).
VRML can be used for a range of possibilities, ranging from its original objective (ie. virtual reality on the web), where you specify a "world" in VRML and the user is able to walk around inside that virtual world. But its also very suited to smaller 3D elements (eg. 3D heading that spins or interactive 3D navigation bars) for web pages.
Although you can simply use VRML to create and view your own 3D worlds locally (on your personal machine), the big advantage of VRML is that it is the internationally adopted standard for 3D content on the web and as such you can publish your VRML worlds for viewing on the internet.
VRML : A Brief History
Although 3D graphics has been around for a long time, this brief history will look purely at the time in which VRML has existed. A more thorough description of the early events can be found in the VRML 2.0 Handbook (and various newer versions, see Other Useful VRML References below). It is also important to note that during this period we saw developments in both 3D graphics rendering software and hardware which in turn enabled the interactive display of more complex worlds.
May 1994 - First Annual World Wide Web Conference in Geneva
- Mark Pesce and Tony Parisi propose a virtual reality interface to the Web
- VRML (Virtual Reality Markup Language) proposed as name for scene description language for the Web
- After initial concept is released, a lot of enthusiastic development leads to adoption of an existing scene description format (one that could be easily altered to suit the purpose) as the basis for the new VRML format.
- VRML name altered to Virtual Reality Modeling Language
October 1994 - Second World Wide Web Conference
- VRML 1.0 Draft Specification released (based on the SGI Open Inventor 3D metafile format)
- VRML 1.0 provides for describing static worlds which a user can move within/around (ie. Virtual Reality)
- Development begins of parsers to take VRML text format and build 3D content usable in browser application.
- Development begins of various "browser" - applications capable of displaying the VRML content described.
January 1995 -
- QvLib (developed by Paul Strauss) released - public domain parser for reading VRML files and producing a format usable by browsers
- SGI release WebSpace Navigator (browser capable of interpreting and displaying entire VRML 1.0 standard)
- WebSpace Navigator begins porting to numerous platforms (not just SGI IRIX)
April 1995 -
- TGS & SGI release WebSpace for multi-platforms, first standalone VRML browser.
May 1995 -
- NewTek LightWave 4.0 adds VRML export feature, is first major high-end 3D application to do so. This makes using complex models in VRML worlds possible.
June 1995 -
- Intervista releases WorldView, first VRML plug-in (vs standalone app).
July 1995 -
- Other (mostly free) converters from OBJ & 3DS (object formats) to VRML become available.
August 1995 -
- Paper Software releases WebFX, major improvement over existing VRML plug-ins, especially in terms of performance on low-end systems (ie: software render).
- SIGGRAPH '95 includes the first tutorial course on VRML. Significant interest shown by many parties.
September 1995 -
- WebSpace now bundled with IRIX on new SGI systems.
- 3D Studio R4 adds VRML export, brings VRML to a wider audience of non-SGI users.
- SGI Release WebSpace Author - first authoring tool enabling users to iteractively construct and output VRML worlds
- VAG (VRML Architecture Group) - consisting of eight technical experts - meets to discuss new version of VRML, seeks proposals from interested parties
January 1996 -
- Proposals for VRML 2.0 become public, including:
- Moving Worlds from SGI
- HoloWeb from Sun Microsystems
- ActiveVRML from Microsoft
- Out of This World from Apple
- others...
February 1996 -
- Netscape buys WebFX, renames it Live3D, and bundles it with Netscape 3.0 as part of the optional "standard plus components" installation.
- Moving Worlds from SGI receives 70% of votes in web based polling for VRML 2.0 standard
March 1996 -
- Alias/Wavefront PowerAnimator 7.0 adds VRML export.
- VAG adopts Moving Worlds as standard for VRML 2.0
- Moving Worlds standard adds the following features:
- Enhanced Static Worlds (more object types and features)
- Interaction (sensors and ability to detect user input and react to it)
- Animation and Behaviour Scripting
- Prototyping new VRML Objects
June 1996 -
- SGI releases CosmoPlayer, first Moving Worlds (ie. VRML 2.0) plug-in.
August 1996 -
- Moving Worlds becomes VRML 2.0
- Browsers now becoming more readily available on multiple platforms, and although most now implement the full VRML 1.0 standard, few implement the entire VRML 2.0 standard. Most implement the key features without implementing the scripting and interactivity features.
November 1996 -
- SGI uses VRML in "out-of-box experience" demo on new O2 systems, gets lots of attention for VRML.
December 1996 -
- VRML Consortium Formed
- VAG replaced by VRML Consortium and VRML Review Board (VRB)
March 1997 -
- WorldView now bundled with Internet Explorer 4.0.
April 1997 -
- SGI becomes the first major company to use VRML on its web site for more than just demos, ie: for real product information (Living O2, Living Octane etc).
June 1997 -
- CosmoPlayer now bundled with Netscape 4.0 in place of Live3D.
July 1997 -
- NASA uses VRML on its web site for 3D visualization of the Mars Pathfinder mission and Sojourner landing site. During the first few days of the mission this web site is among the most heavily accessed of all time, and VRML gets a lot of positive exposure from this. NASA goes on to use VRML in many parts of its web site.
November 1997 -
- Blaxxun releases Community Client 3D (CC3D/CCpro), new *multi-user* VRML plug-in and related "virtual community" server software.
December 1997 -
- VRML97 replaced VRML 2.0 and was formally released as International Standard ISO/IEC 14772
- VRML97 is almost identical to VRML 2.0 with only minor document/standard related changes
- SGI releases CosmoPlayer 2.0, major new version with much better navigation interface and Java support for external control.
- ZDNet, one of the largest online news sites, tries using VRML to present some of its content. Mixed results.
- VRML97 Part 2 including the EAI (External Authoring Interface) added to VRML97 standard as ISO/IEC 14772-2:2002.
March 1998 -
- SGI releases CosmoWorlds, first major VRML-specific 3D content creation tool (vs exporters from animation packages).
May 1998 -
- FreeWRL project started to deliver a VRML plug-in for Linux and other non-SGI UNIX systems.
August 1998 -
- Dark times for SGI. Under immense financial pressure, SGI sells off Cosmo Software to Platinum as part of overall SGI re-structuring. At about the same time Platinum also buys Intervista (WorldView).
- CosmoPlayer no longer bundled with Netscape due to change of ownership. Same for WorldView on IE.
February 1999 -
- Platinum announces tentative plans to release the code of CosmoPlayer as open source, but Computer Associates buys Platinum before this happens. This was the darkest point for VRML.
- Parallel Graphics releases first beta of Cortona, takes up VRML vanguard role abdicated by SGI.
March 1999 -
- Blaxxun releases major new version of their muti-user VRML plug-in, under the new name blaxxun Contact (lower-case blaxxun).
April 1999 -
- X3D working group formed, interest in VRML/X3D starts to grow again.
May 1999 -
- The population of Cybertown (blaxxun Contact's primary multi-user virtual world) passes 100,000 residents.
June 2000 -
- Shout3D demonstrates pure-Java implementation of simple VRML-subset viewer (no VRML plug-in required, only Java). This starts a focus on making X3D less heavyweight to make it easier to implement viewers.
Late 2000 -
- Loader available for reading/writing VRML files to Java3D scene graphs. This goes on to become the Xj3D prototype implementation of an X3D viewer.
Throughout 2001 -
- Much discussion and focus on the future of VRML/X3D and exactly where it fits with Java/Java3D, MPEG-4 etc. Idea of X3D "profiles" and subsetting of full VRML functionality emerges, partly to allow simpler implementation of plug-ins/viewers in restricted situations (eg: MPEG-4), and also to allow faster advancement of extensions (eg: multi-texturing, shadows, shaders etc) to keep up with 3D games.
February 2002 -
- First draft of X3D released at Web3D 2002 Symposium.
July 2002 -
- X3D Standard (Extensible 3D) working draft released.
- X3D is intended to enable the expansion of the 3D VRML standard along similar lines to the XML/HTML relationship.
- This more flexible and extendable standard also enables links with other major standards such as XML, Java3D, MPEG4 etc (click here for our X3D information page)
- Intel, the last remaining major non-Web3D member, joins the Web3D consortium and throws its support behind open standards for 3D graphics on the web, initiating the CAD-3D working group to define a successor to X3D with plans to bring some of the Intel/Macromedia Shockwave3D technology to the open standards world.
December 2002 -
- BitManagement Software buys blaxxun Contact, renames it BS Contact.
June 2003 -
- BS Contact adds X3D support, and is also released in first 2D/3D MPEG-4 player form (BS Contact MPEG-4).
The Future for VRML
With the development of X3D (the new version of VRML, for more info on X3D click here) currently underway, we are just now beginning to see the next step in the evolution of 3D web content. The title VRML may fade away but interactive 3D web content is now, for the first time, poised to become more than just a niche part of the web. Many of the issues that have held 3D back in the past are now either solved or being resolved and the future looks bright for VRML (in the form of its newest version X3D). We know that there is demand out there for 3D content and with the increasing availability of high end 3D graphics hardware, the issues of 3D performance are becoming less relevant. With todays mainstream machines now more than capable of displaying the richest X3D/VRML worlds.
We are also beginning to see X3D/VRML development tools becoming available. Bringing VRML/X3D development to the masses. History has shown us the enormous growth that good development tools can make, bringing a whole new set of developers into the market.
Given all of these developments and the general demand that the public has for 3D content, we only need to look at the 3D games industry for an example of this, the future for X3D/VRML is very bright.
Other Useful VRML References
Book / Document References