<!--
{
  "availability" : [
    "iOS: 8.0.0 - 26.0.0",
    "iPadOS: 8.0.0 - 26.0.0",
    "macCatalyst: 13.1.0 - 26.0.0",
    "macOS: 10.8.0 - 26.0.0",
    "tvOS: 9.0.0 - 26.0.0",
    "visionOS: 1.0.0 - 26.0.0",
    "watchOS: 3.0.0 - 26.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/SCNVector3",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "SceneKit"
    ],
    "preciseIdentifier" : "c:@S@SCNVector3"
  },
  "title" : "SCNVector3"
}
-->

# SCNVector3

A representation of a three-component vector.

```
struct SCNVector3
```

## Overview

SceneKit uses three-component vectors for a variety of purposes, such as describing node or vertex positions, surface normals, and scale or translation transforms. The different vector components should be interpreted based on the context in which the vector is being used.

> Important:
> In macOS, the `x`, `y`, and `z` fields in this structure are <doc://com.apple.documentation/documentation/CoreFoundation/CGFloat-swift.struct> values. In iOS, tvOS, and watchOS, these fields are `float` values.

## Topics

### Components

[`x`](/documentation/SceneKit/SCNVector3/x)

The first component in the vector.

[`y`](/documentation/SceneKit/SCNVector3/y)

The second component in the vector.

[`z`](/documentation/SceneKit/SCNVector3/z)

The third component in the vector.

### Creating Vectors

[`SCNVector3Make`](/documentation/SceneKit/SCNVector3Make(_:_:_:))

Returns a new three-component vector created from individual component values.

### Converting Vector Types

[`SCNVector3FromGLKVector3`](/documentation/SceneKit/SCNVector3FromGLKVector3(_:))

Returns a three-element SceneKit vector structure corresponding to a GLKit vector structure.

[`SCNVector3ToGLKVector3`](/documentation/SceneKit/SCNVector3ToGLKVector3(_:))

Returns a three-element GLKit vector structure corresponding to a SceneKit vector structure.

[`SCNVector3FromFloat3`](/documentation/SceneKit/SCNVector3FromFloat3)

[`SCNVector3ToFloat3`](/documentation/SceneKit/SCNVector3ToFloat3)

### Comparing Vectors

[`SCNVector3EqualToVector3`](/documentation/SceneKit/SCNVector3EqualToVector3(_:_:))

Returns a Boolean value that indicates whether the corresponding components of two vectors are equal.

### Zero Constant

[`SCNVector3Zero`](/documentation/SceneKit/SCNVector3Zero)

The three-component vector whose every component is `0.0`.

## Relationships

### Conforms To

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

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

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

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

---

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)