Friday, September 20, 2013

More on the Design of WEBGL and the Origins of .OBJ

We have made a little progress in the last few days on both WebGL and the .OBJ origins issues.

This is an image from the current .OBJ object display software written for WebGL and written in Javascript/DOM/HTML.  Now, I doubt anyone actually needs a .OBJ viewer, its just a way to get familiar with displaying geometry with WebGL.

Instead of just showing you a picture, as I do, below, I should be able to just give you a URL so you can run it yourself, but I can't because I don't actually have a place to post the files for you to address (without seeing advertisements or in other ways compromising or inconveniencing my friends). The only web server I have access to is my own and it has only temporary IP addresses which Facebook will not even let me post. Besides, why bother to post a temporary IP address? I think it is funny how money controls everything, without money, our society says, don't even try to do anything.

So for fun I am posting this dilemma here and on Facebook, maybe someone will know where I can post some number of html and js files in a way that can be accessed by people on the net without inconveniencing them (e.g. no spyware, no ads, no Doubleclick tracking) at a price that even the poor can afford.

Regarding WebGL, once you realize that the designers had gutted it of any even slighlty higher level 3D and that this is a very low level interface to some of the power of the GPU without in any way providing even trivial conveniences for the programmer, everything is fine and you proceed.

I think they did this for good reasons. In the past, by making computers easier to use we opened the doors to allowing people to come in and take away our livelihood. The kind of conveniences I am talking about are trivial and do not hold back an experienced 3D technologist in the least (after they waste their time trying to figure out what the people who redesigned OpenGL were thinking ...).  (1)   So all that happens is that they inconvenience those who are writing their first 3D software and also tend to make such programs written to be a little more obscure because they will all be different (having to reinvent the wheel is trivial here, but since everyone will do it differently naturally it will be a little harder for someone to come in and read and modify because they will have to learn a new convention rather than rely on an industry-wide convention.)

I have no problem with this and in fact applaud it. As a victim of globalization and of the spread of these technologies, anything that makes knowledge that I have more arcane and valuable can only be good.

Regarding the .OBJ matter, we have learned both more and less. The ideas and the general approach to what the .OBJ format became was in the air at SIGGRAPH and the U of Utah in 1979 according to Frank Crow. According to Julian Gomez, there was no software from E&S that would have been an example of a .OBJ like format that would have come from them.   My leading hypothesis had been that the people at Abel's had received some sample software to (for example) load a geometric object and display it on the Picture System.   What would be a normal software development approach would be to start with that program and then write their own software on top of it.   Its an extension of the old joke that Unix only had one device driver (in other words, that everyone modified the original device driver when they had a new device to interface).  Julian may have written one of the first such "display an object" program at Andrews AFB long ago, but it did not use anything similar to a .OBJ-like format.

Julian also suggests that Mickey Mantle, who was in charge of customer support of E&S, may know more.

Thus it is still quite possible that the .OBJ format as we know it was based on ideas that were generally available but not based on specific code from a sample program, as I had expected. In other words, it may still turn out that the Abel version, written initially for motion control preview for Star Trek: The Motion Picture is the one that escaped into the wild (as I believe) and that it originated at Abel's, even if based on ideas more generally available.

 The time when this would have been written by the way is about 1977.

There is more to say, but also more to find out. I have been unable to find any early E&S documentation, for example, which would answer a lot of questions.

If anyone knows how to reach Mickey Mantle, please let me know.

1. Well, that is not totally true.  OpenGL used to support drawing polygons, convex polygons, directly.  Now only triangles are supported so you have to subdivide into triangles yourself.  The problem is, this is a problem whose general case is actually fairly difficult.  Why not make everyone re-solve this themselves? Its good for them, it makes them think about fundamental principles.   I have no idea what these people were thinking.

No comments:

Post a Comment