<!--
{
  "availability" : [
    "iOS: 7.0.0 -",
    "iPadOS: 7.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.9.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 10.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SpriteKit",
  "identifier" : "/documentation/SpriteKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "SpriteKit"
    ],
    "preciseIdentifier" : "SpriteKit"
  },
  "title" : "SpriteKit"
}
-->

# SpriteKit

Add high-performance 2D content with smooth animations to your app, or create a game with a high-level set of 2D game-based tools.

## Overview

SpriteKit is a general-purpose framework for drawing shapes, particles, text, images, and video in two dimensions. It leverages Metal to achieve high-performance rendering, while offering a simple programming interface to make it easy to create games and other graphics-intensive apps. Using a rich set of animations and physics behaviors, you can quickly add life to your visual elements and gracefully transition between screens.

SpriteKit is supported in iOS, macOS, tvOS, and watchOS, and it integrates well with frameworks such as GameplayKit and SceneKit. You can use SpriteKit in a compatible iPhone or iPad app running in visionOS, but don’t use it in apps you create specifically for visionOS.

## Topics

### Essentials

[Drawing SpriteKit Content in a View](/documentation/SpriteKit/drawing-spritekit-content-in-a-view)

Display visual content using SpriteKit.

[`class SKScene`](/documentation/SpriteKit/SKScene)

An object that organizes all of the active SpriteKit content.

[Nodes for Scene Building](/documentation/SpriteKit/nodes-for-scene-building)

Define the appearance or layout of scene content.

### Scene Renderers

Draw a SpriteKit scene using a rendering object.

[Choosing a SpriteKit Scene Renderer](/documentation/SpriteKit/choosing-a-spritekit-scene-renderer)

Compare the different ways to display a SpriteKit scene.

[`class SKView`](/documentation/SpriteKit/SKView)

A view subclass that renders a SpriteKit scene.

[`class SKRenderer`](/documentation/SpriteKit/SKRenderer)

An object that renders a scene into a custom Metal rendering pipeline and drives the scene update cycle.

  <doc://com.apple.documentation/documentation/WatchKit/WKInterfaceSKScene>

### Textures

Load graphics from various sources, or use an atlas to maximize rendering performance.

[Maximizing Texture Performance](/documentation/SpriteKit/maximizing-texture-performance)

Speed up image display and enable more images to be displayed at one time.

[`class SKTexture`](/documentation/SpriteKit/SKTexture)

An image, decoded on the GPU, that can be used to render various SpriteKit objects.

[`class SKTextureAtlas`](/documentation/SpriteKit/SKTextureAtlas)

A collection of textures optimized for storage and drawing performance.

[`class SKMutableTexture`](/documentation/SpriteKit/SKMutableTexture)

A texture whose contents can be dynamically updated.

### Animation

Animate nodes by using a suite of provided actions, or create custom actions.

[Getting Started with Actions](/documentation/SpriteKit/getting-started-with-actions)

Create, configure, and run actions in SpriteKit.

[`class SKAction`](/documentation/SpriteKit/SKAction)

An object that is run by a node to change its structure or content.

### Constraints

Constrain the position or orientation of nodes.

[`class SKConstraint`](/documentation/SpriteKit/SKConstraint)

A specification for constraining a node’s position or rotation.

[`class SKReachConstraints`](/documentation/SpriteKit/SKReachConstraints)

A specification of the degree of freedom when solving inverse kinematics.

### Mathematical Tools

Multipurpose mathematical objects you use to facilitate other graphical work.

[`class SKKeyframeSequence`](/documentation/SpriteKit/SKKeyframeSequence)

An object that performs interpolation between values specified at different times (keyframes).

[`class SKRange`](/documentation/SpriteKit/SKRange)

A definition of a range of floating-point values.

[`class SKRegion`](/documentation/SpriteKit/SKRegion)

The definition of an arbitrary area.

### Physics Simulation

Add physics behaviors to nodes in your scene.

[Getting Started with Physics](/documentation/SpriteKit/getting-started-with-physics)

Simulate gravity, acceleration, collision detection, or joints.

[`class SKPhysicsWorld`](/documentation/SpriteKit/SKPhysicsWorld)

The driver of the physics engine in a scene; it exposes the ability for you to configure and query the physics system.

[`class SKPhysicsBody`](/documentation/SpriteKit/SKPhysicsBody)

An object that adds physics simulation to a node.

[`class SKPhysicsContact`](/documentation/SpriteKit/SKPhysicsContact)

A description of the contact between two physics bodies.

[`protocol SKPhysicsContactDelegate`](/documentation/SpriteKit/SKPhysicsContactDelegate)

Methods your app can implement to respond when physics bodies come into contact.

[`class SKFieldNode`](/documentation/SpriteKit/SKFieldNode)

A node that applies physics effects to nearby nodes.

### Physics Joints

Connect physics bodies by using conceptual tools like pins, sliding joints, and spring joints.

[Working with Inverse Kinematics](/documentation/SpriteKit/working-with-inverse-kinematics)

Gain fine-tuned control of objects that are connected by joints.

[`class SKPhysicsJoint`](/documentation/SpriteKit/SKPhysicsJoint)

The abstract superclass for objects that connect physics bodies.

[`class SKPhysicsJointFixed`](/documentation/SpriteKit/SKPhysicsJointFixed)

A joint that fuses two physics bodies together at a reference point.

[`class SKPhysicsJointLimit`](/documentation/SpriteKit/SKPhysicsJointLimit)

A joint that imposes a maximum distance between two physics bodies, as if they were connected by a rope.

[`class SKPhysicsJointPin`](/documentation/SpriteKit/SKPhysicsJointPin)

A joint that pins together two physics bodies, allowing independent rotation.

[`class SKPhysicsJointSliding`](/documentation/SpriteKit/SKPhysicsJointSliding)

A joint that allows two physics bodies to slide along an axis.

[`class SKPhysicsJointSpring`](/documentation/SpriteKit/SKPhysicsJointSpring)

A joint that simulates a spring connecting two physics bodies.

### Tiling

Configure the images or autotiling behavior of a tile map node.

[`class SKTileMapNode`](/documentation/SpriteKit/SKTileMapNode)

A two-dimensional array of images.

[`class SKTileDefinition`](/documentation/SpriteKit/SKTileDefinition)

A single tile that can be repeated in a tile map.

[`class SKTileGroup`](/documentation/SpriteKit/SKTileGroup)

A set of tiles that collectively define one type of terrain.

[`class SKTileGroupRule`](/documentation/SpriteKit/SKTileGroupRule)

Rules that describe how various tiles should be placed in a map.

[`class SKTileSet`](/documentation/SpriteKit/SKTileSet)

A container for related tile groups.

### Shaders

Customize node drawing by augmenting the node’s color or shape.

[`class SKShader`](/documentation/SpriteKit/SKShader)

An object that allows you to apply a custom fragment shader.

[`class SKAttribute`](/documentation/SpriteKit/SKAttribute)

A specification for dynamic per-node data used with a custom shader.

[`class SKAttributeValue`](/documentation/SpriteKit/SKAttributeValue)

A container for dynamic shader data associated with a node.

[`class SKUniform`](/documentation/SpriteKit/SKUniform)

A container for uniform shader data.

### Warping

Distort a node by supplying vertices and their transformations.

[`class SKWarpGeometry`](/documentation/SpriteKit/SKWarpGeometry)

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

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

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

[`protocol SKWarpable`](/documentation/SpriteKit/SKWarpable)

A protocol for objects that can be warped and animated by an [`SKWarpGeometry`](/documentation/SpriteKit/SKWarpGeometry).

### Reference

[SpriteKit Enumerations](/documentation/SpriteKit/spritekit-enumerations)

Enumerations used across SpriteKit.

[SpriteKit Data Types](/documentation/SpriteKit/spritekit-data-types)

Data types used across SpriteKit.

[SpriteKit Constants](/documentation/SpriteKit/spritekit-constants)

Constants used across SpriteKit.

[SpriteKit Type Aliases](/documentation/SpriteKit/spritekit-type-aliases)

Type aliases used across SpriteKit.

[SpriteKit Variables](/documentation/SpriteKit/spritekit-variables)

Global variables and macros used across SpriteKit.

### Structures

[`struct SpriteView`](/documentation/SpriteKit/SpriteView)

A SwiftUI view that renders a SpriteKit scene.



---

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)