A 3D Experiment

Ok. This is kind of a convoluted story that may take a few sentences to explain. I think it started one Dark and Stormy Night....

I really just 'discovered' that the TECLink box, on which our Home Pages reside (oscar), is running the Apache HTTP Server, (At least part of the time. Thanks for the correction, Jeff) and for sometime now I have also been using a Unix tool called geomview. Geomview is a cool X utility that allows you to view and interactively manipulate 3D objects with mouse and keyboard. I also use Netscape 1.1N for Linux which dosen't cost anything and is unsupported. Anyway, I started thinking it would be super-cool to use geomview over the net, so I started to integrate the httpd, Netscape, and geomview stuff. Before I go any further, let me say that the integration works and is in place on my personal machine. I can click on a link and have a 3D oject pop up in a window on my screen. But I have some work to do before it can be used on oscar. The remainder of this section will be devoted to explaining what I have yet to do, and how I'm going to go about doing it.

Ok. It's done. Read on....

Here are four images taken from the same geomview window at different points during a rotation. They are reproduced here half size, but I think you can make out most of the major detail. The 'source' for this pseudo-office is in the oogl file format which is sort of the native 'language' of geomview.

How to Modify the Daemon and Why
The first and only major hurdle that I have to jump is to get the sysadm of the oscar box to add the following two lines to the srm.conf file:
AddType x-world/x-vrml wrl
AddType object/x-oogl  oogl off list tlist grp quad mesh inst bez vect

and these two lines to the server's mime.types file:

x-world/x-vrml wrl
object/x-oogl  oogl off list tlist grp quad mesh inst bez vect

and then to stop and restart the httpd. What this will do is add MIME types to oscar's http server that I/we can use to kick off a 'new' viewer in Netscape. The new viewer in this case will, of course, be geomview. (Adding the two lines to the srm.conf file should be enough, but I have had very little success in getting the server to work correctly by just adding the types there. I don't know for sure if it's a bug or operator error. BTW, I'm using these MIME types because the geomview folks are working on a 'quasi-compliant' VRML web browser that has 3D capabilities built into it, and they use these types. When it becomes more generally available we wont have to change a thing. Just trying to look ahead a little....)

Turns out that there was really no hurdle. I explained to Jeff what I was trying to do, and he made the modifications for me. Done deal. Good man, that Jeff....

The Apache server threw up when the above AddType object/x-oogl line was added to the srm.conf file. Jeff shortened it to include just one of the file extentions and it stopped complaining. Now, it's my understanding that the AddType cmd is supposed to allow you to add MIME types to your server without modifying the mime.types file. But, I have also had trouble with the cmd on the NCSA server. So, from now on, I'm just gonna mod the mime.types file and be done with it.... I still don't know if it is a bug, server diffs, or operator error, and frankly I'm not sure I care anymore. (grin)

How to tell Netscape What to Do
This part is easy. All you have to do is to modify your local or global mailcap file by adding the following line:
object/x-oogl; geomview %s

and restart Netscape. Of course this assumes that you have geomview installed and its executable is in your path.

This is still the simplest part of the procedure, but I've modified my set up for a couple of reasons. First, my X server only provides 256 colors (my graphics board only has a meg of video memory anyway). Second, geomview has a huge executable that takes a while to load. When you kick off Netscape first it will 'eat' almost all the color and geomview will not load. You can solve the color problem by limiting the colors that netscape uses at load time, but this doesn't solve the geomview load lag-time. So, this is what I've done. First I mod my .mailcap file to include this line:

object/x-oogl; geomstuff objectname %s
This will kick off a utility that stuffs geomview objects into geomview through the named pipe /tmp/geomview/objectname. Then I load geomview before Netscape by using this command:
geomview -Mgp /tmp/geomview/objectname &
This starts geomview in the backgnd and specifies that it is to accept input from the named pipe /tmp/geomview/objectname. Then I start Netscape. This solves the color limitation because geomview gets all the colors it needs at load time and Netscape gets all the rest when it loads later. The lag time is solved because geomview only loads once. Its just sitting there waiting for geomstuff to poke files into it. Pretty cool, actually.

I think this part is almost done. You can get your geomview distribution from the geomview link above. Just follow the instructions that are provided to install on your machine. I'm providing links to some demo geometry files that are included with the distribution of geomview. They are here so that you can test your integration. Have fun. It's been Real. If you have any questions that you may think that I can answer, feel free to email me. But, my time is pretty limited, and I may not be any help at all....

Screen Capture of the Teapot

This page is true in general, but is no longer accurate in that I've upgraded my hardware. So, I'm finished with this for good I guess. It won't be long before I move most of this to the bit bucket....