Hi all, I have been playing with the iPad gyro with some success but need someone to help me understand how to calculate the iPad to always point down a specific axis regardless of orientation.

I don’t have too many issues with calculations on object rotations but I think I have a mental block when it comes to the iPad being the point of reference.

Ideally I want to point down the z regardless of where or how i am holding the device. I know it’s simple, can someone give me a small kick?

Am I thinking of this the wrong way? Do I need to ‘unapply’ the orientation to always remain at a specific rotation?

In the end the gyro is way over kill for such a simple task. Turns out I can just use the Input.Acceleration values. This I believe ignores what axis you may be facing:

// z of object pointing into screen

```
if (use_iphone)
{
acc = Input.acceleration * iPhone_turn_speed;
if (Mathf.Abs(acc.x) > acceleration_tolerance)
{
rot_z -= acc.x;
if (rot_z > angle_max)
rot_z = angle_max;
if (rot_z < -1 * angle_max)
rot_z = -1 * angle_max;
transform.rotation = Quaternion.AngleAxis(rot_z, Vector3.forward);
}
}
```

I found no need to normalize the input acceleration for my project, rather just take whatever away from a rotation value, which I can then confirm does not go outside the bounds I set.

Cheers