Using SMPL or SMPLX models in panda3d

I am trying to use SMPLX models in panda3d for creating a dataset of synthetic humans poses from videos. However, I am unable to properly match the pose elements with the ones in blender or even the python code from this demo code. I have created the .egg file by loading the SMPLX model in blender using their addon, exported that to .dae and converted that to .egg.

The exported model has opens properly in panda3d but when I try to move it by editing any joints, it is completely wrong.

In blender I had just rotated the left elbow to be in front of the person, but when the same transformation is applied using setHPR, I get this output.

Any pointers to what I am doing wrong, or any guidelines to follow or test out will be thoroughly appreciated.

P.S. I am unsure if I am allowed to upload that .egg file given its licenses, if anyone can clarify I can, I will upload it from easier understanding.

As for the discrepancy in rotation, this is due to the fact that the order of rotation of the axes is different.

I tried all the permutations and combinations of these values to see if anything mimics the movement but had no success. My issue is more with not knowing the correct way to find the values which can then (if it is possible) have the same effect as the one where the blender model is modified or in the python code, I am able to pose an array of body poses for manipulation.

It’s not clear to me from the screenshot: where is the arm ending up relative to the character?

Right now, it looks like it’s just stretched out to the side, not rotated–is that accurate? Or is it rotated in some way that makes it look stretched? Or something else…?

This is a shot in the dark but make sure that the origin of all the geometry is the same as the origin of the skeleton/bones.

@Thaumaturge Yes, it is just stretched out currently.

@LifeLand how can I check this?

Hmm… That does support LifeLand’s suggestion that the origin is incorrect…

(Caveat: The below is based on experience with an old version of Blender; I don’t know how things may have been changed in newer versions.)

In Blender, select each of those things–the model itself, the armature itself, and at least the arm-bone that you rotated above, and look for the dot that represents its origin. See where those dots are placed.