Delaying a body's animation signal by a small time offset gives secondary parts inertial lag
In the 12 principles of animation, secondary motion adds physical believability: appendages lag behind the main body because of inertia. In procedural animation this is implemented by evaluating the same driving signal (fract(time)) with a small time offset for the secondary part. If the body uses fract(t), the ears use fract(t - 0.3). When the body descends, the ears are still going up; when the body goes up, the ears are still pointing down. This one-line trick creates the illusion of mass and inertia without any physics simulation.
Examples
float earY = parabola(fract(iTime - 0.35)); // ears trail body by ~1/3 jump period
Assessment
A creature has a tail that should lag 0.2 seconds behind the body. The body cycle repeats every 1 second. What fract() argument produces the correct lag?