Hi Brent! Thanks for the additional info. Let me try to clarify the problem a bit more.
Spine bounding shapes are arbitrary, non-self-overlapping, concave polygons that may vertex deform during an animation. As such, chain shapes would be a good fit to represent them via Box2D, so no problem there. We could optimize things a little by using simpler Box2D shapes when possible (concavity testing etc.). We obviously have to disallow vertex deformations as Box2D doesn’t support them. This means the shape is created once, and never modified afterwards.
Our bounding shapes are transformed using an affine local to world transform, expressed as a 2x2 matrix plus translation offset. That transform is derrived from the bone (and its parents) to which the bounding shape is attached. Since Box2D does not allow scaling or shearing of shapes, the transform may not include such sub-transform. That’s a hard limitation users have to be aware of. The transform may change every frame.
To apply the transform to the Box2D shape, I can either re-create the shape each frame using world coordinates (not an option!) or translate the transform into Box2D offset and rotation values and make sure the chain shape is a kinetic shape in Box2D (or static? forgot the name), so I can apply the transform to it. Simple enough.
Hm, it seems I just figured out what I can and can not do (vertex deform, scale, shear) by explaining it here
Thanks for your input, looks like it got my gears spinning in the right direction.