1. What is VRML?

VRML stands for Virtual Reality Modeling Language. It is an ISO/IEC language developed by a combined effort of a group of companies and 3D designers and programmers for describing 3D scenes on the Web (fortunately from the beginning the effort converged to make it standard, no such luck with HTML until W3C was created). The documents have *.WRL extensions that can be viewed by a browser with an appropriate plugin or helper-application.

2. Why should we use VRML?

This language is gaining more and more acceptance as a technology for displaying 3D graphics because it's a simple and accessible way to create interactive worlds. Also an important feature is that VRML is encoded in UTF-8 (Unikey) format, similar to your web page's HTML encoded in ASCII, so you can make very detailed 3D scenes using very small files, that can be downloaded quickly - which is one of the main concerns when putting something on the internet. For example: you can make a 3D animation logo embedded on your homepage that takes much less time to be downloaded than an usual animated gif.

3. How do we get started with VRML?

You can use any text editor to write your VRML code, there are also a great number of programs available in the Web for different platforms, some for free and others pretty expensive. For viewing your work, as I said before, you'll need a browser with a plugin, there's quite a variety that you can choose from for different platforms. If you have some programming knowledge learning VRML will be piece of cake, if not it still pretty easy.

4. Do I have to compile my VRML code?

No. Unlike Java, VRML doesn't need to be compiled at all. That's why it requires a plugin for viewing it.

5. Where can I find the specification for VRML?

You can find it at the VRML Consortium site (http://www.vrml.org).

6. What composes a VRML document?

The structure of the VRML document is a header, scene graphs, prototypes, routes and comments. It's very important to put the header on the first line of all of your documents preceded by a # character. When the browser starts reading them it will search for the VRML's version you used, so get it right otherwise you might not get a correct response from the browser.

For version 2.0: #VRML V2.0 utf8.
And for version 1.0: #VRML V1.0 ascii.

7. What are scene graphs in VRML?

Scene graphs are a hierarchical representation of all the objects, visual and/or audio, that composes your virtual world. The representation is made through node statements that have fields and values to be determined, similar to HTML tags and their parameters.

8. What are nodes in VRML?

Nodes are the basic blocks for creating your scene. Each kind of node has specific field, values and children statements that are always inserted between { }, so never forget to close your nodes.

9. What are primitives in VRML?

Primitives are basic geometric shapes that are built into the language. The shapes available are: Sphere, Box, Cylinder and Cone. You should abuse these nodes because they are defined in a small number of lines, keeping the size of your document at a minimum.

10. How can we insert comments in VRML?

Just put the # character before your comment line, just like // for JavaScript. Remember that if your comment has two lines, you must put the # before each line!

Download Interview PDF

11. How to specify the coordinates in VRML?

Tridimensional shapes and routes are described using three coordinates X, Y and Z. Cutting down simple the X-axis is left to right, the Y-axis down to up and the Z-axis is back to front. The Z-axis requires a further abstraction if you want to comprehend it in a theoretical basis, but talking practical it's just the stretching of the image.

The unit for describing the distances in your virtual world is relative, but almost everyone uses the meter unit. Of course if your making a model of a molecule you're not going to use meters but rather Angstrom.

Angles' unit is radians, this confuses some but after a while you'll get around it easily. Just remember that pi = 180ยบ, which is approximately 3,1416 rad, so pick up your calculator and divide, nothing more to it.

12. Is VRML case sensitive?

Yes! The most common errors are from mis-typed case letters.

13. Are there many differences between VRML 1.0 and 2.0?

Yes, but no worries, the great majority of VRML 2.0 plugins will read your 1.0 code. Just don't forget to specify in the header which version you used.

14. Why do worlds show up as text when put them on server?

This happens if the Web server has not been configured to deliver the VRML MIME type. What happens when the MIME type has been set up is that when anyone requests the file from the server, the server puts a little message at the beginning saying that the file is VRML, not text.

15. Where are the best worlds?

It can be a challenge finding great VRML worlds -- compare it to the challenge of finding cool HTML pages a couple of years ago.

16. How to create VRML?

If you know the VRML language, you can actually create VRML in a text editor like notepad or just like HTML.

17. Do we need to compile VRML files?

No, you don't need to compile VRML files (just like HTML). When you view the source on worlds that have been compressed with gzip, you may think that they have been compiled, but they have only been compressed. VRML can be created using any text editor (as long as you know the syntax of the language!).

18. How to view VRML worlds?

To view VRML, you need a VRML browser, helper application or plug-in. The most commonly-used VRML 1.0 browser is Netscape's Live3D, which is available on Windows and PowerMac machines. Their are several VRML 2.0 browsers available in beta form. They include converters that let you view VRML 1.0 worlds as well. VRML 2.0 browsers include Dimension X's Liquid Reality, Silicon Graphics' Cosmo Player and Sony's Community Place (formerly known as Cyber Passage).

19. How to have a VRML world in a frame link to other frames?

In VRML 2.0, you can use the parameters field of the Anchor node with the value "target=frame_name", where frame_name is the name of the frame to be targeted by the link. Note: In VRML 2.0 Draft 2 and earlier, the parameters field was previously called parameter.

Netscape's Live3D VRML 1.0 browser has an extension to VRML 1.0 that lets you target frames. The VRML navigation bar in VRMLSite uses this extension. You can add an extra field called target and give it an SFString value of the name of the frame. In addition, you will want to use a fields parameter in the WWWAnchor node.

20. How to add behaviors without hand editing?

At this point, there are few VRML 2.0 authoring tools available that allow significant behaviors, so you're pretty much stuck using text editors. SGI's Cosmo Create includes some capability. Also, Paragraph's Virtual Home Space Builder provides the capability of creating VRML 2.0 compliant animated textures. Look for VRML 2.0 behavior-authoring software soon from Superscape.

21. How to make a VRML world have a small file size?

There is one simple way to drastically reduce the file size of your VRML world. You can reduce the file size by 80-90%!! You just need to compress it using GZIP.

GZIP is available for almost all available Unix platforms, plus other machines. Do a search at your favorite search engine to find a version for your machine.

In Unix, if you have gzip, you only need to type: gzip filename.wrl, and your file will become compressed and have the new filename filename.wrl.gz.

22. How to navigate through a VRML world?

There are three kinds of modes that most browsers have: fly, walk and point but each browser uses slightly different names or styles. In fly-like modes, it's like you are piloting a plane through a 3D space, arrow keys or mouse direction adjusts the direction you're headed in, and you also can move forward and (sometimes) backwards. Walk mode lets you move around on an imaginary flat surface, and you have to press special keys to move up and down.

Point mode is the best (maybe only?) excuse to use a mouse in navigating a VRML environment. You click on an object you see, and then you move towards it.

Another feature of VRML is that you can have preset viewpoints that a world creator positions to let you look at special vistas or views in the world. Think of it as a movie director positioning a camera while filming a scene. You can usually switch between these by right-clicking and making a selection from a pop-up menu. In addition, there can be links inside the VRML world that link to other parts of the world -- other viewpoints!

It takes a bit of getting used to, but you'll gradually get the hang of it.

23. How to combine VRML with Java and JavaScript?

There are several ways to combine VRML with Java and JavaScript. Netscape Live3D users can use Netscape's LiveConnect technology with Live3D to affect a VRML world in an HTML page from a JavaScript function or a Java applet. Conceivably, other browser developers could add LiveConnect interfaces.

In addition, VRML 2.0 has APIs for both Java and JavaScript, so that Java and JavaScript can be referenced through Script nodes. The Java and JavaScript can drive interactivity and other advanced features in the VRML world via the Script node and ROUTE-ing. Sony's Community Place VRML 2.0 browser supports the VRML 2.0 Java API. SGI's Cosmo Player VRML 2.0 browser supports the VRML 2.0 JavaScript API.

Other browsers may have their own Java APIs. Dimension X's Liquid Reality VRML 2.0 browser has its own Java API.

24. How to view VRML on a Mac?

There are now several browsers available for Macintoshes, and not just for PowerMacs either. Browsers for 68K Macs include ExpressVR, a Netscape plug-in, and Virtus Voyager, a stand-alone VRML viewer or helper application.

Netscape's Live3D for PowerMac is gradually becoming stable. Other PowerMac software includes ExpressVR, Voyager, Whurlwind, and Equinox.

All of the previous are VRML 1.0 browsers. The new kid on the block is RealSpace, with yes, a VRML 2.0 browser for PowerMacs.

Download Interview PDF

25. How to put VRML on a Web server?

You can FTP your VRML file onto a Web server, just as you would with an HTML file. The Web server will serve your file properly only if the MIME type is set up properly in the server.

The MIME type for VRML is "x-world/x-vrml". If you see a pile of text appear when you try to access your world from your server, that means the MIME type is not set up properly. E-mail your webmaster and ask them to set up the MIME type "x-world/x-vrml" for filename extension ".wrl".

In addition, to serve VRML files that have been compressed with GZIP properly, ask your webmaster to set up the Content Encoding type "x-gzip" for filename extension ".gz" (if it's not already set up).