Some ActiveVRML patholoies

Mike Wray (mjw@hplb.hpl.hp.com)
Mon, 11 Dec 1995 14:22:38 GMT


The ActiveVRML definition allows functions of time to be defined,
but it is silent about how these functions are sampled.
The following gives some examples of the possible pathology.

[ Syntactic note: I've used `predicate' to make a boolean
into an event, as described on p. 16 of the ess. manual.
The Microsoft examples don't bother with this however. ]

Never mind Newton-Raphson, we can use ActiveVRML to find roots!
Given an arbitrary function f find t such that f(t)=0 and apply g to it:

root(f,g) = snapshot(time, predicate( f(time) = 0)) => g ;

Derivative of a non-differentiable function:

jump = 0 until predicate(time=1) => 1;
something = derivative(jump);

Infinitely fast oscillator (nowhere differentiable):

osc = 0 until predicate(true) => 1 until predicate(true) => osc;
something = derivative(osc);

What do the ActiveVRML team have to say about time sampling?
Are integrals and derviatives determined numerically (if so how),
or analytically? How do you handle non-differentiability?

The Microsoft ActiveVRML examples don't stick exactly to the
syntax in the Reference manual. Is this just version trouble?

Mike Wray (mjw@hplb.hpl.hp.co.uk)


  • Next message: Tom Meyer: "Re: Looks like they want to charge for ActiveVRML"
  • Previous message: J D Wood: "(Fwd) VRML HUD Images"