# How do I align my objects

What is the most efficient way to orientate my spacial to my geometry so their using same orientation?
I am using the VR module and I have placed a node in the scene with a geometry in it that is rotated with data from and IMU, yet the axes dont align.

how is your geometry rotated? Maybe just rotate the node instead of the geometry?

You would apply the IMU’s orientation to the Node and the Geometry will align with it. If you build the scene graph and handle the Quaternions correctly.

Are you sure the IMU provides correct orientation?
There might be an offset in the IMU’s zero position which has to be calibrated.

If you want to sync something to the head movement it might be better to use a Filter or the GUI-Viewport instead of syncing the Spatials (no jitter or delay).

I use a socket to read the data from the device, it produces Quaternion which I use to rotate the object
float x = Float.parseFloat(info[1]);
float y = Float.parseFloat(info[2]);
float z = Float.parseFloat(info[3]);
float w = Float.parseFloat(info[4]);
quat = new Quaternion(x, y, z, w);
pivot.setLocalRotation(quat);

it appears that the VR ( HTC Vive) is not align because when I move the object the AXES are off. The device has a diagram of the axes where the x,y,z are orientated like JME .

``````    public static Geometry CamQuad;
Node pivot = new Node("pivot node");
CamQuad = new Geometry("Box", new Box(.13f, .13f, .13f));//smallBox);
CamQuad.rotate(0.0f, 0f, 0f);
CamQuad.setLocalScale(1);
CamQuad.setMaterial(mat);
CamQuad.setLocalTranslation(new Vector3f(0.0f, 0.0f, 0.0f));
pivot.attachChild(CamQuad);``````

Basically I just don’t know how to align the axes of the scene with that of the device . I’m not even sure I am asking the question correctly.