calibration
TypeScriptget calibration(): ImmersiveCameraCalibrationSwift declarationvar calibration: ImmersiveCameraCalibrationCalibration details for this camera.
struct · iOS 26.4+ · SDK 27.1
struct ImmersiveCameraA type that holds all the information for an immersive media camera needed to process and render immersive media video frames. This type holds information about camera identifier, camera type, default presentation rate, camera pose, and camera calibration data. Immersive media content is captured using more than one camera calibrated lens. Hence it's necessary to use different geometry for each lens to render the corresponding video clips. AIV content creators should be able to add or remove any camera at any point during the creation and iteration process.
get calibration(): ImmersiveCameraCalibrationSwift declarationvar calibration: ImmersiveCameraCalibrationCalibration details for this camera.
set calibration(value: ImmersiveCameraCalibration)Swift declarationvar calibration: ImmersiveCameraCalibrationCalibration details for this camera.
get presentationFrameRate(): numberSwift declarationvar presentationFrameRate: IntPresentation frame rate suited for this immersive camera.
set presentationFrameRate(value: number)Swift declarationvar presentationFrameRate: IntPresentation frame rate suited for this immersive camera.
static get defaultPresentationFrameRate(): numberSwift declarationstatic let defaultPresentationFrameRate: IntDefault presentation frame rate for any immersive camera.
get id(): stringSwift declarationvar id: StringA unique and non empty identifier string for this immersive camera.
set id(value: string)Swift declarationvar id: StringA unique and non empty identifier string for this immersive camera.
get pose(): _Spatial_Pose3DFloatSwift declarationvar pose: Pose3DFloatThe pose of this immersive camera. The rotation component of the pose decomposes into three axis rotations, applied intrinsically in this order: 1. **Roll** — rotation around the camera's local z-axis (the optical axis; the camera looks toward −Z). 2. **Yaw** — rotation around the camera's (post-roll) local y-axis. 3. **Pitch** — rotation around the camera's (post-roll, post-yaw) local x-axis (the right / baseline axis). This matches Spatial's `EulerAngleOrder.xyz`, which composes intrinsically as roll, then yaw, then pitch (equivalently, extrinsically as pitch, then yaw, then roll). The composition order matters — the same angle values under a different order produce a different orientation. In particular, this does **not** match `RealityKit.Transform(pitch:yaw:roll:)`, which composes intrinsically as yaw, then pitch, then roll. ### Stereo fusion constraints The rotation component is applied uniformly to both eyes as an image reorientation; it does not remap eye assignment, reproject parallax, or account for the stereo baseline encoded in the source video. For stereo (`stereoCamera`) content, only rotations that keep the stereo baseline horizontal in viewer space produce comfortable fusion: - **Roll** — rotates the baseline out of horizontal, creating vertical disparity between eyes. Small roll angles cause eye strain; larger angles (≥ a few degrees) prevent fusion entirely. - **Yaw** — may be safe in some circumstances but increasingly likely to cause anomalous parallax perception at larger angles. - **Pitch** — the baseline is the rotation axis and the invariant of the rotation depends on the projection. - Any mixed rotation that decomposes to a non-zero roll component exhibits the same failure proportional to the roll magnitude. For mono content there are no stereo constraints and the full rotation space is valid.
set pose(value: _Spatial_Pose3DFloat)Swift declarationvar pose: Pose3DFloatThe pose of this immersive camera. The rotation component of the pose decomposes into three axis rotations, applied intrinsically in this order: 1. **Roll** — rotation around the camera's local z-axis (the optical axis; the camera looks toward −Z). 2. **Yaw** — rotation around the camera's (post-roll) local y-axis. 3. **Pitch** — rotation around the camera's (post-roll, post-yaw) local x-axis (the right / baseline axis). This matches Spatial's `EulerAngleOrder.xyz`, which composes intrinsically as roll, then yaw, then pitch (equivalently, extrinsically as pitch, then yaw, then roll). The composition order matters — the same angle values under a different order produce a different orientation. In particular, this does **not** match `RealityKit.Transform(pitch:yaw:roll:)`, which composes intrinsically as yaw, then pitch, then roll. ### Stereo fusion constraints The rotation component is applied uniformly to both eyes as an image reorientation; it does not remap eye assignment, reproject parallax, or account for the stereo baseline encoded in the source video. For stereo (`stereoCamera`) content, only rotations that keep the stereo baseline horizontal in viewer space produce comfortable fusion: - **Roll** — rotates the baseline out of horizontal, creating vertical disparity between eyes. Small roll angles cause eye strain; larger angles (≥ a few degrees) prevent fusion entirely. - **Yaw** — may be safe in some circumstances but increasingly likely to cause anomalous parallax perception at larger angles. - **Pitch** — the baseline is the rotation axis and the invariant of the rotation depends on the projection. - Any mixed rotation that decomposes to a non-zero roll component exhibits the same failure proportional to the roll magnitude. For mono content there are no stereo constraints and the full rotation space is valid.
get type(): ImmersiveCamera_CameraTypeSwift declarationvar type: ImmersiveCamera.CameraTypeRepresents the type of the camera.
set type(value: ImmersiveCamera_CameraType)Swift declarationvar type: ImmersiveCamera.CameraTypeRepresents the type of the camera.
1 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.
ImmersiveCamera.init(id:calibration:type:presentationFrameRate:pose:)
The iOS SDK compiler rejected this binding: cannot find 'defaultPresentationFrameRate' in scope