Re: VRML 2.0 and Behaviours

Peter J. McCann ([email protected])
Sun, 16 Apr 1995 12:10:20 -0500 (BLT)


> Here is a possible view of behaviors. It merely extends existing
> engine examples in OpenInventor (OI) to build on a common vocabulary.
>
>
>
> VRML Scene Graph
> +-------------+ +----------------+ *
> | | | | / \
> | Behavior | | Engine +---| * *
> | generator | | | | =========> / \ \
> | | | | | . . *
> | | | | | =========> |
> | | | | | ---+------
> | | | | | =========> | | | |
> | OI Sensors, | | +---| . . . .
> | algorithms| |---+ |
> | Scripted | ==> | | |
> | actions | | | |
> | Message | ==> | | |
> | passing | | | |
> | Open | ==> | | |
> | extensions| | | |
> | IEEE DIS | ==> | | |
> | Protocol | |---+ |
> | | | |
> +-------------+ +----------------+
>
> Key points in this representation:
>
> - Engine outputs only operate on the scene graph. Thus behaviors do not
> have any explicit control over the host machine (unlike CGI scripts).
>
> - Behaviors are engine drivers. Engines are scene graph interfaces.

...

> This behavior outline is intended to show that we can simultaneously have
> simplicity, security, scalability and open extensions. Doubtless
> other people have expressed similar ideas on the list or in offline work
> (BehaviorEngine?). I hope this outline provides clear initial
> concept definitions as a basis for understandable discussion.

One piece of functionality that seems left out of this model: the
ability of a behavior to make changes to the structure of the scene
graph. I can envision some kind of data monitoring application that
would send updates to the virtual world my browser has loaded, updates
that might take the form of additional objects or rearrangement of
nodes. This behavior would be implementable with Switch nodes, but it
might be cumbersome or impractical to build a fully adjustable scene
graph from information that was available only at initial transfer time.
Re-loading the entire graph would be another way to implement this, but
certainly wouldn't scale very well. I don't think the "Open Extensions"
would be able to support graph structure updates given the diagram
above.

I think that whatever framework is decided upon, a mechanism to perform
structural changes on the scene graph would be a valuable tool in and of
itself and would also be the most general way to specify behavior extensions.

-pete

-- 
Pete McCann                                          [email protected]
Department of Computer Science           http://swarm.wustl.edu/~mccap/
Washington University in St. Louis