How to move Avatar in Unity using external 3D coordinate values for each human bone joint

I get 3D coordinates for each human bone joints from an external device. However I am using only 14 bone joints currently (ex. Hip, Shoulders, Elbows, Head etc). The device coordinate system is right-handed Z-up.

We are using freely available pre-built avatars like ReadyPlayerMe.

Currently, we are following the below steps in Unity:
1. Transform 3D coordinates received from external device into unity world coordinate.
2. Create a position vector (Vector3) for each joint position by using the transformed 3D coordinates.
3. Calculate bone rotations using position vectors. Use “Quaternion.LookRotation()” and “Quaternion.Inverse()” methods.
4. Pass bone rotations to ReadyPlayerMe avatar bones.

However, ReadyPlayerMe avatar is not working properly (it's having twisted arms and actions).Does anyone know, What is the best way to move avatar properly.

Hello! Did you ever found a solution for this issue? I’m facing a similar problem, having the 3D coordinates of each of the “joints” but no way to tell Unity that I want those points to serve as sort of an armature. Tried some combinations of normals, looked at IK, nothing seems to work.