VRML Tutorials, Resources, and Books

VRML, the Virtual Reality Markup Language, was a 3D modeling language intended to be, like HTML, a web standard. The idea was that web browsers could support viewing interactive environments created in VRML, and the web would become a world of virtual reality sites.

The Sad History of VRML

VRML was first proposed back in 1994 at the very first World Wide Web conference. The first consumer-facing application that used the format was a 3D plugin to the Netscape browser, released in 1995.

In 1997 the language was revised and became an ISO standard. Though there was initially a lot of excitement around the format, development mostly stagnated. At the same time, 3D graphics creation and rendering boomed, led primarily with proprietary formats geared toward the development of video games and movie production.

One of the problems with the adoption of VRML was timing. When it was first introduced, home computers were relatively low powered — often lacking graphics processors — and connected to the web with extremely low-speed (dial up) internet connections.

The result is that, while there were a few projects that played around with the technology a bit, it never really took off as a viable platform. It's most useful application has been as a data-exchange format for 3D models, especially in CAD (Computer Aided Drafting) programs.

The dream of VRML as a widespread web standard never really panned out, and VRML is now a defunct standard. But it is still interesting for historical reasons. It's interesting to think about what the web might have been like if VR interaction had become as common as text and video.

VRML Versions

There were three major versions of the VRML language standard. The first was just VRML, or VRML 1. Then VRML 2.0. Then VRML 97. The basic ideas for all three versions are the same, but there are some non-compatible differences.

In this document, we have included tutorials and resources for all three versions.

VRML Tutorials

Reference and Other Learning Resources

  • Exporting VRML Files explains how to create VRML files using the popular 3D modeling tool SketchUp.
  • VRML Resources for Beginners has a collection of topic-specific VRML tutorials.
  • RcCad Gallery is the largest gallery of free VRML aircraft models on the internet.
  • Lighting Shapes is a VRML tutorial covering the different types of lights available.
  • A Two-Player VRML Mobile Game is a research paper exploring the use of VRML and Java for mobile gaming.
  • VRML Virtual Reality Modeling Language is the official page on the VRML standard from the World Wide Web consortium.
  • VRML97 Specification is the official specification document for the 1997 standard.
  • GeoVRML was an official Working Group of the Web3D Consortium. It was formed in 1998 to standardize the representation of geographical data. They have been largely inactive since 2002, but the website still has a lot of interesting information.
  • VRML Models is a large, categorized collection, with everything from buildings to people to platonic solids.

Books on VRML

Alternatives to VRML

After VRML faded out, a wide array of other programming languages and tools picked up where it left off. Below we take a look at six alternatives to VRML that continue to advance virtual reality and 3D programming, including its official successor X3D.

1. 3DMLW

3DMLW is an open-source project that's based on the XML markup language and is used to represent both 2D and 3D content on the internet. Within this project is both a scripting language for software design along with format support for rendering 3D models.

The language is a standard XML markup language that enables data exchange through its 3DMLW plugins, which contain scene libraries and graphics libraries. While it's rendering engine is based upon the industry standard OpenGL.

It's most common uses were for online 3D building renderings. Sadly this project has been inactive since 2009 and officially discounted as of 2016. The website is no longer active, but you can still view the repository code. The company behind 3DMLW, 3D Technologies R&D is still involved in the 3D rendering space but seems to have moved onto other projects.

Resources for Further Learning

2. COLLADA

COLLADA stands for Collaborative Design Activity and is an interchange format for 3D applications. It allows for the easy transportation of 3D assets between various applications. COLLADA enables the coding of various visual scenes like physics, animation, geometry, shading and effects, kinematics, and even more.

It was originally created by Sony but has since become a property of the Kronos Group, which now shares the copyright. The goal with the creation of CRONOS was to create a tool that could be used by the widest net of companies and industries.

What began as a simple format to transport data from one digital content creation tool to another has since grown to support a wide variety of uses. It's still used in a ton of existing applications like Adobe Photoshop, FreeCAD, CityEngine, ArcGIS, Google Earth, OpenSimulator, NASA Worldfind, and more. But, it's also used in various game engines, like Ardor#D, Blender Game Engine, GamePlay, and more.

Resources for Further Learning

3. O3D

O3D is an open source JavaScript API that's used to create 3D graphics that can run either in a web browser or within an XUL desktop application. This software was created by Google. It's highly versatile and can be used for games, 3D models, product demos, creating virtual online worlds, 3D advertisements, and much more.

It was originally built as a browser plugin but has since evolved into a Javascript library that's implemented on the top of WebGL. Google has stopped developing the O3D plugin and has instead placed it's efforts on implementing the Javascript library and WebGL combination.

One very unique feature is its ability to run within a web browser and has helped to bridge the gap between browser and desktop based 3D graphic applications. With built-in browser functionality, it can load, render, and transform in real time, which makes things like source code and application resources unnecessary. Being able to use this application in real-time makes the development and use much easier.

O3D is very versatile and its architecture allows for easy third-party development. This has led to the creation of custom functions like post rendering efforts, physics engines, and particle systems.

Resources for Further Learning

4. U3D

U3D stands for "Universal 3D." It's a compressed file format that can help to communicate and share 3D computer graphics data. It was created by the 3D Industry Forum, which was comprised of the companies HP, Intel, Adobe, Boeing, and more, with the goal to create a universal standard for the exchange and sharing of 3D data.

It's primarily used to create and share 3D graphics containing lines and points, triangle meshes, colors, and textures. You can also embed 3D metadata into your graphics and attach attributes to any 3D objects.

To help further the adoption of this 3D standard it also contains an open source library. One of the main applications of U3D is the ability to format and embed 3D objects into PDF documents. There are dozens of existing applications which support the embedding of U3D objects including Adobe Acrobat and Photoshop, ArchiCAD, iText, Bluebeam Revu, and more.

Resources for Further Learning

5. X3D

X3D is the official successor of VRML. It's an XML-based royalty-free open source file format that's used to display both 3D scenes and objects. It's quite feature-heavy and provides a system for the storage, retrieval, and playback of real-time 3D graphics. With its goal of being the new 3D standard for the web, it's built to be integrated with HTML5 and the latest XML standards. It even caters to existing VR environments such as Oculus Rift and Cardboards.

It's broken down into several sets of components, including, X3D core, X3D Interactive, X3D Interchange, X3D CADInterchange, X3D Immersive, and X3D Full.

On top of its existing functionality, there are several applications which parse and interpret the files to create separate open source projects. The most well-known of these is a 3D graphics and animator called Blender, and a virtual world client by Sun Microsystems called Project Wonderland.

It has a wide range of uses and has been modified for use within CAD and architecture platforms, training and simulation software, medical visualization, engineering processes, multimedia software, and much more.

Resources for Further Learning

6. WebGL

WebGL is a Javascript API that lets browsers render 3D graphics without any additional plugins. It's completely integrated with current web standards of existing browsers. However, the proper functioning of WebGL requires a sufficient GPU, independent of the browser.

WebGL evolved from a 3D Canvas experiment by Vladimir Vukicevic at Mozilla. In 2009 the WebGL working group was established by the Khronos Group, and released the initial version of WebGL in 2011.

It supports most existing browsers like Google Chrome, Mozilla Firefox, Safari, Opera, Internet Explorer, and Microsoft Edge. It even works across mobile browsers like Blackberry 10, Internet Explorer, Firefox for Mobile, Firefox OS, Google Chrome, and more.

In order to create additional functionality for WebGL, multiple libraries have been built, or are even ported into WebGL. Some high-level features include BabylonJS, three.js, A-Frame, PlayCanvas, and more. Recently, there has also been rapid development of game engines for WebGL.

Resources for Further Learning

As you can see the development and implementing of 3D modeling languages hasn't been a straightforward path. Still, 3D modeling languages have come a long way since the inception of VRML. With easier browser integration and dedicated open source development teams behind most the projects above, we can expect their use and overall application to grow even further into the future.


Further Reading and Resources

We have more guides, tutorials, and infographics related to coding and development:

When to Use JPEG, GIF & PNG

Confused about graphics file formats? Check out our infographic, When to Use JPEG, GIF & PNG.