Hand-tracked fingers are bent sideways on SteamVR
I have a hunch this might be related to us ignoring the hand metacarpal bones because our avatar rig doesn't have them.
It's also completely possible that this is a bug in SteamVR's OpenXR support.
I do get a bunch of warnings in the log, which may or may not be related:
[10/15 13:50:01] [WARNING] [hifi.animation] Rig::getJointPositionInWorldFrame produced NaN. is owner thread = true position = (0, 0, 0) translation = (-9.74004, -15.2077, 131.47) rotation = (2.15769e-05, -0.995106, -2.15769e-05, -0.0988141) poseSetTrans = (nan, nan, nan) success = true jointIndex = 12
Rotation is a quaternion, so I have absolutely no idea how any of this is supposed to work. I thought, quaternions would be used for position and rotation? Maybe the variable name is just misleading?
bool Rig::getJointPositionInWorldFrame(int jointIndex, glm::vec3& position, glm::vec3 translation, glm::quat rotation) const {
(...)
Those are more likely your avatar's legs or arms. When our IK solver gives up (legs or arms clipping and it can't solve) it sets the joint rotations to NaN, for whatever reason.
Monado now uses SteamVR's hand tracking poses on the steamvr_lh driver, and the hand poses are perfectly fine there. This is probably a bug with SteamVR itself.