<!--
{
  "documentType" : "article",
  "framework" : "RealityKit",
  "identifier" : "/documentation/RealityKit/scene-content-mesh-deformation",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Mesh deformation"
}
-->

# Mesh deformation

Reshape and animate the geometry of 3D models at runtime, applying skinning, blend shapes, and subdivision so surfaces bend, flex, and deform as a scene plays.

## Overview

This collection covers the building blocks for modifying the vertices of a model after it loads, letting you drive lifelike motion such as characters bending, faces emoting, or surfaces smoothing in real time. It includes a configurable pipeline of stages that transform geometry, options for choosing where and how that work runs on the processor or graphics hardware, and lower-level entry points for fine-grained control over the transformation. Reach for these tools when prebaked animation is not enough and you need to compute or adjust a model’s shape dynamically. They give you control over performance trade-offs and the order in which transformations apply.

## Topics

### Deformers

[`struct MeshDeformerComponent`](/documentation/RealityKit/MeshDeformerComponent)

The component that applies mesh deformations to an `Entity`.

[`protocol MeshDeformer`](/documentation/RealityKit/MeshDeformer)

An interface for all deformation types in a deformation definition, both built-in and custom.
The users overrides all functions to implement a custom `MeshDeformer`, and can in general ignore
all but the constructors for built-in deformers.

[`struct SkinningDeformer`](/documentation/RealityKit/SkinningDeformer)

A deformation that binds a 3D mesh to an underlying skeleton.

[`struct BlendShapeDeformer`](/documentation/RealityKit/BlendShapeDeformer)

A blend-shape deformation that interpolates between N meshes according to a weighted sum.
Consumes information from the `BlendShapeWeightsComponent`

### Parameters and options

[`struct MeshDeformerOptions`](/documentation/RealityKit/MeshDeformerOptions)

Specifies constant options for `MeshDeformer`

[`struct MeshDeformerVertexOptions`](/documentation/RealityKit/MeshDeformerVertexOptions)

MeshDeformerVertexOptions allows developers to specify which vertex types in the mesh to allocate in the input and output buffers for mesh deformations.

[`enum MeshDeformerExecutionMode`](/documentation/RealityKit/MeshDeformerExecutionMode)

Specifies which `MesDeformer.deform` function will be called when used with custom deformers.

[`struct MeshDeformParameter`](/documentation/RealityKit/MeshDeformParameter)

Base class for GPU and CPU custom deform function input

[`struct MeshDeformationStack`](/documentation/RealityKit/MeshDeformationStack)

A set of `MeshDeformer`s to apply in order to a mesh, or a proper subset of the mesh specified by `Target`s.
If at any point, a deformer in the stack updates, all deformers later in the stack will also update.

[`struct MeshScope`](/documentation/RealityKit/MeshScope)

The elements of a mesh resource that a deformation stack applies to.

[`typealias MeshDeformParameterCPU`](/documentation/RealityKit/MeshDeformParameterCPU)

convenience alias

[`typealias MeshDeformParameterGPU`](/documentation/RealityKit/MeshDeformParameterGPU)

convenience alias

[`typealias MeshDeformParametersCPU`](/documentation/RealityKit/MeshDeformParametersCPU)

convenience alias

[`typealias MeshDeformParametersGPU`](/documentation/RealityKit/MeshDeformParametersGPU)

convenience alias

[`typealias MeshDeformCPUBufferInput`](/documentation/RealityKit/MeshDeformCPUBufferInput)

The underlying type of deformer input data buffers for the CPU functions.

[`typealias MeshDeformGPUBufferInput`](/documentation/RealityKit/MeshDeformGPUBufferInput)

The underlying type of deformer input data buffers for the GPU functions.

[`typealias MeshDeformCPUBufferOutput`](/documentation/RealityKit/MeshDeformCPUBufferOutput)

The underlying type of deformer output data buffers for the CPU functions.

[`typealias MeshDeformGPUBufferOutput`](/documentation/RealityKit/MeshDeformGPUBufferOutput)

The underlying type of deformer input data buffers for the GPU functions.

### Low-level deformation

[`class LowLevelDeformation`](/documentation/RealityKit/LowLevelDeformation)

An object that encodes blend-shape, skinning, and renormalization passes into a Metal compute
command encoder.

[`class LowLevelDeformationContext`](/documentation/RealityKit/LowLevelDeformationContext)

An object that manages shared resources for [`LowLevelDeformation`](/documentation/RealityKit/LowLevelDeformation) instances.



---

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)