On first launch, iOS will ask permission to access Motion & Fitness data. Tap Allow. Without this permission, the app cannot read the sensors and will display no angles.
If you accidentally denied permission, go to Settings → Privacy & Security → Motion & Fitness and enable the toggle for 3D Seg/Joint Angles.
Choose the Cardan/Euler rotation sequence that matches your measurement protocol using the picker at the top of the screen. The default is X-Z-Y, which is recommended for most lower-limb joint measurements. The sequence determines the mathematical order in which rotations about each axis are applied, which affects the angle values.
Place the iPhone on the body segment you wish to measure. Hold it still, then press Set Initial Position. This captures the current device orientation as the zero-degree reference frame. All subsequent angles are measured relative to this position.
Move the phone (or the body segment it is attached to). The X, Y, and Z angles update in real time at 60 Hz, showing the 3D rotation from the initial position to the current position.
Tap Start Recording to log angle data over time. Tap Stop Recording to end the session. The recorded angles are plotted on screen. Tap Export CSV to share the data file via email, AirDrop, Files, or any other app.
The app measures rotations about the physical axes of the iPhone:
| Axis | Direction on Phone | Biomechanical Association | Positive Rotation |
|---|---|---|---|
| X | Points to the right side of the phone | Medial-lateral axis (flexion/extension) | Right-hand rule about +X |
| Y | Points toward the top (Home button end or top edge) | Longitudinal axis (internal/external rotation) | Right-hand rule about +Y |
| Z | Points out of the screen face (toward you) | Anterior-posterior axis (abduction/adduction) | Right-hand rule about +Z |
Positive and negative angle signs follow the right-hand rule: curl the fingers of the right hand in the direction of rotation; the thumb points in the positive axis direction.
A Cardan (Tait-Bryan) rotation sequence defines the order in which three successive rotations are applied. The order matters because 3D rotations are not commutative - rotating X then Y gives a different result than Y then X.
| Sequence | Rotation Order | Common Application |
|---|---|---|
| X-Z-Y | Rotate about X first, then Z, then Y | Lower-limb joints (knee, ankle, hip) - recommended default |
| X-Y-Z | Rotate about X first, then Y, then Z | General biomechanics |
| Y-X-Z | Rotate about Y first, then X, then Z | Upper-limb joints, trunk |
| Y-Z-X | Rotate about Y first, then Z, then X | Spine, thorax |
| Z-X-Y | Rotate about Z first, then X, then Y | Foot, ankle complex |
| Z-Y-X | Rotate about Z first, then Y, then X | Head, cervical spine |
Regardless of the sequence selected, angles are always displayed on screen in X, Y, Z order.
Check that Motion & Fitness permission has been granted: Settings → Privacy & Security → Motion & Fitness. Enable the toggle for 3D Seg/Joint Angles and restart the app. If the problem persists, restart your iPhone.
Small errors accumulate in the gyroscope over time (sensor drift). This is a hardware limitation common to all MEMS IMU sensors. For long measurement sessions, press Set Initial Position again at the start of each trial to reset the reference. Keeping sessions short also reduces drift.
The Z-axis orientation relies on the magnetometer (compass) to define the heading reference. Magnetic interference from metal structures, electronic equipment, medical devices, or ferromagnetic materials can disturb the magnetometer and cause inaccurate Z-axis readings. Move away from interference sources and recalibrate. In laboratory settings with metal equipment, consider using rotation sequences that minimize reliance on the Z axis for your primary measurement.
Sudden jumps can occur near a gimbal lock condition - a mathematical singularity that occurs when the second rotation in the sequence approaches plus or minus 90 degrees. If this is a problem, try switching to a different rotation sequence where the singularity is not in the range of motion you are measuring.
Ensure the phone is oriented on the body segment so that its physical axes align with your intended anatomical axes before pressing Set Initial Position. The X axis points to the right side of the phone, Y toward the top, and Z out of the screen. Attaching the phone consistently to the same surface of the segment (e.g., always the anterior surface) and in the same orientation will ensure consistent results across trials.
This depends on your convention. A common approach is to place the screen face away from the body (so Z points away from the skin). Document your placement convention and apply it consistently across all measurements. The app computes angles relative to whichever orientation you set as the initial position, so the absolute placement matters less than consistency.
Yes. Use one iPhone per segment. Set the initial position on both phones with the segments in the reference anatomical position. The relative motion between the two phones represents the joint angle. The difference between the two phones' angle readings gives the joint angle for each axis. A future version of the app may automate this calculation.
Yes, with appropriate sequence selection. For the trunk and spine, Y-X-Z or Y-Z-X are commonly used. For the shoulder or elbow, consult your institution's biomechanics protocol for the recommended sequence. Always validate the output against a known motion before data collection.
A small amount of slow drift (typically less than 1-2 degrees per minute) is normal due to gyroscope bias. The app uses Apple's CoreMotion sensor fusion, which applies corrections using the accelerometer and magnetometer to minimize drift. If drift is excessive, try restarting the app. Extreme temperatures can also affect sensor performance.
Before calibration, the app displays raw orientation angles relative to the global reference frame (gravity and magnetic north). These readings are not clinically meaningful until you press Set Initial Position to define your reference frame.
Yes. The exported CSV file (Time in seconds, X, Y, Z in degrees) can be opened directly in Microsoft Excel, Google Sheets, Numbers, MATLAB, Python (pandas), R, or any application that reads comma-separated values.
Recording duration is limited by your device's available RAM. In practice, recording sessions of many minutes are supported. For very long sessions (e.g., gait analysis over many minutes), consider using shorter recording windows per trial and exporting between trials.
The app is designed for research, education, and rehabilitation purposes and provides measurements consistent with standard IMU-based goniometry. It is not a certified medical device and has not been evaluated by the FDA, CE, or any regulatory authority. Results should be validated against gold-standard instrumentation before use in formal research or clinical decision-making.
The app is designed and tested for iPhone. It may run on iPad but is not officially supported and has not been validated on iPad hardware.
No. Angle computation and recording require the app to be in the foreground. If the screen locks or you switch to another app, motion updates will pause.
No. The app works entirely offline. No internet connection is required at any time for any feature.
Force-close the app by swiping it away from the App Switcher and relaunch it. If you need a full reset, delete and reinstall the app from the App Store. No data is stored, so reinstalling does not cause data loss.