<!--
{
  "documentType" : "article",
  "framework" : "SceneKit",
  "identifier" : "/documentation/SceneKit/scenekit-3d-data-types",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "SceneKit 3D Data Types"
}
-->

# SceneKit 3D Data Types

SceneKit-specific vectors, matrices, and related functions and operations.

## Discussion> Important:
> In macOS 10.13, iOS 11, tvOS 11, and watchOS 4 (or later), use data types provided by the system SIMD library (such as `float3` and `float4x4`) and the corresponding SceneKit methods (such as ``doc://com.apple.scenekit/documentation/SceneKit/SCNNode/simdPosition`` and ``doc://com.apple.scenekit/documentation/SceneKit/SCNNode/simdTransform``) instead. These types provide faster performance, offer more concise C, C++, and Swift syntax (such as `+` and `*` operators instead of functions), and interoperate better with other technologies (such as Model I/O, GameplayKit, and the Metal Shading Language).

## Topics

### Vectors

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

A representation of a three-component vector.

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

A representation of a four-component vector.

### Transforms and Rotations

[`SCNMatrix4`](/documentation/SceneKit/SCNMatrix4-swift.struct)

A representation of a 4 x 4 matrix.

[`SCNMatrix4`](/documentation/SceneKit/SCNMatrix4-swift.typealias)

A representation of a 4 x 4 matrix.

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

A representation of a quaternion.

### Scalars

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

The element type for SceneKit vectors and matrices.



---

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)