---
title: Core Motion
framework: Core Motion
role: collection
role_heading: Framework
platforms: [iOS 4.0+, iPadOS 4.0+, Mac Catalyst 13.0+, macOS 10.15+, visionOS 1.0+, watchOS 2.0+]
path: coremotion
---

# Core Motion

Process accelerometer, gyroscope, pedometer, and environment-related events.

## Overview

Overview Core Motion reports motion- and environment-related data from the available onboard hardware of iOS, iPadOS, watchOS, and visionOS devices. This hardware includes the device’s accelerometers and gyroscopes, and, when available, the pedometer, magnetometer, and barometer. Use this data in your app as input for user interactions, fitness tracking, health-related matters, and more. For example, a game might use accelerometer and gyroscope input to control onscreen game behavior. The services of this framework provide access to motion data either as raw or processed values, and many services provide both types of values. Raw values reflect the unmodified data from the hardware, while processed values eliminate forms of bias that might adversely affect your usage of the data. For example, a processed accelerometer value reflects only the acceleration caused by the user and not the acceleration caused by gravity. Not all services are available on all devices, and some services might be unavailable even on devices with the required hardware. For example, many Core Motion services are available to visionOS apps, but those services aren’t available to compatible iPad and iPhone apps running in visionOS. Before you try to use any motion-related services, check the availability of those services using a CMMotionManager object. important: An iOS app must include usage description keys in its Info.plist file for the types of data it needs. If these keys aren’t present, the app crashes when you try to access the corresponding service. To access motion and fitness data, include NSMotionUsageDescription. To access the fall-detection service, include NSFallDetectionUsageDescription.

## Topics

### Essentials

- [Core Motion updates](updates/coremotion.md)
- [CMMotionManager](coremotion/cmmotionmanager.md)

### Device motion

- [Getting processed device-motion data](coremotion/getting-processed-device-motion-data.md)
- [CMDeviceMotion](coremotion/cmdevicemotion.md)
- [CMAttitude](coremotion/cmattitude.md)
- [CMAttitudeReferenceFrame](coremotion/cmattitudereferenceframe.md)
- [CMHeadphoneMotionManager](coremotion/cmheadphonemotionmanager.md)
- [CMBodyIdentifiable](coremotion/cmbodyidentifiable.md)

### Accelerometers

- [Getting raw accelerometer events](coremotion/getting-raw-accelerometer-events.md)
- [CMAccelerometerData](coremotion/cmaccelerometerdata.md)
- [CMRecordedAccelerometerData](coremotion/cmrecordedaccelerometerdata.md)
- [CMSensorRecorder](coremotion/cmsensorrecorder.md)
- [CMSensorDataList](coremotion/cmsensordatalist.md)

### Gyroscopes

- [Getting raw gyroscope events](coremotion/getting-raw-gyroscope-events.md)
- [CMGyroData](coremotion/cmgyrodata.md)

### Magnetometer

- [CMMagnetometerData](coremotion/cmmagnetometerdata.md)

### Altitude data

- [CMAltimeter](coremotion/cmaltimeter.md)
- [CMAbsoluteAltitudeData](coremotion/cmabsolutealtitudedata.md)
- [CMAltitudeData](coremotion/cmaltitudedata.md)

### Ambient pressure

- [CMRecordedPressureData](coremotion/cmrecordedpressuredata.md)
- [CMAmbientPressureData](coremotion/cmambientpressuredata.md)

### Water submersion

- [Accessing submersion data](coremotion/accessing-submersion-data.md)
- [CMWaterSubmersionManager](coremotion/cmwatersubmersionmanager.md)
- [CMWaterSubmersionManagerDelegate](coremotion/cmwatersubmersionmanagerdelegate.md)
- [CMWaterSubmersionEvent](coremotion/cmwatersubmersionevent.md)
- [CMWaterSubmersionMeasurement](coremotion/cmwatersubmersionmeasurement.md)
- [CMWaterTemperature](coremotion/cmwatertemperature.md)

### Activity

- [CMMotionActivityManager](coremotion/cmmotionactivitymanager.md)
- [CMHeadphoneActivityManager](coremotion/cmheadphoneactivitymanager.md)
- [CMMotionActivity](coremotion/cmmotionactivity.md)
- [Getting motion-activity data from headphones](coremotion/getting-motion-activity-data-from-headphones.md)

### Pedometer and fitness

- [CMPedometer](coremotion/cmpedometer.md)
- [CMPedometerData](coremotion/cmpedometerdata.md)
- [CMPedometerEvent](coremotion/cmpedometerevent.md)
- [CMStepCounter](coremotion/cmstepcounter.md)
- [CMOdometerData](coremotion/cmodometerdata.md)
- [CMHighFrequencyHeartRateData](coremotion/cmhighfrequencyheartratedata.md)

### Movement disorder

- [Getting movement disorder symptom data](coremotion/getting-movement-disorder-symptom-data.md)
- [Adhering to the movement disorder data collection requirements](coremotion/adhering-to-the-movement-disorder-data-collection-requirements.md)
- [Movement disorder algorithm changelog](coremotion/movement-disorder-algorithm-changelog.md)
- [CMMovementDisorderManager](coremotion/cmmovementdisordermanager.md)
- [CMTremorResult](coremotion/cmtremorresult.md)
- [CMDyskineticSymptomResult](coremotion/cmdyskineticsymptomresult.md)

### Fall detection

- [CMFallDetectionManager](coremotion/cmfalldetectionmanager.md)
- [CMFallDetectionDelegate](coremotion/cmfalldetectiondelegate.md)
- [CMFallDetectionEvent](coremotion/cmfalldetectionevent.md)
- [NSFallDetectionUsageDescription](bundleresources/information-property-list/nsfalldetectionusagedescription.md)

### Historical data

- [CMBatchedSensorManager](coremotion/cmbatchedsensormanager.md)

### Common data

- [CMLogItem](coremotion/cmlogitem.md)

### Classes

- [CMRecordedDeviceMotion](coremotion/cmrecordeddevicemotion.md)
