<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARSCNFaceGeometry",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARSCNFaceGeometry"
  },
  "title" : "ARSCNFaceGeometry"
}
-->

# ARSCNFaceGeometry

A SceneKit representation of face topology for use with face information that an AR session provides.

```
class ARSCNFaceGeometry
```

## Overview

This class is a subclass of <doc://com.apple.documentation/documentation/SceneKit/SCNGeometry> that wraps the mesh data provided by the [`ARFaceGeometry`](/documentation/ARKit/ARFaceGeometry) class. You can use [`ARSCNFaceGeometry`](/documentation/ARKit/ARSCNFaceGeometry) to quickly and easily visualize face topology and facial expressions provided by ARKit in a SceneKit view.

> Important:
> ``doc://com.apple.arkit/documentation/ARKit/ARSCNFaceGeometry`` is available only in SceneKit views or renderers that use Metal. This class is not supported for OpenGL-based SceneKit rendering.

Face mesh topology is constant for the lifetime of an [`ARSCNFaceGeometry`](/documentation/ARKit/ARSCNFaceGeometry) object. That is, the geometry’s single <doc://com.apple.documentation/documentation/SceneKit/SCNGeometryElement> object always describes the same arrangement of vertices, and the <doc://com.apple.documentation/documentation/SceneKit/SCNGeometrySource/Semantic-swift.struct/texcoord> geometry source always maps the same vertices to the same texture coordinates.

When you modify the geometry with the [`update(from:)`](/documentation/ARKit/ARSCNFaceGeometry/update(from:)) method, only the contents of the <doc://com.apple.documentation/documentation/SceneKit/SCNGeometrySource/Semantic-swift.struct/vertex> geometry source change, indicating the difference in vertex positions as ARKit adapts the mesh to the shape and expression of the user’s face.

## Topics

### Creating a Geometry

[`init(device:)`](/documentation/ARKit/ARSCNFaceGeometry/init(device:))

Creates a SceneKit face geometry for rendering with the specified Metal device object.

[`init(device:fillMesh:)`](/documentation/ARKit/ARSCNFaceGeometry/init(device:fillMesh:))

Creates a SceneKit face geometry, optionally filling in gaps in the mesh for the eyes and mouth.

### Updating the Geometry

[`update(from:)`](/documentation/ARKit/ARSCNFaceGeometry/update(from:))

Deforms the SceneKit geometry to match the specified face mesh.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)