Simple Shared State

This proposal is for adding simple shared state to VRML.

Date: 21 September 1995 This document is part of a collection of VRML2.0 history at
Mitra <> 


This proposal shows a way of adding a simple shared state to VRML.

It is presented at three levels

  1. A trivial expression of sharing state, not dependent on the Behaviors API or the Network
  2. An implementation of (1) dependendant on the Behaviors API
  3. An implementation of (2) dependendant on a Network protocol.
It should be possible to rewrite (2) and (3) based upon a different Behavior API, or to rewrite (3) based on the same Behavior API and a different Network protocol (e.g. DIS).


Adding shared state to the VRML

At the simplistic level, we'd like authors to be able to trivially specify that some collection of State is shared. To do this, we need to specify two things. What to share and how to share it .

Shared state through the Behavior API

This proposal could be integrated with the proposal for a Behavior API. In this case, once a Separator is active (for instance it might not be active if hidden inside a LOD), a module is loaded to handle networking. Any change to the State from within the browser is communicated to the networking module via a SetField call to it, the Networking module then sends it over the net in some way. At the receiving client, the Networking module receives this information, and translates it into a SetField call to the browser.

Shared state through the networked protocol.

This proposal could also be integrated with the proposal for a Networked Behavior Protocol. In this case, the Networking module will register with the server at the point where the state is to start being shared, and then send the updates using the network protocol.


Mitra <>