VRML 2.0 Interaction Model

Interacting with VRML worlds or animating them will cause events to be generated. These are sent from one node to another. Here I present an abstraction of the logical sequence of nodes that might be involved. I have found this a very useful model which was originally presented in The VRML 2.0 Handbook.


Something generates an event to start the ball rolling, this is usually a sensor of some kind.

Logic (optional)

This processes the event before triggering the timer. Perhaps we only want a door to open after someone has knocked (clicked) on it 3 times. This is usually a simple script node.

Timer (usual but optional)

The timer is used to run the animation or to supply a stream of events for interpolation of some value. If timer, engine and target are used then they run continually until the timer ceases. This is by far the most common type of animation.

Engine (usual but optional)

This outputs events directly to the target of the correct type. Its input is usually a number in the range 0.0 to 1.0 (as is the case with interpolators) but could be anything if a script is utilised for more complex engines than keyframing.


A node in the hierarchy with an eventIn which is now set_.