<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 3.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SpriteKit",
  "identifier" : "/documentation/SpriteKit/SKWarpGeometryGrid",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "SpriteKit"
    ],
    "preciseIdentifier" : "c:objc(cs)SKWarpGeometryGrid"
  },
  "title" : "SKWarpGeometryGrid"
}
-->

# SKWarpGeometryGrid

A definition for a grid-based deformation of nodes that conform to [`SKWarpable`](/documentation/SpriteKit/SKWarpable).

```
class SKWarpGeometryGrid
```

## Overview

An `SKWarpGeometryGrid` exposes a 2D array of source positions, and set of destination positions with matching size, that allow you to define which sections of a node should be translated from the source positions to the destination positions. Conceptually, this forms two grids—a source grid and a destination grid—where the visual warping is accomplished by stretching or shrinking each section of the node as the source positions of the grid interpolate to their corresponding destination positions.

## Topics

### Creating a Warp Geometry Grid

[`init(columns:rows:)`](/documentation/SpriteKit/SKWarpGeometryGrid/init(columns:rows:))

Creates a warp geometry grid of a specified size.

[`init(columns:rows:sourcePositions:destinationPositions:)`](/documentation/SpriteKit/SKWarpGeometryGrid/init(columns:rows:sourcePositions:destinationPositions:))

Creates a warp geometry grid of a specific size and warp translation, in point arrays.

[`initWithColumns:rows:sourcePositions:destPositions:`](/documentation/SpriteKit/SKWarpGeometryGrid/initWithColumns:rows:sourcePositions:destPositions:)

Creates a warp geometry grid of a specific size and warp translation, in pointers to point arrays.

[`gridWithColumns:rows:sourcePositions:destPositions:`](/documentation/SpriteKit/SKWarpGeometryGrid/gridWithColumns:rows:sourcePositions:destPositions:)

[`grid`](/documentation/SpriteKit/SKWarpGeometryGrid/grid)

Initializes a new empty grid.

[`init(coder:)`](/documentation/SpriteKit/SKWarpGeometryGrid/init(coder:))

Tells you when to intialize a grid that was loaded from an archive.

### Animating Warping

[Animate the Warping of a Sprite](/documentation/SpriteKit/animate-the-warping-of-a-sprite)

Interpolate warping from source to destination warp geometry grids.

### Accessing or Setting Warp Geometry Grid Size

[`numberOfColumns`](/documentation/SpriteKit/SKWarpGeometryGrid/numberOfColumns)

The object’s number of columns.

[`numberOfRows`](/documentation/SpriteKit/SKWarpGeometryGrid/numberOfRows)

The object’s number of rows.

[`vertexCount`](/documentation/SpriteKit/SKWarpGeometryGrid/vertexCount)

The object’s total number of vertices.

### Accessing or Setting Grid Vertices

Get or set `float2` values that correspond to individual vertices of the grid.

[`destPosition(at:)`](/documentation/SpriteKit/SKWarpGeometryGrid/destPosition(at:))

Returns the destination position of a vertex.

[`replacingByDestinationPositions(positions:)`](/documentation/SpriteKit/SKWarpGeometryGrid/replacingByDestinationPositions(positions:))

Returns a copy of this grid, updated with the argument destination positions.

[`replacingBySourcePositions(positions:)`](/documentation/SpriteKit/SKWarpGeometryGrid/replacingBySourcePositions(positions:))

Returns a copy of this grid, updated with the argument source positions.

[`sourcePosition(at:)`](/documentation/SpriteKit/SKWarpGeometryGrid/sourcePosition(at:))

Returns the source position of a vertex.

[`gridByReplacingDestPositions:`](/documentation/SpriteKit/SKWarpGeometryGrid/gridByReplacingDestPositions:)

Returns a copy of the receiver with the destination positions replaced by a specified array.

[`gridByReplacingSourcePositions:`](/documentation/SpriteKit/SKWarpGeometryGrid/gridByReplacingSourcePositions:)

Returns a copy of the receiver with the source positions replaced by a specified array.



---

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)