Contributors

VRMLworks

comp.lang.vrml FAQ Answers
1. The Basics

  1. What is VRML?

    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."

    1. An open standard: VRML was recognized as an international standard (ISO/IEC-14772-1:1997) by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) in December, 1997. There isn't space here to discuss the openness of the process, but ISO was so impressed by it that they're now studying it as a model for future standards development.
    2. 3D multimedia: Long before its official standardization VRML became the de facto standard for sharing and publishing data between CAD, animation, and 3D modeling programs; virtually every one of those programs now exports VRML or has a utility or plugin to convert its native file format to VRML. VRML is included or referenced in the upcoming MPEG-4 standard, Java3D, and in other developing standards.
    3. Shared virtual worlds: Being able to talk and work in a 3D shared virtual space was one of the earliest motivations of the VRML pioneers. The VRMLworks has a whole section on cyberspace that talks about the work that's being done to realize this vision.
    4. On the Internet: Unlike previous 3D applications, using the Internet to share 3D objects and scenes was built into VRML from the very beginning. The standard is even published in HTML.

  2. What kind of language is VRML?

    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".

  3. What's a VRML 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.

  4. What is the format of a VRML file?

    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.

  5. What is the MIME type of a VRML file?

    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.

  6. What filename extensions designate a VRML file?

    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.

  7. What is 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/.

  8. What's the difference between VRML 1.0 and VRML 97?

    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
    • Standard objects (cube, sphere, cone, cylinder, text)
    • Arbitrary objects (surfaces, linesets, pointsets)
    • Ability to fly through, walk through, examine scenes
    • Lights
    • Cameras (viewpoints)
    • Textures on objects
    • Clickable links
    • Define and reuse objects
    VRML 2.0

    All VRML 1.0 features plus

    • Animated objects
    • Switches
    • Sensors
    • Scripts (Java or JavaScript) for behaviors
    • Interpolators (color, position, orientation, etc.)
    • Extrusions
    • Background colors and textures
    • Sound (.wav and MIDI)
    • Animated textures
    • Event routing
    • Define and reuse objects and behaviors and effectively add new nodes to the language with PROTO and EXTERNPROTO

    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.

  9. What's the difference between VRML 2.0 and VRML 97?

    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.

  10. What do I need to view (or visit) a VRML world?

    You need a VRML browser. There are three kinds of VRML browsers:

    1. A stand-alone application. You can compile stand-alone applications that can view and manipulate VRML worlds with development kits such as Open Worlds, JVerge, WorldView for Developers, and Open Inventor. Many people will not want to or need to compile applications and will use one of the other two kinds of browsers.

    2. A helper application. A helper application has all the capabilities it needs to view and manipulate VRML worlds and doesn't need to be compiled. You generally identify a program like this to your web browser as a helper application, much as you do for a PostScript or Microsoft Word viewer, and whenever the web browser receives a link to a VRML world, it will launch the helper application. Many helper applications will call on the web browser when they activate a link for an HTML page. Two popular VRML helper applications are Sony's Community Place, and VRWave.

    3. A plugin. Plugins use the facilities provided by many web browsers to display VRML worlds in your web browser. The two most popular VRML plugins are WorldView, also called Microsoft VRML, for Microsoft Internet Explorer and Cosmo Player for Netscape Navigator and Communicator. Many versions of web browsers come with a VRML plugin pre-installed. There is a page at the VRMLworks that can help you see if you have a VRML plugin already, and check how it's working. If your web browser does not have a VRML plugin installed, you can download the plugin from Microsoft, Intervista, or Cosmo Software.

    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.

  11. What VRML browser is best?

    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:

  12. Is there a VRML browser for [Mac/Unix]?

    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.

  13. I downloaded a VRML world to study it and it seems to be in some kind of binary format. How do I find out about VRML binary format?

    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.

  14. What's the cheapest way to get started in VRML?

    1. Get a VRML browser. There is a list of browsers on the VRML Repository. There is a section in the VRMLworks on selecting, installing, and troubleshooting a VRML browser.

    2. Learn some VRML. There is a list of tutorials at the VRMLworks which lists not only tutorials but addresses of other lists of tutorials.

    3. Get a copy of the VRML spec from the VRML Consortium. There are free zip and archive files that contain the whole spec so that you can keep it on your own computer.

    4. Get a plain text editor. You probably already have one. On Windows machines, Notepad is fine. Microsoft Word and similar word-processing applications will not do the job unless they have a save to plain ASCII feature, since word processors generally insert some special characters that your VRML browser won't understand. If you're used to vi on Unix systems, there is a free vi clone for a number of platforms called vim.

    5. Get some public domain models and textures to put into your world. The VRMLworks has a list of model sources and a model search engine.

    6. Get some freeware tools that can help with your world building. The VRMLworks has a list of useful tools for world builders.

    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.

  15. What's the easiest way to get started in VRML?

    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.

  16. Where are the best places on the net to find out about VRML?

    The following sites are near the top of my personal, very long list:

    But you shouldn't neglect any of the sites on the VRMLworks' list of general references and periodicals on the net.

[line]

Did I leave something out on one of these questions that you need to know? Let me know.

-- Bob Crispen
-- Thursday, June 11, 1998