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

# SK3DNode

3D SceneKit content drawn as a flattened sprite.

```
class SK3DNode
```

## Overview

Use [`SK3DNode`](/documentation/SpriteKit/SK3DNode) objects to incorporate 3D SceneKit content into a SpriteKit-based game. When SpriteKit renders the node, the SceneKit scene is animated and rendered first. Then this rendered image is composited into the SpriteKit scene. Use the [`scnScene`](/documentation/SpriteKit/SK3DNode/scnScene) property to specify the SceneKit scene to be rendered.

## Topics

### Getting Started with 3D Node

[Displaying 3D Content in a SpriteKit Scene](/documentation/SpriteKit/displaying-3d-content-in-a-spritekit-scene)

Draw SceneKit content in a SpriteKit scene by using a 3D node.

### Creating 3D Nodes

[`+  nodeWithViewportSize:`](/documentation/SpriteKit/SK3DNode/nodeWithViewportSize:)

Creates and initializes a new 3D node.

[`-  initWithViewportSize:`](/documentation/SpriteKit/SK3DNode/init(viewportSize:))

Initializes a new 3D node.

[`-  initWithCoder:`](/documentation/SpriteKit/SK3DNode/init(coder:))

Tells you when to initialize a 3D node that has been unarchived.

### Configuring a 3D Node

[`viewportSize`](/documentation/SpriteKit/SK3DNode/viewportSize)

The size of the image rendered by the node.

[`scnScene`](/documentation/SpriteKit/SK3DNode/scnScene)

The SceneKit scene to render.

[`pointOfView`](/documentation/SpriteKit/SK3DNode/pointOfView)

The Scene Kit node from which the scene’s contents are viewed when rendered.

[`autoenablesDefaultLighting`](/documentation/SpriteKit/SK3DNode/autoenablesDefaultLighting)

A Boolean value that determines whether Scene Kit automatically adds lights to a scene.

### Animating a 3D Node’s Content in Scene Kit

[`playing`](/documentation/SpriteKit/SK3DNode/isPlaying)

A Boolean value that determines whether the scene is playing.

[`loops`](/documentation/SpriteKit/SK3DNode/loops)

A Boolean value that determines whether Scene Kit restarts the scene time after all animations in the scene have played.

[`sceneTime`](/documentation/SpriteKit/SK3DNode/sceneTime)

The current scene time.

### Projecting Points and Performing Hit-Testing

[`-  hitTest:options:`](/documentation/SpriteKit/SK3DNode/hitTest(_:options:))

Searches the Scene Kit scene for objects corresponding to a point in the rendered image.

[`-  projectPoint:`](/documentation/SpriteKit/SK3DNode/projectPoint(_:))

Projects a point from the 3D world coordinate system of the SceneKit scene to the 2D viewport coordinate system of the SpriteKit node.

[`-  unprojectPoint:`](/documentation/SpriteKit/SK3DNode/unprojectPoint(_:))

Unprojects a point from the SpriteKit node’s 2D viewport coordinate system to the 3D world coordinate system of the SceneKit scene.

## Relationships

### Conforms To

[`UIUserActivityRestoring`](/documentation/UIKit/UIUserActivityRestoring)

[`UIActivityItemsConfigurationProviding`](/documentation/UIKit/UIActivityItemsConfigurationProviding)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSUserActivityRestoring`](/documentation/AppKit/NSUserActivityRestoring)

[`Equatable`](/documentation/Swift/Equatable)

[`NSStandardKeyBindingResponding`](/documentation/AppKit/NSStandardKeyBindingResponding)

[`UIPasteConfigurationSupporting`](/documentation/UIKit/UIPasteConfigurationSupporting)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`UIFocusItemContainer`](/documentation/UIKit/UIFocusItemContainer)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Hashable`](/documentation/Swift/Hashable)

[`NSTouchBarProvider`](/documentation/AppKit/NSTouchBarProvider)

[`UIFocusItem`](/documentation/UIKit/UIFocusItem)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`UICoordinateSpace`](/documentation/UIKit/UICoordinateSpace)

[`UIFocusEnvironment`](/documentation/UIKit/UIFocusEnvironment)

[`Sendable`](/documentation/Swift/Sendable)

[`UIResponderStandardEditActions`](/documentation/UIKit/UIResponderStandardEditActions)

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

### Inherits From

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

---

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)