Making a radially symmetrical rig

I have a radially symmetrical object in the scene and I want to animate it fully preserving its radial symmetry. Manually animating each bone the same way to its corresponding radially symmetrical brethrens is a possibility, but frankly it’s too time consuming and there has to be a better way, this is Blender after all.

So far, I’ve been able to make a static radial symmetry, that is, when no motions are present.
This is done with a copy location and transformation bone constraints, and an empty to set the rotational offset - 120 degrees in this case.
One set of bones is the main one, and all others copy their locations (and rotations later on).

But when the primary bones are moved, the others move globally with swapping of x/y coordinates, and not relatively to the rig’s center, as needed.

I’m aware of this method (starting somewhere around the 4 minute mark)

but the object in question is somewhat more complicated than a jellyfish.

Any ideas as to how to go about it are welcome. =]

I’ve been trying to come up with the math necessary to describe these transformations and apply it in drivers, but the result always seems to be equal or worse than the first method with bone constraints. And besides, the drivers UI seems too clunky, the fields to enter expressions are tiny, single lined and in seperate windows, one or more clicks away.

Next I tried to look up how bone constraints are handled internally to make a new one in an addon. It would be a simple Rotate-around-an-axis bone constraint, the code should be analogical to the one for rotation around the 3D cursor with locking an axis. However, the python part of the code seems to have only the UI, not the actual logic of bone constraints.

Is there a way to achieve this result short of animating each part manually or compiling a bustom build of Blender?

Hey hi,
can you share the file ?

Hey, here it is: radial symmetry.blend (13 MB)

Hey; I will look into your file some more , but just had a quick look - you have a real ‘Parent to Child’ issue, no ‘Parent’ at all unless I missed it…

Sent you a PM

I think you are missing some fundamentals - I see there is no proper hierarchy : you should clearly separate your control bones from your deform bones, have the first ones sit under the root bone, and the others driven by them through constraints.