---
title: Spatial
framework: Spatial
role: collection
role_heading: Framework
platforms: [iOS 16.0+, iPadOS 16.0+, Mac Catalyst 16.0+, macOS 13.0+, tvOS 16.0+, visionOS 1.0+, watchOS 9.0+]
path: spatial
---

# Spatial

Create and manipulate 3D mathematical primitives.

## Overview

Overview The Spatial module is a lightweight 3D mathematical library that provides a simple API for working with 3D primitives. Much of its functionality is similar to the 2D geometry support in Core Graphics, but in three dimensions.

## Topics

### Data structures

- [Vector3D](spatial/vector3d.md)
- [Vector3DFloat](spatial/vector3dfloat.md)
- [Axis3D](spatial/axis3d.md)

### 2D primitives

- [Angle2D](spatial/angle2d.md)
- [Angle2DFloat](spatial/angle2dfloat.md)

### 3D primitives

- [Point3D](spatial/point3d.md)
- [Point3DFloat](spatial/point3dfloat.md)
- [Size3D](spatial/size3d.md)
- [Size3DFloat](spatial/size3dfloat.md)
- [Rect3D](spatial/rect3d.md)
- [Rect3DFloat](spatial/rect3dfloat.md)
- [Rotation3D](spatial/rotation3d.md)
- [Rotation3DFloat](spatial/rotation3dfloat.md)
- [RotationAxis3D](spatial/rotationaxis3d.md)
- [RotationAxis3DFloat](spatial/rotationaxis3dfloat.md)
- [Pose3D](spatial/pose3d.md)
- [Pose3DFloat](spatial/pose3dfloat.md)
- [ScaledPose3D](spatial/scaledpose3d.md)
- [ScaledPose3DFloat](spatial/scaledpose3dfloat.md)
- [SphericalCoordinates3D](spatial/sphericalcoordinates3d.md)
- [SphericalCoordinates3DFloat](spatial/sphericalcoordinates3dfloat.md)
- [Ray3D](spatial/ray3d.md)
- [Ray3DFloat](spatial/ray3dfloat.md)

### Affine and projective transforms

- [AffineTransform3D](spatial/affinetransform3d.md)
- [AffineTransform3DFloat](spatial/affinetransform3dfloat.md)
- [ProjectiveTransform3D](spatial/projectivetransform3d.md)
- [ProjectiveTransform3DFloat](spatial/projectivetransform3dfloat.md)

### Converting between coordinate spaces

- [CoordinateSpace3D](spatial/coordinatespace3d.md)
- [CoordinateSpace3DFloat](spatial/coordinatespace3dfloat.md)
- [CoordinateSpaceValue3D](spatial/coordinatespacevalue3d.md)
- [ProjectiveTransformable3D](spatial/projectivetransformable3d.md)
- [ProjectiveTransformable3DFloat](spatial/projectivetransformable3dfloat.md)
- [WorldReferenceCoordinateSpace](spatial/worldreferencecoordinatespace.md)

### Applying trigonometric functions

- [cos(_:)](spatial/cos(_:)-609v4.md)
- [cos(_:)](spatial/cos(_:)-79fxe.md)
- [cosh(_:)](spatial/cosh(_:)-6cg6v.md)
- [cosh(_:)](spatial/cosh(_:)-9mmhn.md)
- [sin(_:)](spatial/sin(_:)-46su7.md)
- [sin(_:)](spatial/sin(_:)-5tddt.md)
- [sinh(_:)](spatial/sinh(_:)-4m7ds.md)
- [sinh(_:)](spatial/sinh(_:)-8kigy.md)
- [tan(_:)](spatial/tan(_:)-1sjgu.md)
- [tan(_:)](spatial/tan(_:)-9x99s.md)
- [tanh(_:)](spatial/tanh(_:)-1f341.md)
- [tanh(_:)](spatial/tanh(_:)-5yozs.md)

### Protocols

- [Primitive3D](spatial/primitive3d.md)
- [Rotatable3D](spatial/rotatable3d.md)
- [Scalable3D](spatial/scalable3d.md)
- [Shearable3D](spatial/shearable3d.md)
- [Translatable3D](spatial/translatable3d.md)
- [Volumetric](spatial/volumetric.md)
- [ClampableWithinRectProtocol](spatial/clampablewithinrectprotocol.md)
- [Primitive3DProtocol](spatial/primitive3dprotocol.md)
- [Rotatable3DProtocol](spatial/rotatable3dprotocol.md)
- [Scalable3DProtocol](spatial/scalable3dprotocol.md)
- [Shearable3DProtocol](spatial/shearable3dprotocol.md)
- [SpatialTypeProtocol](spatial/spatialtypeprotocol.md)
- [Transform3DProtocol](spatial/transform3dprotocol.md)
- [Translatable3DProtocol](spatial/translatable3dprotocol.md)
- [VolumetricProtocol](spatial/volumetricprotocol.md)

### Macros

- [Macros & Global Variables](spatial/spatial-macros.md)

### Structures

- [EulerAnglesFloat](spatial/euleranglesfloat.md)

### Enumerations

- [AxisWithFactorsFloat](spatial/axiswithfactorsfloat.md)
