# Joint ordering, documentation incorrect or just me messing up again?

**URL:** <https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989>\
**Category:** USD\
**Created:** [November 28, 2023, 2:36pm UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989 "2023-11-28T14:36:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![koen](https://avatars.discourse-cdn.com/v4/letter/k/a9a28c/32.png) [@koen](https://forum.aousd.org/u/koen)\
**Post date:** [November 28, 2023, 2:36pm UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/1 "2023-11-28T14:36:45Z")

</div>

Hello OpenUsd people,

I am playing around with skeletons again, trying to find an elegant solution to merge skeletons / skin weights between models to attach parts to a model and share animations. ( for example we have a selection of heads that go on a selection of bodies).

I was reading here:  
[Universal Scene Description: Schemas In-Depth (openusd.org)](https://openusd.org/dev/api/_usd_skel__schemas.html#UsdSkel_JointOrder)

and thought I found a super easy way to merge skeletons, by just appending the missing joints, this would keep the joint indices the same for the existing joints, so I would not need to change the skin weights on those models. Unfortunately, when I create a situation very much like the example ( uniform token = [“A/B”, “A”] ), things break:

```auto
Warning: in _Init at line 108 of ...usd\23.11\src\pxr\usd\usdSkel\skelDefinition.cpp -- /world/.../rig/skel -- invalid topology: Joint 0 has mis-ordered parent 112. Joints are expected to be ordered with parent joints always coming before children.

```

Am I missing something here, or is that example perhaps misleading?

thanks,  
Koen

---

<div class="post-metadata">

**Author:** ![mati-nvidia](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/mati-nvidia/32/18_2.png) [@mati-nvidia](https://forum.aousd.org/u/mati-nvidia)\
**Post date:** [November 29, 2023, 2:03am UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/2 "2023-11-29T02:03:36Z")

</div>

Hi @koen! That error is produced by a mistake in the docs. I have a PR to fix it here: [Improve UsdSkel docs by mati-nvidia · Pull Request #2697 · PixarAnimationStudios/OpenUSD · GitHub](https://github.com/PixarAnimationStudios/OpenUSD/pull/2697/files#r1327762614)

---

<div class="post-metadata">

**Author:** ![koen](https://avatars.discourse-cdn.com/v4/letter/k/a9a28c/32.png) [@koen](https://forum.aousd.org/u/koen)\
**Post date:** [November 29, 2023, 10:18am UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/3 "2023-11-29T10:18:56Z")

</div>

Ah, perfect, thanks Matias!

Cheers,  
Koen

---

<div class="post-metadata">

**Author:** ![spiff](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/spiff/32/22_2.png) [@spiff](https://forum.aousd.org/u/spiff)\
**Post date:** [November 29, 2023, 10:28pm UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/4 "2023-11-29T22:28:13Z")

</div>

Thanks, @mati-nvidia - we’re going to try to get that in for 24.02

---

<div class="post-metadata">

**Author:** ![spiff](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/spiff/32/22_2.png) [@spiff](https://forum.aousd.org/u/spiff)\
**Post date:** [November 29, 2023, 11:56pm UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/5 "2023-11-29T23:56:17Z")

</div>

Also, in discussing this with our own crowds folks, @mati-nvidia , it was pointed out that the `joints` attribute in `Skeleton` prims requires that joints be ordered in a parent-first topology, _but_ the `joints` attribute in a `SkelAnimation` prim _should_ be able to specify joints in any order. We don’t exercise that ability in our pipeline, but that might be something to reinforce in the section you are improving?

---

<div class="post-metadata">

**Author:** ![mati-nvidia](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/mati-nvidia/32/18_2.png) [@mati-nvidia](https://forum.aousd.org/u/mati-nvidia)\
**Post date:** [November 30, 2023, 12:16am UTC](https://forum.aousd.org/t/joint-ordering-documentation-incorrect-or-just-me-messing-up-again/989/6 "2023-11-30T00:16:05Z")

</div>

@spiff Sounds good. In fixing the incorrect joint order I also switched the SkelAnimation joint order too to show that SkelAnimation is not strict. I’ll review those docs again. I think you’re right that those details could be put into words again and reinforced.
