Closed loops in Collada



I have some questions about closed loops in Collada:

  1. <attachment_start> and <attachment_end>
  • have to occur in pairs with the same “joint” attribute.
  • together they form an attachment that connects two links: their parent links.
    I could not find this in the spec but the example is built like that and it sounds reasonable to me. Is it correct?
  1. Why <attachment_start> must have at least one or child but <attachment_end> and <attachment_full> don’t?

  2. In the sample link B should be be translated by 6 0 0 (not -6 0 0)?

  3. In the CTS data set <attachment_start> and <attachment_end> have different orientations. Is this possible? In my understanding their translation and rotation have to match to get a well-defined position and orientation for the axis of j4.


Just to be clear, these are part of the Kinematics section of the standard. Here (Kinematics editor) is a recent discussion of that, so that I don’t have to repeat it.

I’m not positive, but I think kinematics in COLLADA is meant to serve “inverse-kinematics” in games, although it might have other applications. Unfortunately it’s part of COLLADA I’ve so far not waded into. I’ve developed a pretty comprehensive reference-implementation in the original COLLADA-DOM project, however there are many divisions like kinematics that it does not explore.

Everything in the second edition (1.5.0) was pretty experimental and did not see real-word use. There is CTS content for kinematics, but I should warn you that the CTS documents are not up to the standard you’d expect of a “test suite” and are really very wrong in many cases. Most of them are loose copy/paste jobs.

I hope the Kinematics section is better conceived than the Physics. Physics is really unworkable and nearly impossible to parse in a sane way as designed. Just to warn you what to look out for.

COLLADA itself is at best experimental, as someone dedicated to it. But it’s noncommercial, and so worth sticking with if you have a anti-establishment bent like myself. (It’s a better project than trying to coalesce something from thin air… which is basically the form of insanity that inspired COLLADA–as a solution–in the first place.)