# Setting up a chain of elements that can bend (and propagate) in either direction

I have a chain of elements that can bend (rotate) around their connection. The challenge is that at any element, either the left or the right set of elements can be rotated. So the usual parenting (including armature) only propagates the rotation in one way but not the other way.

Here is a couple of examples of bending around different elements and on different sides. And it needs to animate, so ideally not just edit-mode bending (and shape keys do not rotate without deform).

The real life's example is Rubik's snake, where you fold it by holding to one of the prisms and folding (rotate) the tail.

Here's a string where all bones are root level:

I'm showing rest position and three consecutive operations there. Constraints for one bone are shown; the rest are identical, they just have different targets.

There are a few deals with this:

1. You don't rotate about some specific center. You rotate about a cursor (which can be snapped to a bone if you want.) Because there is no specific hierarchy, you need to select the controls for all the bones you wish to rotate (and keyframe all of them as well.)

2. There is no rotational interpolation on any of this, because rotation requires a specific hierarchy (does tail rotate about head or vice versa?) Instead, all interpolation is linear.

• I am not sure I fully understood bone numbering and therefore whether constraints are pointing at just own/next control bones or at "pretend next" bones as well. Nor do I fully understand the "locked track" contribution here. But it seems enough to reproduce and experiment. The core idea of fully disconnected/unparented setup is now clear. Commented Dec 31, 2021 at 15:43
• Honestly, the constraints aren't really necessary-- you can take any armature with only root-level bones and then select and rotate bones about cursors or active elements. The constraints give you handy controls and clean up interpolation a little bit, that's all. Commented Dec 31, 2021 at 16:34
• Oh, uhh, locked to is necessary to determine the bone's roll. Y axis is determined by the stretch to, Z axis is determined by the locked track, and then of course the X axis is defined by being orthogonal to both of those (and by the handedness of the coordinate system.) Commented Dec 31, 2021 at 16:42