DeviceOrientationEvent — compass heading, tilt, and rotation. iOS 13+ requires an explicit permission request; Android fires events automatically.
The rose rotates to show device heading (alpha). Point the top of the device toward north — the N should align with your actual north.
Chart of the last 120 heading samples. A smooth line indicates a stable, usable compass. Noise and jumps indicate interference (metal, electronics) or rapid movement.
Slow rotation to test gimbal lock near ±90° pitch (looking straight up/down causes α to become undefined).