---
title: ARFaceAnchor
framework: arkit
role: symbol
role_heading: Class
path: arkit/arfaceanchor
---

# ARFaceAnchor

An anchor for a unique face that is visible in the front-facing camera.

## Declaration

```swift
class ARFaceAnchor
```

## Mentioned in

Understanding World Tracking

## Overview

Overview The session automatically adds to its list of anchors an ARFaceAnchor object when it detects a unique face in the front camera feed. When you track faces using ARFaceTrackingConfiguration, ARKit can track multiple faces simultaneously. Alternatively, you can enable face tracking with a world tracking configuration by setting . Tracking Face Position and Orientation The inherited transform property describes the face’s current position and orientation in world coordinates; that is, in a coordinate space relative to that specified by the worldAlignment property of the session configuration. Use this transform matrix to position virtual content you want to “attach” to the face in your AR scene. This transform matrix creates a face coordinates system for positioning other elements relative to the face. Units of face coordinate space are in meters, with the origin centered behind the face as indicated in the figure below.

The coordinate system is right-handed—the positive x direction points to the viewer’s right (that is, the face’s own left), the positive y direction points up (relative to the face itself, not to the world), and the positive z direction points outward from the face (toward the viewer). Using Face Topology The geometry property provides an ARFaceGeometry object representing detailed topology for the face, which conforms a generic face model to match the dimensions, shape, and current expression of the detected face. You can use this model as the basis for overlaying content that follows the shape of the user’s face—for example, to apply virtual makeup or tattoos. You can also use this model to create occlusion geometry—a 3D model that doesn’t render any visible content (allowing the camera image to show through), but that obstructs the camera’s view of other virtual content in the scene. Tracking Facial Expressions The blendShapes property provides a high-level model of the current facial expression, described via a series of many named coefficients that represent the movement of specific facial features relative to their neutral configurations. You can use blend shape coefficients to animate 2D or 3D content, such as a character or avatar, in ways that follow the user’s facial expressions.

## Topics

### Using Face Geometry

- [geometry](arkit/arfaceanchor/geometry.md)

### Using Blend Shapes

- [blendShapes](arkit/arfaceanchor/blendshapes.md)
- [ARFaceAnchor.BlendShapeLocation](arkit/arfaceanchor/blendshapelocation.md)

### Tracking Eye Movement

- [leftEyeTransform](arkit/arfaceanchor/lefteyetransform.md)
- [rightEyeTransform](arkit/arfaceanchor/righteyetransform.md)
- [lookAtPoint](arkit/arfaceanchor/lookatpoint.md)

## Relationships

### Inherits From

- [ARAnchor](arkit/aranchor.md)

### Conforms To

- [ARAnchorCopying](arkit/aranchorcopying.md)
- [ARTrackable](arkit/artrackable.md)
- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Face Tracking

- [Tracking and visualizing faces](arkit/tracking-and-visualizing-faces.md)
- [Combining user face-tracking and world tracking](arkit/combining-user-face-tracking-and-world-tracking.md)
