---
title: "OptiCalStagePlan"
description: "API documentation for OptiCalStagePlan"
url: https://developer.disguise.one/python-api/docs/opticalstageplan/
---

# OptiCalStagePlan

Base class (inherits properties and methods): _[Resource](/python-api/docs/resource#resource)_

Subclasses: _[OptiCalResult](/python-api/docs/opticalresult#opticalresult)_

## Properties

#### **alertSettings** : _[OmniCalAlertSettings](/python-api/docs/omnicalalertsettings#omnicalalertsettings)_

This plan’s configuration for optional features that provide OmniCal guidance or alert to potential issues.

#### **alignmentData** : _[AlignmentData](/python-api/docs/alignmentdata#alignmentdata)_

#### **alignmentObjects** : _List\[[Object](/python-api/docs/object#object)\]_

Stage objects to use for alignment in addition to the Plan’s projection surfaces

_UserName: Additional alignment objects_

#### **blobDetectionSettings** : _[BlobDetectionSettings](/python-api/docs/blobdetectionsettings#blobdetectionsettings)_

#### **calibrationResultsSummary** : _[CalibrationResultsSummary](/python-api/docs/calibrationresultssummary#calibrationresultssummary)_ _(Read-Only)_

This plan’s OmniCal results for all cameras and projectors, including aggregate score.

#### **calibrationSettings** : _[CalibrationSettings](/python-api/docs/calibrationsettings#calibrationsettings)_

#### **cameras** : _List\[[OptiCalCameraPlan](/python-api/docs/opticalcameraplan#opticalcameraplan)\]_

_UserName: Cameras_

#### **captureSettings** : _[CaptureSettings](/python-api/docs/capturesettings#capturesettings)_

#### **captureViewSettings** : _[CaptureViewSettings](/python-api/docs/captureviewsettings#captureviewsettings)_

#### **deformationSettings** : _[ObjectDeformationSettings](/python-api/docs/objectdeformationsettings#objectdeformationsettings)_

#### **gridErrors** : _List\[[GridAlignmentErrorData](/python-api/docs/gridalignmenterrordata#gridalignmenterrordata)\]_

#### **isSimulated** : _int_

Switch between simulated cameras and physical machine vision cameras.  
This may toggle Camera Discovery, depending on whether other systems (API, GUI) request it or not.

_UserName: Use simulated cameras_

#### **projectors** : _List\[[Projector](/python-api/docs/projector#projector)\]_

_UserName: Projectors_

#### **quickAlignViewSettings** : _[QuickAlignViewSettings](/python-api/docs/quickalignviewsettings#quickalignviewsettings)_

#### **report** : _[OptiCalReport](/python-api/docs/opticalreport#opticalreport)_ _(Read-Only)_

#### **rigCheckAlignmentData** : _[AlignmentData](/python-api/docs/alignmentdata#alignmentdata)_

## Methods

#### **addAlignmentDataPose**(self) -> _[AlignmentDataPose](/python-api/docs/alignmentdatapose#alignmentdatapose)_

#### **alignmentFromCamerasAndProjectors**(self, bProjectors: _bool_) -> _[Mat](/python-api/docs/mat#mat)_

#### **alignmentFromData**(self, ad: _[AlignmentData](/python-api/docs/alignmentdata#alignmentdata)_) -> _[Mat](/python-api/docs/mat#mat)_

#### **alignmentPoseCapturePath**(self, poseName: _str_) -> _[Path](/python-api/docs/path#path)_

#### **alignmentPoseNamePrefix**(self) -> _str_

#### **applyAlignmentToStage**(self, alignMat: _[Mat](/python-api/docs/mat#mat)_)

#### **applyManualAlignment**(self)

#### **applyMobileCamParams**(self)

#### **cameraImageRotation**(self, camName: _str_) -> _int_

#### **capturePath**(self) -> _[Path](/python-api/docs/path#path)_

#### **cleanupMobileCams**(self)

#### **distortPoint**(self, p: _[Vec2](/python-api/docs/vec2#vec2) | [Int2](/python-api/docs/int2#int2) | [Vec](/python-api/docs/vec#vec)_, camName: _str_) -> _[Vec2](/python-api/docs/vec2#vec2)_

#### **enableMobileCamStats**(self, cam: _[MobileCam](/python-api/docs/mobilecam#mobilecam)_, enable: _bool_)

#### **enableMobileCamStatsAll**(self, enable: _bool_)

#### **enableMobileCamStreaming**(self, enable: _bool_)

#### **ensureMasterScreensAreValid**(self)

#### **estimateAlignmentBasic**(self) -> _[Mat](/python-api/docs/mat#mat)_

#### **findCameraPlan**(self, cameraName: _str_) -> _[OptiCalCameraPlan](/python-api/docs/opticalcameraplan#opticalcameraplan)_

#### **getAlignmentImageBasePose**(self, camName: _str_, guideLines: _bool_) -> _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

#### **getAlignmentImagePose**(self, camName: _str_, guideLines: _bool_, poseName: _str_) -> _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

#### **getAlignmentObjects**(self) -> _List\[[Object](/python-api/docs/object#object)\]_

#### **getAlignmentObjectsWithChangedMeshes**(self) -> _List\[[Object](/python-api/docs/object#object)\]_

#### **getAutoApplyDeformObjects**(self) -> _List\[[Object](/python-api/docs/object#object)\]_

#### **getCameraMats**(self, camName: _str_) -> _[CameraMats](/python-api/docs/cameramats#cameramats)_

#### **getCameraNames**(self) -> _List\[str\]_

#### **getGridImage**(self, camName: _str_, iDisplay: _int_) -> _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

#### **getProjectionSurfaces**(self) -> _List\[[Object](/python-api/docs/object#object)\]_

#### **hasActiveCamerasAndProjectors**(self) -> _bool_

#### **hasCalibration**(self) -> _bool_

#### **hasCapture**(self) -> _bool_

#### **hasStackedProjector**(self) -> _bool_

#### **isCalibrating**(self) -> _bool_

#### **isCameraCalibrated**(self, cameraName: _str_) -> _bool_

#### **isCapturing**(self) -> _bool_

#### **isDeforming**(self, objectUid: _int_) -> _bool_

#### **isExecuting**(self) -> _bool_

#### **isLoadedFromFiles**(self) -> _bool_

#### **isRunning**(self) -> _bool_

#### **makeProjectorRestorer**(self, restoreShutterStates: _bool_) -> _[ProjectorRestorer](/python-api/docs/projectorrestorer#projectorrestorer)_

#### **makeVirtualCamComms**(self) -> _[VirtualCameraCommunication](/python-api/docs/virtualcameracommunication#virtualcameracommunication)_

#### **nAliveMVPlanCameras**(self) -> _int_

The number of MV cameras from this plan that are currently alive.

#### **nCameraPlans**(self) -> _int_

#### **requestCalibrate**(self) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **requestCapture**(self, resume: _bool_) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **requestDeform**(self, deformationSettings: _[ObjectDeformationSettingsPair](/python-api/docs/objectdeformationsettingspair#objectdeformationsettingspair)_) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **requestDeformObjects**(self, objects: _List\[[Object](/python-api/docs/object#object)\]_) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **requestExecute**(self) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **requestGridImage**(self, camName: _str_, iDisplay: _int_)

#### **requestUpdateStackingWarps**(self) -> _[OptiCalTask](/python-api/docs/opticaltask#opticaltask)_

#### **resetProjectors**(self)

#### **setCameraImageRotation**(self, camName: _str_, angle: _int_)

#### **setMobileCamBandwidth**(self)

#### **setSimulated**(self, simulated: _bool_)

#### **setStackedProjectorShutters**(self, open: _bool_)

#### **undistortPoint**(self, p: _[Vec2](/python-api/docs/vec2#vec2) | [Int2](/python-api/docs/int2#int2) | [Vec](/python-api/docs/vec#vec)_, camName: _str_) -> _[Vec2](/python-api/docs/vec2#vec2)_

#### **undistortTexture**(self, camName: _str_, dxt: _[DxTexture](/python-api/docs/dxtexture#dxtexture)_) -> _[DxTexture](/python-api/docs/dxtexture#dxtexture)_

#### **updateAlignmentData**(self)

#### **updateCaptureSettings**(self)

#### **updatePoseMasterScreenData**(self, pose: _[AlignmentDataPose](/python-api/docs/alignmentdatapose#alignmentdatapose)_)

#### **validateCapture**(self) -> _bool_
