Re: Creating Objects (was: Re: WWWInline; include non-VRML data?)

Linas Vepstas (linas@innerdoor.austin.ibm.com)
Tue, 18 Oct 1994 17:52:48 -0500


Hi Mike,

> Date: Tue, 18 Oct 94 16:46:22 EDT
> From: miker@nashua.progress.COM (Mike Roberts)
>
> On Oct 18, 2:01pm, Linas Vepstas wrote:
> > Suppose I owned a vrml site with a toy chest, out of which you could pull
> > a whole bunch of toys. Some kid finds it and plays; leaves toys all
> > over the room. You think I'm going to let him write that back onto my disk?
>
> I think this comes back to a question of resettability (in a sence, rollback).
> If any system can be easily reset to its initial state, then why not allow end
> user modifications (obviously this is not desirable in most cases) ? Surely it
> is the fact that that reset mechanism isn't easy (and part of the paradigm)
> which is the problem ? If the results of the child's playing were written back
> to some form of surrogate, while the original remained, with an easy interface
> to reset back to the original, is there still an issue ? I've seen Moo rooms
> which may be "trashed" with generic objects, for example, pop-corn, which
> persist until the room is "reset" back to its original state. These are infact a
> lot of fun (though extremly chaotic).

OK. I want to make another distinction, between "saving state" and "interacting".

"Saving State" would be like saving your current (single-palyer) Sierra game.
IF your 3DViewer will support it, the Viewer's current scene graph is written
to disk and "saved". You can come back tommorrow, and "restore", and play some
more. It is highly likely that the whole scene graph would be stored.
It is likely that any WWWInlines will have been expanded (in-lined), especially
if you "edited" (changed the color, opened a box, e.g.) anything that was
WWWInlined. (Note that the WWWInline refernce is lost after the inline occurs.)
But the exact details are implementatin dependent -- your viewer has to support
this. If you are lucky, your viewer will store the stuff in a valid VRML format,
and not some internal format. IF your lucky.

(Or you have an implementation like inventor, wherein the internal representation
closely matches the file format, so saving to file is not a problem. Now, that
gives me heartburn, but that's a different issue.)

"Interacting" -- that's what you do at a Moo, or WebWorld. Someone has
specifically arranged thier web site to store and manage state info, and
has allowed outsiders to come in and play. I don't exactly understand the
details of how some of the current systems work --

ANYONE-- CORRECT ME IF I'M WRONG --

Something about a cgi-bin script that takes you mouse position and appends it
to a URL, so a request like

http://www.moosite.net/hallway(-13,11)

is issued. Now, the web server at moosite knows that there is an icon for a
bag of popcorn at the 2D cursor location -13,11. So, when it sees this request
it (for instance) generates a new pixmap of popcorn strewn about, and replies
to your request with that new pixmap. Everybody who ever goes there again will
get the new pixmap (i.e. will see popcorn all over the room).

It's very tempting to say "edits a vrml scene graph" instead of "creates
a new pixmap" but there are subtle point about the inline vs. replace semantics
of the client's scene graph. Hmm. I will have to think about this ...

Meanwhile, can anybody out there explain how CGI (Common Gateway Interaface)
works, and/or how WebWorld works and/or how forms work?

--linas