It is not just HyperText,
And it is more than HyperMedia.
Technology gives us HyperMultiMedia.

Joe's Garage .wrl at
hypertext, hypermedia. hypermultimedia...


February 27, 1999. So someone somehistory said, "Just let me run a simple program alongside the viewer and I can really kick some butt in there by adding some intelligence to the interface. A standard BASIC will have all I need, and if we just have some good handles to the doc and scene layouts - really, its the simplist way!"
As you might expect, more seasoned heads looked well past this simple plea and have developed this idea into the current ECMAScript and compliant browsers.

The way I am understanding history, Netscape sidestepped other client-side scripting with the JavaScript implementation, which was then countered by MicroSoft JScript and others, which were advanced in VRMLScript, then standardized to ECMAScript. By inspection of the hardcopy ECMAScript Language Specification I am seeing no special consideration given to any web browser 2D or 3D OMs and a clear set of native objects using millisecond timing.

That is not to say it is impossible to somehow embed a BASIC program in an ECMAScript host environment, because, as you might expect,
a method is still a function associated with an object via a property.
This Definition makes me think I have a chance of learning this as the main external scripting language for communicating with the document and scene object models. The cause in this is noble - to better understand the underpinning technologies for adding custom interactivity to business logic and presentation techniques. And these days, this standard scripting language leads to the highest forms of scriptable Java and C++.

However, now, back at the final emergence of the need to be led in this quest.
If I can just figure how to fix the failure:
[ Info] [ rotation_toy.wrl ] : Script execution error: Unable to convert to object in Script node starting at or near line 122 !!!

January 8, 1999. I started today looking at the faq from the Bob and Kelly vrmlworks faq and tried using a newer object syntax on the hypermultimedia index.htm page.
Until yesterday's introduction of our hypermultimedia logo, in which I used the the older style embed syntax, I used the simplist most reliable possible front page. If the object tag doesn't work for you, please look at this which may work better.

I am also dividing up Joe's Garage into 98 and 99, so everything doesn't need to load at the same time.
Of course this marks a step in my promotion of this hypermultimedia style when analyzing content and presentation techniques for your most important products.
Actually, this is about 6 months from the opening of so this act of some arbirary categorization of this communication may become a semi-annual event.

Regarding the current hypermultimedia logo, this finally represents something I can use as a "business card" projection. Please observe and interact from each viewpoint.
It certainly does not convey the full potential of hypermultimedia but now, at least, does show me that a simple 3D show can hint at one aspect of using this part of the hypermultimedia technology and state of mind. For multiple fun, also look at many logos which should stress your processor and display hardware nicely.

January 7, 1999. One other thing you might notice is that I am using gzip for several of the .wrl files. This is supposed to work 100%, but it does mean some thinking and extra steps for me.

For some reason I had a hard time figuring out how to gzip and ungzip. Maybe because it is sort of automatic, and maybe because I had some trouble with it (and zip) once and didn't want to take the time to figure it out.

I got tense when I would try to read some VRML source and found that it was compressed. I finally downloaded the recommeded gzip program. This was a dos program that installed easily and left me with a gzip.exe icon. It let me drag and drop a file to gzip. The program takes the file, does the compression, then replaces the file with a derived dos filename with the .GZ filetype extension.

The way to use this is to open some file manager, drag and drop the target file, then observe the filename that comes back as the file manager display is updated. The file name will end up shortened, and all caps, with the .GZ file type.

File compression is great for files like VRML source code, because VRML source code consists of a lot of strings of letters and numbers that may be duplicated many times. Compression works when the compressor can find a second string that is identical to the first string. When this happens, the second string can be replaced by a relatively short token version of the first string, thereby reducing the file size. Since a VRML file may have many instances of the string Transform { rotation this technique can reduce file size dramatically.

Now I could do my duty to the bandwidth and publish compressed files. But what about the other end? How do I deal with a compressed file? In order to decompress the file, I had to use a dos window and type a lot. Inconvenient, and I really didn't think I needed it, so I didn't use it. Besides, I rationalized, it would be easier for another verrmal novice, like myself, to read my great hand-edited code.

Then Stephen at told me to look on his site to find a windows decompressor. I found it, installed it, and now I have a right mouse click menu that allows me to ungzip a file. Now I had control of the basic tools, if I could just figure out how to use them.
Here is how I do it.

When the surfer loads your .wrl file, The browser will know the file is gzipped and uncompress it automatically. The browser will know what to do with a .wrl file that is gzipped, but it might not know what to do with a .wrl file that has a .gz extension. You see, the gzipped file must contain a magical key that tells the browser that file is really a .gz flie. Another thanks to the standards makers and followers for making this easy.

Now what about the ungzip? If you try to open the file with NotePad or Wordpad, you get the compressed version that is impossible to read and very hard to edit. Here is how I handle this.

  • In NotePad, select Open. You will see the file name with the .wrl extension.
  • Right click the file, click Rename, hit the left arrow once,
    add the .GZ extension,
    then answer Yes it is OK to change the file extension.
  • Right click the file, and a menu will appear.
    Select the choice to extract (decompress) the file and store it in a new folder having the same name as the file.
  • You will see that a new folder is created. For me, the next item is to change the name of that folder by eliminating the extension.
  • Open the folder and you will find an uncompressed file with the .wrl extension.
    You may now open this file with NotePad, or if too big, WordPad.
  • Read and attempt to understand the authors choices and, with appropriate credit, use everything you can to make your stuff look and run better than ever.

This is how I now use the gzip/unzip routine and it seems to work for me so far. How about a good authoring tool that handles this for you?
They have that, you say? Well then, please tell me about it.

January 6, 1999. I say this often, but not always practice this,
and finally say it here:
"Any further work done in 2d is wasted time."
Practically, all work must be done in at least 3D. I mean preparing (practically) all data for presentation using 3D capable projection. At minimum this includes a practical 2d device capable of rendering virtual 3D, like an ordinary computer display.
I say this from the simple view of a simple author making a simple statement about the way that simple and complex information about your product is presented.

Taken to a logical conclusion, first
think of how this newly developed important item of content fits into a nD+1 format,
where n is the D's of the product,
then start thinking about how to bring this item of content to the awareness of your user when the user needs it.

In the meantime, I published the VRML Navigation page as an example using a simple java pop-up window. This is intended to make it easy to use this concept in an ordinary web page, which I guess means ordinary html. In case I haven't yet made the point, I tried to use this as a vehicle to tell how to use the mouse clicklock for navigation. I based this on the assumption that some folks would not know about the clicklock function, or have become frustrated by it using sliders, and turned it off.

At minimum, I just wanted to say, turn it on or back on, and try it. I think the developing hypermultimedia solar system example gives a great opportunity for extended navigation from several viewpoints. This is even more fun if you don't have to hold the mousekey down all the time. (Can you change navigation methods without losing the clicklock?) Anyway, when my box is working right, I don''t have to double-click anything. So I am concerned when I panic and click to stop the navigation or forget I've got the clicklock set, or otherwise have to make an extra click (in 2D and/or 3D).

Just as I am scanning that .htm source, mainly looking for ways to use the pop-ups effectively, I realize the wonderful way that the middle button on my microsoft mouse works for navigation around notepad. You just click it, the marker appears, then you can move around the document and the next time you click anything, you are out of nav into edit. Then you may have to reposition the cursor. I don't care if the marker appears or not, I don't always need it, but the striking point was that this was exactly what I was discussing in this little article to test pop-ups.

Now what do I do? Incorporate the nice little third button into this tutorial? It turns out that the decision was easy because I haven't been able to get the third button to work in VRML anyway. But if you get that middle button working good in some 2D app, to me it is a great additon. And, that is way the VRML navigation works,

But I am distracted by other things there. Mainly the extravegant statement I make about VRML97 not being able to do two things at once. Like you can't Walk and Roll at the same time. I know this statement is not really true, in the sense that it can be done with the author's help. In fact, I have nice examples several places on this site. If the author puts your viewpoint on an object that Walks and Rolls, then you can Walk or Roll or whatever from there, with your navigation always relative to the walking and rolling of the object.

Try the Uranus viewpoint in the planets in a row .wrl if you would like to have a try at figuring out how anyone would ever deduce simple facts about our solar system from that viewpoint.
In standard VRML navigation, the tricky part is that if you are navigating, when you stop navigating, you may be swept away by the Walking and Rolling of the object.
For another example, in the developing hypermultimedia solar system,
choose Ride with ViZitor.
Select Turn.
Find the solar system, and track it as the viZitor sweeps through this representation of our solar system.

All this is happening when I happen upon the Bootstrap Institute, led by the person, that while working with several other very talented and motivated people and with the world cheering him on, invented the mouse. Then I encounter Goldfarb, who undoubtedly helped me by helping to make the old composers work, making camera-ready pages easier than ever before. Add to that my refining thought that - hypermultimedia implies hyperaccessibilty - with routine negotiation between the interactor and projector concerning the optimum multimedia interface to convey the content, and it made it very difficult to focus on learning VRML.

To see what I have been learning about VRML, please look at vrml Blocks You Can Use where I have learned how to use the PROTO statement. If you followed a previous discussion here of how I presented the node syntax, eliminating the variable types, this is where you need what I cut out. Once you understand the variable type and names it is easy to write the PROTO code and use it.

I also am now using the Inline several places. The man was right, they are very convenient and this is when you will learn about relative scaling. I am also getting a basic idea of what the LOD can do and how to make it do it, as well as learning about relationships between timers and interpolators.

I must ask what you think of the pop-up windows.
I think they should pop-up under the cursor, then when you move the cursor away (not timed), the window should disappear with no click needed.

So have a Great New Year 1999, and think nD+1.
Of course this thought may end up, like Joe'sGarage, being at least partly in 2D.

What does this mean to you?

Let's discuss your application so I can show you how the HyperMultiMedia concept will add to it's success.

JoesGarage98 at

Technical and Promotional HyperMultiMedia

©Williams Publications/
Santa Rosa CA USA -
6/21/98 6/24/98 6/29/98 7/11/98 7/21/98 9/04/98 9/06/98 9/15/98 10/05/98 11/03/98 11/04/98 11/16/98 11/19/98
1/6/99 1/7/99 1/8/99 1/15/99 1/31/99 2/12/99 2/27/99 6/19/99

≡ @