---
title: "r32.4_change_log"
description: "API documentation for r32.4_change_log"
url: https://developer.disguise.one/python-api/api-changes/r32.4_change_log/
---

# r32.4 Change Log

Previous version: r32.3

Date: 03/09/2026, 14:47

## Added

### Classes

#### [OmniCalQualityMetric](../../docs/omnicalqualitymetric#omnicalqualitymetric)

```python
class OmniCalQualityMetric(_BlipValue):

    """

    :brief Aggregate quality metrics to compare similar OmniCal calibrations
```

#### [WebDownloadManager](../../docs/webdownloadmanager#webdownloadmanager)

```python
class WebDownloadManager(Subsystem):

    """

    A system for tracking CEF browser downloads and exposing their state to the GUI
```

#### [OcioModuleOutputTransform](../../docs/ociomoduleoutputtransform#ociomoduleoutputtransform)

```python
class OcioModuleOutputTransform(OcioModuleTransform):

    """

    OCIO transform that converts content from the working colour space to a configurable destination colour space.
```

#### [OcioModuleInputTransform](../../docs/ociomoduleinputtransform#ociomoduleinputtransform)

```python
class OcioModuleInputTransform(OcioModuleTransform):

    """

    OCIO transform that converts content from a configurable source colour space to the working colour space.
```

#### [DownloadInfo](../../docs/downloadinfo#downloadinfo)

```python
class DownloadInfo(_BlipValue):

    """

    Information about an active download
```

#### [OmniCalAlertSettings](../../docs/omnicalalertsettings#omnicalalertsettings)

```python
class OmniCalAlertSettings(_BlipValue):

    """

    Settings for optional features that provide OmniCal guidance or alert to potential issues.
```

#### [OcioModuleLutTransform](../../docs/ociomoduleluttransform#ociomoduleluttransform)

```python
class OcioModuleLutTransform(OcioModuleTransform):

    """

    OCIO transform that applies a LUT file to the content.
```

#### [OCIOModule](../../docs/ociomodule#ociomodule)

```python
class OCIOModule(ProjectionAwareModule):

    """

    An OCIO module.
```

#### [OCIOModuleConfig](../../docs/ociomoduleconfig#ociomoduleconfig)

```python
class OCIOModuleConfig(ModuleConfig):

    """

    An OCIO module config.
```

#### [OcioModuleNamedTransform](../../docs/ociomodulenamedtransform#ociomodulenamedtransform)

```python
class OcioModuleNamedTransform(OcioModuleTransform):

    """

    OCIO transform that applies a named transform to the content.
```

#### [OcioModuleColourSpaceTransform](../../docs/ociomodulecolourspacetransform#ociomodulecolourspacetransform)

```python
class OcioModuleColourSpaceTransform(OcioModuleTransform):

    """

    OCIO transform that converts content from one colour space to another.
```

#### [ContentViewPoint](../../docs/contentviewpoint#contentviewpoint)

```python
class ContentViewPoint(_BlipValue):

    """

    Represents a content viewpoint with tracking, source, and rendering information.
```

#### [ObjectTracking](../../docs/objecttracking#objecttracking)

```python
class ObjectTracking(_BlipValue):

    """

    Information about a point-in-time position and orientation of an object in 3D space.
```

#### [CameraTracking](../../docs/cameratracking#cameratracking)

```python
class CameraTracking(ObjectTracking):

    """

    Extends ObjectTracking with camera-specific parameters such as lens intrinsics and focus parameters.
```

#### [WorkloadTransportDefinition](../../docs/workloadtransportdefinition#workloadtransportdefinition)

```python
class WorkloadTransportDefinition(_BlipValue):

    """

    The transport definition of a given workload which includes the type, the format and the bit depth.

    

    Category: Renderstream

    """



    null: Self

    _classInfo: 'ClassInfo'
```

#### [CalibrationResultsSummary](../../docs/calibrationresultssummary#calibrationresultssummary)

```python
class CalibrationResultsSummary(_BlipValue):

    """

    High-level OmniCal results for all cameras and projectors, including aggregate score.
```

#### [CameraRenderTracking](../../docs/camerarendertracking#camerarendertracking)

```python
class CameraRenderTracking(CameraTracking):

    """

    Extends CameraTracking with rendering-specific parameters such as clipping planes and overscan.
```

#### [TrackedLensEncoderData](../../docs/trackedlensencoderdata#trackedlensencoderdata)

```python
class TrackedLensEncoderData(_BlipValue):

    """

    Unitless lens encoder data, from physical lens encoders.
```

#### [SceneAnimationModule](../../docs/sceneanimationmodule#sceneanimationmodule)

```python
class SceneAnimationModule(Module):

    """

    A module which controls the animations of scene meshes (e.g. FBX and Alembic) from the timeline.
```

#### [OcioModuleTransform](../../docs/ociomoduletransform#ociomoduletransform)

```python
class OcioModuleTransform(Resource):

    """

    Abstract base class for a single OCIO transform entry in an OCIOModule.
```

#### [ContentViewPointSource](../../docs/contentviewpointsource#contentviewpointsource)

```python
class ContentViewPointSource(_BlipValue):

    """

    Identifies the source object and index for a content viewpoint.
```

#### [OcioModuleLookTransform](../../docs/ociomodulelooktransform#ociomodulelooktransform)

```python
class OcioModuleLookTransform(OcioModuleTransform):

    """

    OCIO transform that applies a look transform between configurable colour spaces.
```

### Class.properties

#### [AlignmentData.nAlignmentPoints](../../docs/alignmentdata#alignmentdata)

```python
    @property

    def nAlignmentPoints(self) -> int:
```

#### [AlignmentData.maxAlignmentCoordinatesPerCamera](../../docs/alignmentdata#alignmentdata)

```python
    @property

    def maxAlignmentCoordinatesPerCamera(self) -> int:
```

#### [AlignmentData.nTotalAlignmentCoordinates](../../docs/alignmentdata#alignmentdata)

```python
    @property

    def nTotalAlignmentCoordinates(self) -> int:
```

#### [AlignmentDataPose.poseNamePrefix](../../docs/alignmentdatapose#alignmentdatapose)

```python
    @property

    def poseNamePrefix(self) -> str:

    @poseNamePrefix.setter

    def poseNamePrefix(self, value: str) -> None:
```

#### [AlignmentPoint.isValid](../../docs/alignmentpoint#alignmentpoint)

```python
    @property

    def isValid(self) -> bool:
```

#### [AlignmentPoint.normal](../../docs/alignmentpoint#alignmentpoint)

```python
    @property

    def normal(self) -> Vec:
```

#### [AlignmentPoint.worldNormal](../../docs/alignmentpoint#alignmentpoint)

```python
    @property

    def worldNormal(self) -> Vec:
```

#### [AlignmentPoint.worldPos](../../docs/alignmentpoint#alignmentpoint)

```python
    @property

    def worldPos(self) -> Vec:
```

#### [AlignmentPoint.pos](../../docs/alignmentpoint#alignmentpoint)

```python
    @property

    def pos(self) -> Vec:
```

#### [ChannelMappingAssigner.uid](../../docs/channelmappingassigner#channelmappingassigner)

```python
    @property

    def uid(self) -> int:

    @uid.setter

    def uid(self, value: int) -> None:
```

#### [FrameRateFraction.maxFractionOverride](../../docs/frameratefraction#frameratefraction)

```python
    @property

    def maxFractionOverride(self) -> int:

    @maxFractionOverride.setter

    def maxFractionOverride(self, value: int) -> None:
```

#### [FrameRateFraction.fractionIndex](../../docs/frameratefraction#frameratefraction)

```python
    @property

    def fractionIndex(self) -> int:

    @fractionIndex.setter

    def fractionIndex(self, value: int) -> None:
```

#### [LensIntrinsics.fovH](../../docs/lensintrinsics#lensintrinsics)

```python
    @property

    def fovH(self) -> float:
```

#### [LensIntrinsics.fovV](../../docs/lensintrinsics#lensintrinsics)

```python
    @property

    def fovV(self) -> float:
```

#### [MVCameraStatsDisplay.nFramesDeliveredDelta](../../docs/mvcamerastatsdisplay#mvcamerastatsdisplay)

```python
    @property

    def nFramesDeliveredDelta(self) -> int:
```

#### [MVCameraStatsDisplay.packetSizeGVSP](../../docs/mvcamerastatsdisplay#mvcamerastatsdisplay)

```python
    @property

    def packetSizeGVSP(self) -> int:
```

#### [MVCameraStatsDisplay.mainboardTemperature](../../docs/mvcamerastatsdisplay#mvcamerastatsdisplay)

```python
    @property

    def mainboardTemperature(self) -> float:
```

#### [MVCameraStatsDisplay.packetSizeGevSCPS](../../docs/mvcamerastatsdisplay#mvcamerastatsdisplay)

```python
    @property

    def packetSizeGevSCPS(self) -> int:
```

#### [MeshFromScene.loopEnd](../../docs/meshfromscene#meshfromscene)

```python
    @property

    def loopEnd(self) -> float:

    @loopEnd.setter

    def loopEnd(self, value: float) -> None:
```

#### [MeshFromScene.loopStart](../../docs/meshfromscene#meshfromscene)

```python
    @property

    def loopStart(self) -> float:

    @loopStart.setter

    def loopStart(self, value: float) -> None:
```

#### [MeshFromScene.animationEnd](../../docs/meshfromscene#meshfromscene)

```python
    @property

    def animationEnd(self) -> float:

    @animationEnd.setter

    def animationEnd(self, value: float) -> None:
```

#### [MeshFromScene.animationStart](../../docs/meshfromscene#meshfromscene)

```python
    @property

    def animationStart(self) -> float:

    @animationStart.setter

    def animationStart(self, value: float) -> None:
```

#### [NotchModule.animationSpeed](../../docs/notchmodule#notchmodule)

```python
    @property

    def animationSpeed(self) -> float:

    @animationSpeed.setter

    def animationSpeed(self, value: float) -> None:
```

#### [OptiCalResult.parentPlanRO](../../docs/opticalresult#opticalresult)

```python
    @property

    def parentPlanRO(self) -> OptiCalStagePlan:
```

#### [OptiCalStagePlan.calibrationResultsSummary](../../docs/opticalstageplan#opticalstageplan)

```python
    @property

    def calibrationResultsSummary(self) -> CalibrationResultsSummary:
```

#### [OptiCalStagePlan.alertSettings](../../docs/opticalstageplan#opticalstageplan)

```python
    @property

    def alertSettings(self) -> OmniCalAlertSettings:

    @alertSettings.setter

    def alertSettings(self, value: OmniCalAlertSettings) -> None:
```

#### [OpticalCalibrator.nDaysToKeepResults](../../docs/opticalcalibrator#opticalcalibrator)

```python
    @property

    def nDaysToKeepResults(self) -> int:

    @nDaysToKeepResults.setter

    def nDaysToKeepResults(self, value: int) -> None:
```

#### [OpticalCalibrator.fallbackResult](../../docs/opticalcalibrator#opticalcalibrator)

```python
    @property

    def fallbackResult(self) -> OptiCalResult:

    @fallbackResult.setter

    def fallbackResult(self, value: OptiCalResult) -> None:
```

#### [OpticalCalibrator.backupResults](../../docs/opticalcalibrator#opticalcalibrator)

```python
    @property

    def backupResults(self) -> List[OptiCalResult]:

    @backupResults.setter

    def backupResults(self, value: List[OptiCalResult]) -> None:
```

#### [PathsManager.workerScriptPath](../../docs/pathsmanager#pathsmanager)

```python
    @property

    def workerScriptPath(self) -> str:
```

#### [QuickAlignViewSettings.wireframeColour](../../docs/quickalignviewsettings#quickalignviewsettings)

```python
    @property

    def wireframeColour(self) -> Colour:

    @wireframeColour.setter

    def wireframeColour(self, value: Colour) -> None:
```

#### [Recorder.tLastReceived](../../docs/recorder#recorder)

```python
    @property

    def tLastReceived(self) -> float:

    @tLastReceived.setter

    def tLastReceived(self, value: float) -> None:
```

#### [RenderStreamMachinesList.autoGeneratedMachinesListSupported](../../docs/renderstreammachineslist#renderstreammachineslist)

```python
    @property

    def autoGeneratedMachinesListSupported(self) -> bool:

    @autoGeneratedMachinesListSupported.setter

    def autoGeneratedMachinesListSupported(self, value: bool) -> None:
```

#### [RenderStreamMachinesList.manualMachineSelectionEnabled](../../docs/renderstreammachineslist#renderstreammachineslist)

```python
    @property

    def manualMachineSelectionEnabled(self) -> bool:

    @manualMachineSelectionEnabled.setter

    def manualMachineSelectionEnabled(self, value: bool) -> None:
```

#### [RenderStreamModuleBase.animationSpeed](../../docs/renderstreammodulebase#renderstreammodulebase)

```python
    @property

    def animationSpeed(self) -> float:

    @animationSpeed.setter

    def animationSpeed(self, value: float) -> None:
```

### Class.constructors

#### [FrameRateFraction.\_\_init\_\_](../../docs/frameratefraction#frameratefraction)

```python
    def __init__(self) -> None:
```

### Class.methods

#### [LensIntrinsics.setFocalLengthFromFovH](../../docs/lensintrinsics#lensintrinsics)

```python
    def setFocalLengthFromFovH(self, fovH: float) -> None:
```

#### [LensIntrinsics.setFovHMaintainingFovV](../../docs/lensintrinsics#lensintrinsics)

```python
    def setFovHMaintainingFovV(self, fovH: float) -> None:
```

#### [LensIntrinsics.setFocalLengthFromFovV](../../docs/lensintrinsics#lensintrinsics)

```python
    def setFocalLengthFromFovV(self, fovV: float, _aspectRatio: float) -> None:
```

#### [LensIntrinsics.setFovVMaintainingFovH](../../docs/lensintrinsics#lensintrinsics)

```python
    def setFovVMaintainingFovH(self, fovV: float) -> None:
```

#### [MissingMediaDomain.dumpDiagnosticJson](../../docs/missingmediadomain#missingmediadomain)

```python
    def dumpDiagnosticJson(self) -> None:
```

#### [MobileCameraCommunication.nAliveMVCameras](../../docs/mobilecameracommunication#mobilecameracommunication)

```python
    def nAliveMVCameras(self) -> int:
```

#### [MultiChannelClusterAssignerBase.getNextChannelAssignerUID](../../docs/multichannelclusterassignerbase#multichannelclusterassignerbase)

```python
    def getNextChannelAssignerUID(self) -> int:
```

#### [OcioColourSpace.getFullName](../../docs/ociocolourspace#ociocolourspace)

```python
    def getFullName(self) -> str:
```

#### [OptiCalStagePlan.nAliveMVPlanCameras](../../docs/opticalstageplan#opticalstageplan)

```python
    def nAliveMVPlanCameras(self) -> int:
```

#### [OpticalCalibrator.deleteOldResults](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def deleteOldResults(self) -> bool:
```

#### [OpticalCalibrator.canExecutePlan](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def canExecutePlan(self) -> bool:
```

#### [OpticalCalibrator.findResultsToKeep](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def findResultsToKeep(self, nDaysToKeepResults: int) -> List[Path]:
```

#### [OpticalCalibrator.canDeleteResults](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def canDeleteResults(self) -> bool:
```

#### [OpticalCalibrator.canExecutePlanIgnoreDiscovery](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def canExecutePlanIgnoreDiscovery(self) -> bool:
```

#### [OpticalCalibrator.noResultsToDeleteMessage](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def noResultsToDeleteMessage(self) -> str:
```

#### [OpticalCalibrator.cannotExecutePlanReason](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def cannotExecutePlanReason(self) -> str:
```

#### [OpticalCalibrator.cannotDeleteResultsReason](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def cannotDeleteResultsReason(self) -> str:
```

#### [OpticalCalibrator.findOldResults](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def findOldResults(self, nDaysToKeepResults: int) -> List[Path]:
```

#### [OpticalCalibrator.canRevertResult](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def canRevertResult(self) -> bool:
```

#### [OpticalCalibrator.cannotRevertResultReason](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def cannotRevertResultReason(self) -> str:
```

#### [OpticalCalibrator.revertResult](../../docs/opticalcalibrator#opticalcalibrator)

```python
    def revertResult(self) -> None:
```

#### [OpticalCalibratorSystem.removeDiscoveryRequest](../../docs/opticalcalibratorsystem#opticalcalibratorsystem)

```python
    def removeDiscoveryRequest(self, reqKey: str) -> bool:
```

#### [OpticalCalibratorSystem.isVimbaXInstalled](../../docs/opticalcalibratorsystem#opticalcalibratorsystem)

```python
    def isVimbaXInstalled(self) -> bool:
```

#### [OpticalCalibratorSystem.addDiscoveryRequestFromCurrentState](../../docs/opticalcalibratorsystem#opticalcalibratorsystem)

```python
    def addDiscoveryRequestFromCurrentState(self, reqKey: str) -> bool:
```

#### [Path.pathsToFilenames](../../docs/path#path)

```python
    @staticmethod

    def pathsToFilenames(paths: List[Path]) -> List[Path]:
```

#### [PathsManagerOptiCal.isOriginalMesh](../../docs/pathsmanageroptical#pathsmanageroptical)

```python
    @staticmethod

    def isOriginalMesh(path: str) -> bool:
```

#### [PathsManagerOptiCal.isDeformedMesh](../../docs/pathsmanageroptical#pathsmanageroptical)

```python
    @staticmethod

    def isDeformedMesh(path: string_view) -> bool:
```

#### [PathsManagerOptiCal.isReshapedMesh](../../docs/pathsmanageroptical#pathsmanageroptical)

```python
    @staticmethod

    def isReshapedMesh(path: string_view) -> bool:
```

#### [Rect.expandPoint](../../docs/rect#rect)

```python
    def expandPoint(self, v: Vec2) -> Rect:
```

#### [Rect.expand](../../docs/rect#rect)

```python
    def expand(self, f: float) -> Rect:
```

#### [RenderStreamModuleConfigBase.updateProxySettings](../../docs/renderstreammoduleconfigbase#renderstreammoduleconfigbase)

```python
    def updateProxySettings(self) -> None:
```

#### [Vec2.anySmallerThan](../../docs/vec2#vec2)

```python
    def anySmallerThan(self, v: Vec2) -> bool:
```

#### [Vec2.anyLargerThan](../../docs/vec2#vec2)

```python
    def anyLargerThan(self, v: Vec2) -> bool:
```

### Class.variables

#### [MissingMediaDomain.Filter\_AllowAllIncludingInactive](../../docs/missingmediadomain#missingmediadomain)

```python
    Filter_AllowAllIncludingInactive: Final[int] = 2
```

## Removed

### Class.constructors

#### RI.\_\_init\_\_

```python
    @overload

    def __init__(self, rp: TransportManager) -> None:
```

### Class.properties

#### CalibrationResultsData.errorColour

```python
    @property

    def errorColour(self) -> Colour:
```

#### MVCameraStatsDisplay.framesDelivered

```python
    @property

    def framesDelivered(self) -> int:
```

#### OptiCalStagePlan.calibrationSummaryTable

```python
    @property

    def calibrationSummaryTable(self) -> List[CalibrationResultsData]:
```

#### QuickAlignViewSettings.invertWireframeColour

```python
    @property

    def invertWireframeColour(self) -> int:

    @invertWireframeColour.setter

    def invertWireframeColour(self, value: int) -> None:
```

#### RenderStreamMachinesList.manualMachineSelection

```python
    @property

    def manualMachineSelection(self) -> bool:

    @manualMachineSelection.setter

    def manualMachineSelection(self, value: bool) -> None:
```

### Class.methods

#### OptiCalStagePlan.nAliveCameras

```python
    def nAliveCameras(self) -> int:
```

#### OptiCalStagePlan.nAliveMVCameras

```python
    def nAliveMVCameras(self) -> int:
```

#### OpticalCalibrator.getCentroidModeNames

```python
    @staticmethod

    def getCentroidModeNames() -> List[str]:
```

#### OpticalCalibratorSystem.isVimbaInstalled

```python
    def isVimbaInstalled(self) -> bool:
```

#### RenderStreamLocalModuleConfig.usesManualMachineSelection

```python
    def usesManualMachineSelection(self, mapping: Projection) -> bool:
```

#### RenderStreamModuleConfig.updateProxySettings

```python
    def updateProxySettings(self) -> None:
```

## Modified

### Class.methods

#### [RenderStreamLocalModuleConfig.getMachinesFromMapping](../../docs/renderstreamlocalmoduleconfig#renderstreamlocalmoduleconfig)

```diff
-    def getMachinesFromMapping(self, mapping: Projection) -> RenderStreamMachinesList:
-
+    def getMachinesFromMapping(self, cmaUID: int) -> RenderStreamMachinesList:
+
```

### Class.properties

#### [RenderStreamLocalModuleConfig.variable.machines](../../docs/renderstreamlocalmoduleconfig#renderstreamlocalmoduleconfig)

```diff
-    @property
-
-    def machines(self) -> MapTable[Projection, RenderStreamMachinesList]:
-
-    @machines.setter
-
-    def machines(self, value: MapTable[Projection, RenderStreamMachinesList]) -> None:
-
+    @property
+
+    def machines(self) -> MapTable[int, RenderStreamMachinesList]:
+
+    @machines.setter
+
+    def machines(self, value: MapTable[int, RenderStreamMachinesList]) -> None:
+
```

#### [RenderStreamLocalModuleConfig.getter.machines](../../docs/renderstreamlocalmoduleconfig#renderstreamlocalmoduleconfig)

```diff
-    @property
-
-    def machines(self) -> MapTable[Projection, RenderStreamMachinesList]:
-
+    @property
+
+    def machines(self) -> MapTable[int, RenderStreamMachinesList]:
+
```

#### [RenderStreamLocalModuleConfig.setter.machines](../../docs/renderstreamlocalmoduleconfig#renderstreamlocalmoduleconfig)

```diff
-    @machines.setter
-
-    def machines(self, value: MapTable[Projection, RenderStreamMachinesList]) -> None:
-
+    @machines.setter
+
+    def machines(self, value: MapTable[int, RenderStreamMachinesList]) -> None:
+
```

## Deprecated

### Class.properties

#### [BlobCaptureProcess.getter.blur](../../docs/blobcaptureprocess#blobcaptureprocess)

```python
    @property

    @deprecated('This is now officially deprecated and has been removed')

    def blur(self) -> int:
```

#### [BlobCaptureProcess.setter.blur](../../docs/blobcaptureprocess#blobcaptureprocess)

```python
    @blur.setter

    @deprecated('This is now officially deprecated and has been removed')

    def blur(self, value: int) -> None:
```

#### [BlobCaptureProcess.getter.blurRadius](../../docs/blobcaptureprocess#blobcaptureprocess)

```python
    @property

    @deprecated('This is now officially deprecated and has been removed')

    def blurRadius(self) -> int:
```

#### [BlobCaptureProcess.setter.blurRadius](../../docs/blobcaptureprocess#blobcaptureprocess)

```python
    @blurRadius.setter

    @deprecated('This is now officially deprecated and has been removed')

    def blurRadius(self, value: int) -> None:
```
