**Platform-specific guides**

### Android (Kotlin/Java)

- [Camera configs](https://developers.google.com/ar/develop/java/camera-configs)
- [Camera image metadata](https://developers.google.com/ar/develop/java/camera-metadata)
- [Buffering camera frames](https://developers.google.com/ar/develop/java/buffer-multiple-frames)
- [Sharing camera access with ARCore](https://developers.google.com/ar/develop/java/camera-sharing)

### Android NDK (C)

- [Camera configs](https://developers.google.com/ar/develop/c/camera-configs)
- [Camera image metadata](https://developers.google.com/ar/develop/c/camera-metadata)
- [Buffering camera frames](https://developers.google.com/ar/develop/c/buffer-multiple-frames)

### Unity (AR Foundation)

- [Camera configs](https://developers.google.com/ar/develop/unity-arf/camera-configs)

### Unreal Engine

- [ARCore SDK for Unreal Engine (official documentation)](https://docs.unrealengine.com/5.0/en-US/developing-for-arcore-in-unreal-engine/)

The user's device has cameras (usually both front and back) and various sensors,
such as an accelerometer, that provide data to your AR app for interpreting the
real world. The camera itself may have a depth sensor and be able to determine
the range, dimensions, and other useful data about the targets it detects.

For your AR app, you configure the camera for optimal performance. You can also
use camera image metadata, frame buffering, and shared camera access to tune
performance. The guides above describe some of the AR camera capabilities for
each platform.