Spring
 
Maple 8 code:
with(plots):
spring := 
   n ->[tubeplot([4*sin(t), 4*cos(t), 0.1*t*n], 
   t=0..8*Pi, radius=1, numpoints=100)];
display(seq(spring(n),n=1..10), insequence=true,
   scaling=constrained);
Comments: 
  1. Maple's tubeplot command is used to turn an ordinary helix into a spring.
  2. Rather than parametrizing the up-and-down motion, the code above creates only the "up" portion of the animation.  An animation editor was used to paste copies of these frames, in reverse order, onto the end of the animation, resulting in a full up-and-down cycle.
  3. An animation editor was also used to slow down the animation, to crop away the excess white space that often surrounds a Maple animation, and to add transparency.