How to animate a spring thats already been created

Hi there, Can anyone tell me how to animate this spring so when it stretches or strinks it maintains it size. When I look this up in the forums or on google I see a lot of information on using the screw modifier but that involves recreating the spring from scratch. Is there a way to put a spring animation on this spiral object thats already been created.

Hi RyleDupp,
here’s a Geometry Nodes solution that can remap the spring from an “unloaded” to a “fully loaded” state without remodeling:


The setup assumes that the spring is oriented to the Z-axis. If that’s not the case for your spring, you have to change the Vector from the Vector Math - Dot Product node and use a different axis from the Separate XYZ node.

The Min and Max values are the lowest and highest Z-positions of the Spiral Curve without the profile (or from the center of the profile if you will):
image

Change the Factor input to switch between an unloaded and a fully loaded spring:
image

If you don’t want to use Geometry Nodes you would have to create an Armature with a couple bones in the Spring axis direction and move (NOT scale) them in their Y-Axis to animate it.

Edit: Updated the nodegroup so that it supports springs with an offset to the origin correctly

Hope that helps!

1 Like

There are many if you look up the lecture.

1 Like

One can use an armature with 2 bones. Parent whole spring to first bone, insert a second bone.001 and stretch to (constraint) the first to the second. Then a limit scale constraint on bone (the first one again) can be used to prevent the spring from widening.Use G-Z to move bone.001 i.e.:
spring.blend (927.8 KB)

1 Like

Thank you zebrahead for the thorough and detailed explanation. I will give this a try. Very grateful for your help.

1 Like

Thank you Kim. Ive seen this video, it wasn’t quite what I was looking for but thank you very much for the link.

1 Like

Kyra, Thank you, this seems like a quick fix, I will definitely give it a try. Thank you so much for sending a long the file as well. Much appreciated.