
comp.lang.vrml
FAQ Answers
1. The Basics
VRML, which is pronounced either "vee-are-em-ell" or "VER-mul", is an abbreviation for Virtual Reality Modeling Language. You might see some references to "Virtual Reality Markup Language", which is what VRML was called at the very beginning -- taking its cue from HTML: Hypertext Markup Language -- but it's been several years since people realized that our vision could be and ought to be a good deal bigger than simply marking up text to add on 3D capabilities.
VRML is, in the words of the VRML Consortium, "an open standard for 3D multimedia and shared virtual worlds on the Internet."
VRML isn't a general purpose programming language like C++, a script language like JavaScript or a page specification language like HTML. It's a scene description language that describes the geometry and behavior of a 3D scene or "world".
VRML "worlds" got their name from an original goal of VRML: shared virtual worlds on the Internet. VRML worlds can be single files or groups of files that load at the same time. They can range from simple objects to very complex scenes, but never include the entire geometry and all the features of the earth, so there's some hope of downloading them in your lifetime.
A VRML file is, until a compressed binary format is approved, a plain UTF-8 or ASCII (a subset of the UTF-8
character set) text file. A VRML file may be compressed using gzip,
a freely available utility, and may be created, viewed, and edited in any plain text editor.
The MIME type
of a VRML file is "model/vrml", although some servers may deliver it as the older MIME type
"x-world/x-vrml". The spec requires VRML browsers to support both MIME types. If you administer
a web server, you should use the official type, not the older "x-" type.
A VRML file ends in ".wrl". A VRML file name may end in ".wrl.gz"
or ".wrz" to indicate that the file has been gzipped, but this is not necessary, and browsers
are not required by the spec to support these file name extensions.
Blaxxun has a separate MIME type (application/x-ccpro) and "extension" (.bxx)
for its multi-user worlds. This lets users configure some other VRML plugin as their default VRML browser while
still using Blaxxun's CCPro browser for multi-user worlds. Although these files contain VRML, neither the content
of the files nor the MIME type nor the extension are governed by the VRML spec.
comp.lang.vrml?
The unmoderated USENET newsgroup comp.lang.vrml has been chartered for the purpose of discussions
on Virtual Reality Modeling Language. This newsgroup has largely superseded alt.lang.vrml, the first
newsgroup chartered for discussions of VRML. The frequently asked questions list for this newsgroup is kept at
http://vrmlworks.crispen.org/faq/.
Briefly, VRML 1.0 worlds are static. VRML 2.0 worlds can move and interact with the visitor to those worlds. Here's a summary:
| Version | Features |
|---|---|
| VRML 1.0 |
|
| VRML 2.0 |
All VRML 1.0 features plus
|
Another very important difference is that VRML 97 is an international spec approved by the International Organization for Standards: ISO/IEC-14772-1:1997 and VRML 1.0 isn't. Reading the specs is far from the easiest way to tell the difference, but it's the surest.
The first line of every VRML 97 file starts with:
#VRML V2.0 utf8
and the first line of every VRML 1.0 file starts with:
#VRML V1.0 ascii
Many, but not all, VRML 97 browsers will read and properly render VRML 1.0 files. No VRML 1.0 browser will read and properly render VRML 97 files.
There isn't any. But here's an important warning: there were several working draft specs developed between 1995 and the end of 1997. Some of those drafts are still out there, and they differ in small, but sometimes vital, ways from the final spec. Make sure you're asking or answering a question based on the final international spec (IS), not an earlier draft.
You need a VRML browser. There are three kinds of VRML browsers:
It is absolutely not necessary to use a particular VRML browser with a particular web browser, unless the VRML browser maker says that their VRML browser will not work with a particular web browser. And you aren't required to use the browser that came preinstalled in your web browser. Check the list of VRML browsers at the VRML Repository for alternatives.
As a general rule, VRML helpers and plugins are free. When there is a charge, the product may offer special capabilities that justify the cost. The following FAQ answer has information that may help you choose a browser.
The one you have now is best, and everybody already agrees with you. Please don't discuss this on comp.lang.vrml,
though questions about which browsers support a particular feature are fine. For information on VRML browsers,
the standard source is the VRML Repository's list of browsers.
You may also wish to check:
For most platforms, the answer is yes. The VRML repository has a list of browsers and the platforms they can run on. Alas, there is neither a web browser nor a VRML browser for my Radio Shack Color Computer. Just in case you miss this on the VRML Repository, Cosmo Software and Intervista both have VRML browsers for the Mac.
This is currently one of the most frequently asked questions on comp.lang.vrml, so you definitely
aren't alone. What's more, you're using a very admirable technique -- looking at what other people have done so
you can see how they've handled challenges you're currently facing.
The only thing you lack is a little bit of knowledge that isn't in the spec. Many VRML content developers want
to minimize download time for their visitors, so they compress the file using gzip, a free compression
utility which you can download for most platforms from the Free Software Foundation
at ftp://prep.ai.mit.edu/pub/gnu/. There is a utility called gunzip,
available from the same place, which will turn the file back into plain ASCII text.
To work around a bug in some web browsers, many authors choose to name those gzipped worlds "foo.wrl"
instead of "foo.wrl.gz", the default file name that gzip generates.
There is currently no compiled or binary format for VRML, but there is an active Working
Group in the VRML Consortium that's developing one.
vi on Unix systems, there is a free vi clone for a number of platforms called vim.
Total cost so far: zero. Many excellent VRML worlds have been built for the same price.
The very first thing you should spend money on is a good VRML book. The VRML Repository has a list of books, and the VRMLworks has some criteria for selecting a VRML book and reviews of current books.
Now that you've decided you love VRML and need to do more than your current tools allow, get some of the excellent modeling, conversion, and post-production tools that are out there. The VRML Repository has a list of tools ranging from freeware to several hundred US dollars.
Get an integrated VRML development system (called a modeler or a world builder) that has the capability to generate VRML models and behavior. There is a list of world building tools at the VRML Repository that can get you started. The VRMLworks has some criteria for selecting modelers to fit your experience and style.
Not long ago you had to learn VRML even to get started. Now it's perfectly possible to build very decent worlds without learning VRML just as you can now build perfectly good web pages without learning HTML.
As you grow in experience with VRML, you'll probably discover that many modelers produce worlds that are too big to render efficiently. You may also find that very subtle effects are beyond the resolution of some modeling tools. The VRMLworks has a list of tools that can help you in post-production to make your worlds fast, efficient, and eye-catching, and you may find that you'll need to learn some VRML to take that extra step toward realizing your artistic vision, in which case the answer to the previous question may be helpful, as may another section in the VRMLworks on a process for building VRML worlds.
The following sites are near the top of my personal, very long list:
![]()
Did I leave something out on one of these questions that you need to know? Let me know.
-- Bob Crispen
-- Thursday, June 11, 1998