Floppy's VRML97 Tutorial VRML97 Tutorial

This page now covers 99% of the VRML spec. Part 1 introduces VRML and shows you how to create simple objects. Part 2 covers more advanced objects, and how to make them more realistic, while Part 3 covers animation and interaction, showing how you can make your worlds more exciting. Part 4 unleashes the power of VRML scripting with ECMAScript, bringing more complex behaviours to your worlds. Part 5 covers some even more complex scripting with Java, bringing the power of this fully-featured programming language to your worlds. The tutorial is an ongoing effort - if there is information missing, it's just because I haven't covered it yet :)

The official version of this tutorial is at Floppy's Web3D Guide, at http://web3d.vapourtech.com/. If you're not looking at it there, it might have been updated since. Legal information related to acceptable use of this tutorial is laid out in the legal page of the main site. If you're considering redistributing this material, please read it.

This tutorial is not intended as a be-all and end-all reference guide. It's only meant to get you started. Once you've got the basics from here, I suggest you go away and learn the detail, either from the specification or from the 'Annotated VRML 2.0 Reference Manual'. Alternatively, you can learn more from the Workshop and Library sections of the Guide. If you want to learn offline, you might be interested to know that you can download a zipfile of the entire tutorial. There is more information at the bottom of the page.

Please note, all the examples in this tutorial (and everything else on this site) are tested with Netscape 4.75 and Cosmo Player 2.1 rendering with OpenGL. I don't have time to try the examples out in other browsers, so if there are any problems, let me know. If something doesn't seem right, just let me know. If you do contact me, and you are not using the official version of this tutorial, please tell me the URL of the version you are using.

Select an alternative language:

Part 1: The Basics
1.1 Getting Started
The very first things you need to know to get started, including the basic file structure.
1.2 In The Beginning...
Covering the basic WorldInfo and Shape nodes, and how to get a simple box in your world.
1.3 Spin Spin Sugar
Co-ordinate systems, axes, and transformations.
1.4 Keeping Up Appearances
Appearances, materials and textures; changing the look of your objects.
1.5 The Shape Of Things To Come
Basic geometry nodes: boxes, spheres, cones, cylinders and text.
1.6 Get Off My Land!
Escaping to the outside world.
1.7 Techy Stuff
Essentials of fields, events, routes, and prototypes.
Part 2: Adding Realism
2.1 I Can See My House From Here!
Adding cameras to your scenes.
2.2 Over The Hills And Far Away...
Giving your world some distance with background and fog.
2.3 The Church of Noise
Adding sound and music to your worlds.
2.4 Objects Of Desire
Advanced shapes, like Extrusions, IndexedFaceSets, and ElevationGrids.
2.5 Are You Normal?
Normals, colours, and so on for the advanced objects.
2.6 Light Of My Life
Adding proper lighting to your worlds, and making it work, too.
2.7 Slightly Rippled, With A Flat Underside
Advanced texturing with textureCoordinates and TextureTransforms.
2.8 Move Over I'll Drive
Customising your world with the NavigationInfo node.
2.9 Let's Twist Again...
Using the Billboard node to create user-facing geometry, and some more uses of the humble Transform node.
Part 3: Bringing Your Worlds To Life
3.1 More Power, Igor!
A review of the basics of VRML animation.
3.2 There's Klingons On The Starboard Bow...
Using environmental sensors.
3.3 It's Rude To Point
Getting input with pointing-device sensors.
3.4 Inbetweener
How to use interpolators for animation.
3.5 A Change Is As Good As A Rest
Changing the appearance of your world with bindable nodes.
3.6 It's Life, Jim, But Not As We Know It
Creating advanced behaviours with Script nodes.
3.7 Smack My Switch Up
Changing the world around with Switch nodes.
3.8 These Are Small, But Those Are Far Away...
Using LOD nodes to add different levels of detail to your worlds.
Part 4: Scripting with ECMAscript
4.1 More Tea, Vicar?
An introduction to programming with ECMAScript.
4.2 Loop The Loop
More about ECMAScript statements.
4.3 Bodily Functions
The basic VRML scripting framework.
4.4 Unidentified Flying Objects
A look at Objects in ECMAScript, and how VRML97 uses them.
4.5 As If By Magic
Using the Browser object, and how to create objects from thin air.
Part 5: Java - Scripts for the Power-Hungry
5.1 Hold On To Your Hat
Welcome to Java! How to write, compile and use Java in VRML worlds.
5.2 Plug Me In
Moving on - how to write a simple VRML Script in Java.
A Quick Node Reference
The full syntax of every node.
B File Structure
A summary of the VRML file structure, explaining what can go where.
C Index
Find the tutorial for any language element
D Download Tutorial
If you want to read this tutorial offline, you can download a zipfile of the whole lot.