Nutty Motion Filter
An on-the-fly motion interpolation technique.
Given an input target value, the NMF smoothly and continuosly interpolates the output to that target value, while providing some parameters that allow to customize the look and feel of the resulting motion.
It can be used both with angles (e.g. robot or humanoid joints)
or with motion in space (e.g. mobile robots).
When working with animation - be it virtual or robotic, character- or object-wise, we commonly run into the need for interpolation techniques to stitch together different pieces of motion or poses in order to form a smooth and continuous behaviour. Choosing your motion interpolation techniques depends on the definition of your problem, as in:
- Does it run in realtime or offline?
- Do you need to interpolate between animations, poses or both?
- Is it a one-time runner, or do you continuously want to keep driving the motion towards a target?
All these questions apply especially when you are working with procedural animation, i.e., one that is generated on-the-fly based on given parameters, which may be changing over time.
In that case you typically need it to run in realtime, and the motion can either be continuously generated from a mathematical formulation (e.g. sine-waves), algorithmic formulation (e.g. inverse kinematics) or to be the result of mixing pre-designed static poses and animations that should elegantly blend and transition together.
The Nutty Motion Filter1 (NMF) was created to work as a motion interpolation method that is especially directed at such procedural animation applications. It can be applied anywhere in a motion generation pipeline (typically at the end) to a discrete and non-continuous motion signal driver, and outputs a C0, C1 or C2 continuous motion signal as a result, depending on the order of the filter that is used.
Because it is, in its essence, a signal-processing algorithm, it can be used either to control the angular position of a given joint or motor, or the position of a mobile object or robot in space.