<!--
{
  "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.

[`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.

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

A view subclass that renders a SpriteKit scene.

[`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.

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

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

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

A collection of textures optimized for storage and drawing performance.

[`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.

[`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.

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

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

[`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.

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

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

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

A definition of a range of floating-point values.

[`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.

[`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.

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

An object that adds physics simulation to a node.

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

A description of the contact between two physics bodies.

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

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

[`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.

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

The abstract superclass for objects that connect physics bodies.

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

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

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

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

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

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

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

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

[`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.

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

A two-dimensional array of images.

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

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

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

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

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

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

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

A container for related tile groups.

### Shaders

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

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

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

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

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

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

A container for dynamic shader data associated with a node.

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

A container for uniform shader data.

### Warping

Distort a node by supplying vertices and their transformations.

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

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

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

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

[`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

[`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)