Could anyone (gregsn? ;)) explain to me, how the “Newton (Animation)”-Node works, what is the formula behind ?

Anyway… is there a good collection of such motion-path formulas on the net somewhere?


all filters in vvvv like newton, deniro, damper, oscillator are built around a basic idea:

the output should be a smooth curve in any case, independent of
-which parameters have changed in this frame or
-if or if not the filter got a new goal to drive to…

there shouldn’t be any hard jumps
-in position of the output
-in VELOCITY of the output!

so these filter are all timebased, what means that they can be described with a function over time:

position p(t) = MATH
velocity v(t) = OTHER MATH

these functions differ for the several filter types like newton or oscillator.

however for all these filters it is possible to put the current time into the formula and get out the position and velocity for the current frame. (think of the case that we already have a valid filter function curve)

Recalc Function Curve

each time that filter parameters change (“Go To Position” or any other more specific parameters) the actual curve formnula has to be recalculated.

And this is how it works:

First we calculate the current position and velocity based on the old function (this is the path we came from)
After that we calculate the new functions in a way that if we would insert the current time, WE WOULD GET THE SAME POSITION AND THE SAME VELOCITY as we just got from the old function curve for the current time.

so these filters work all the same way:

we have a
-current position: p0
-current velocity: v0
-current time: t0

-new position to drive to: p1
-new velocity to end with (when the filter is finished); v1 = 0 (because normally the filter should stop at the p1)
-and a filtertime dt. p1 and v1 should be reached at t1= t0 + dt
(current time + filtertime)


the newton node drives to the new position and new velocity with 2 consecutive parabola function curves.

think of one acceleration part and one decceleration part.
acceleration = a; decceleration = -a

p(t) = p0 + v0 (t-t0) + a/2 (t-t0)²
v(t) = v0 + a (t-t0)

p(t) = p05 + v05 (t-t05) - a/2 (t-t05)²
v(t) = v05 - a (t-t05)

with p05, v05 are position and velocity after going through the first parabola at time t05 (halftime).

if we put t=t0 into the first parabola we get p(t0) = p0; v(t0) = v0
the problem is to make the curves fit each other at t05 in p05 and v05 (and at t1 in p1 and v1 resp.)

i had a look how these functions are parameterized so that they fit.
but it seems not to be very readable. i’m sorry. one time i will try to make a document outof that stuff, but for not now. sorry…


Was reading this, hope it adds something…

i will wait with that until beta9 is shipped.

Thanks Sebastian!

I probably know how to make them fit, but as I don’t need a time based motion, I guess I’ll try using a spline instead. Thanks anyways.


i found an old document of mine, which describes the maths behind the damper and the oscillator. hm. maybe it doesn’t describe the math really, but it holds all the stuff needed to develope these filters. note that most lines in that document are generated from a maths software and you don’t have to understand this output to understand the ideas behind it. just concentrate on the commands to the math software…
sorry for it is not really cleaned up and at some parts unleashes my bad english. that’s why comments are very welcome.