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

# r33.1 Change Log

Previous version: r33.0

Date: 04/23/2026, 20:01

## Added

### Classes

#### [NetworkBandwidthDomain](../../docs/networkbandwidthdomain#networkbandwidthdomain)

```python
class NetworkBandwidthDomain(Domain):
    """
    Domain containing the network bandwidth usage for machines in the session.
```

#### [MulticastDestination](../../docs/multicastdestination#multicastdestination)

```python
class MulticastDestination(Resource):
    """
    A multicast destination based on IP and port.
```

#### [NetworkConflictDomain](../../docs/networkconflictdomain#networkconflictdomain)

```python
class NetworkConflictDomain(Domain):
    """
    Domain containing the network addresses and port for monitored resources.
    
    Category: Monitoring
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
```

#### [ProofOfPlayRecord](../../docs/proofofplayrecord#proofofplayrecord)

```python
class ProofOfPlayRecord(_BlipValue):
    """
    A record of video playback activity for a single clip on a layer
```

#### [CueAttrWidgets](../../docs/cueattrwidgets#cueattrwidgets)

```python
class CueAttrWidgets(_BlipValue):
    """
    Used as source for iterating over all created widgets when reading tags and notes values.
    
    Category: GUI
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
```

#### [GuiSystem](../../docs/guisystem#guisystem)

```python
class GuiSystem(Subsystem):
    """
    A system which manages the general, high level and global variables and methods for the Designer GUI.
```

#### [ReceiverStatus](../../docs/receiverstatus#receiverstatus)

```python
class ReceiverStatus(_BlipValue):
    """
    Represents the stats of one node subscribing to receive exactly one texture parameter stream.
```

#### [MachineNetAdaptors](../../docs/machinenetadaptors#machinenetadaptors)

```python
class MachineNetAdaptors(_BlipValue):
    """
    /** Network adapter information of a particular machine. */
    
    Category: D3Net
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
```

#### [BandwidthUsage](../../docs/bandwidthusage#bandwidthusage)

```python
class BandwidthUsage(_BlipValue):
    """
    /** Return type for all queries to the NetworkBandwidthDomain. */
```

#### [SectionInfo](../../docs/sectioninfo#sectioninfo)

```python
class SectionInfo(_BlipValue):
    """
    Info about a given section on a Track.
```

#### [ProofOfPlaySubsystem](../../docs/proofofplaysubsystem#proofofplaysubsystem)

```python
class ProofOfPlaySubsystem(Subsystem):
    """
    Subsystem that tracks video playback across all layers for proof-of-play reporting
```

#### [TextureParamStatusManager](../../docs/textureparamstatusmanager#textureparamstatusmanager)

```python
class TextureParamStatusManager(_BlipValue):
    """
    Centralized state for all active texture parameter streams and the RS nodes subscribed to receive them.
```

#### [ActiveNetworkHeadConfig](../../docs/activenetworkheadconfig#activenetworkheadconfig)

```python
class ActiveNetworkHeadConfig(_BlipValue):
    """
    An active instance of a network feed configuration.
    
    Used in active feeds as a cached runtime copy of the network feed configuration.
    
    Category: Feed
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
```

#### [NetworkHeadFields](../../docs/networkheadfields#networkheadfields)

```python
class NetworkHeadFields(_BlipValue):
    """
    /** Configurable properties of a network feed head. */
    
    Category: Feed
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
```

#### [NetworkFeedConfig](../../docs/networkfeedconfig#networkfeedconfig)

```python
class NetworkFeedConfig(FeedHeadConfig):
    """
    A feed configuration used for IP streams.
```

#### [StreamStatus](../../docs/streamstatus#streamstatus)

```python
class StreamStatus(_BlipValue):
    """
    Represents one outgoing stream containing an entire texture, or a segment of a texture.
```

### Class.constructors

#### [AxisAngle.\_\_init\_\_](../../docs/axisangle#axisangle)

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

#### [AxisAngle.\_\_init\_\_](../../docs/axisangle#axisangle)

```python
    @overload
    def __init__(self, axis: Type1, angle: Type2) -> None:
```

#### [AxisAngle.\_\_init\_\_](../../docs/axisangle#axisangle)

```python
    @overload
    def __init__(self, R: Mat, bLeftHanded: bool) -> None:
```

#### [AxisAngle.\_\_init\_\_](../../docs/axisangle#axisangle)

```python
    @overload
    def __init__(self, axis: Type1, angle: Type2, bLeftHanded: bool) -> None:
```

#### [HashTable.\_\_init\_\_](../../docs/hashtable#hashtable)

```python
    @overload
    def __init__(self, rhs: HashTable[Type1]) -> None:
```

#### [MonitorCollection.\_\_init\_\_](../../docs/monitorcollection#monitorcollection)

```python
    @overload
    def __init__(self, other: MonitorCollection[Type1]) -> None:
```

#### [RI.\_\_init\_\_](../../docs/ri#ri)

```python
    @overload
    def __init__(self, rp: RI[Type1]) -> None:
```

#### [RI.\_\_init\_\_](../../docs/ri#ri)

```python
    @overload
    def __init__(self, rp: Type1) -> None:
```

### Class.methods

#### [AxisAngle.calcEuler](../../docs/axisangle#axisangle)

```python
    def calcEuler(self) -> Type1:
```

#### [AxisAngle.\_\_ne\_\_](../../docs/axisangle#axisangle)

```python
    def __ne__(self, rhs: AxisAngle[Type1, Type2]) -> bool:  # type: ignore
```

#### [AxisAngle.rotate](../../docs/axisangle#axisangle)

```python
    def rotate(self, wpoint: Type1) -> Type1:
```

#### [AxisAngle.calcRotationMatrix](../../docs/axisangle#axisangle)

```python
    def calcRotationMatrix(self) -> Mat:
```

#### [AxisAngle.\_\_eq\_\_](../../docs/axisangle#axisangle)

```python
    def __eq__(self, rhs: AxisAngle[Type1, Type2]) -> bool:  # type: ignore
```

#### [DmxBankSlot.make](../../docs/dmxbankslot#dmxbankslot)

```python
    @staticmethod
    def make(bank: int, slot: int) -> DmxBankSlot:
```

#### [FeedScene.insertHeadConfig](../../docs/feedscene#feedscene)

```python
    def insertHeadConfig(self, feedHeadConfig: FeedHeadConfig, idx: int) -> None:
```

#### [FeedScene.moveSelectedHeadConfigs](../../docs/feedscene#feedscene)

```python
    @staticmethod
    def moveSelectedHeadConfigs(destination: FeedScene) -> None:
```

#### [FeedScene.copySelectedHeadConfigs](../../docs/feedscene#feedscene)

```python
    @staticmethod
    def copySelectedHeadConfigs(destination: FeedScene) -> None:
```

#### [FieldSequence.sockpuppetCanOutput](../../docs/fieldsequence#fieldsequence)

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

#### [HoldOutputSystem.setHoldOutput](../../docs/holdoutputsystem#holdoutputsystem)

```python
    def setHoldOutput(self, r: Resource, holding: bool) -> None:
```

#### [HoldOutputSystem.isOutputHolding](../../docs/holdoutputsystem#holdoutputsystem)

```python
    def isOutputHolding(self, uid: int) -> bool:
```

#### [Layer.isolateSockpuppet](../../docs/layer#layer)

```python
    def isolateSockpuppet(self, iSequence: int) -> None:
```

#### [Machine.getDeviceVFCCount](../../docs/machine#machine)

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

#### [Machine.getOrCreateRedundancyMulticastDestination](../../docs/machine#machine)

```python
    def getOrCreateRedundancyMulticastDestination(self, current: int) -> MulticastDestination:
```

#### [Machine.removeMulticastInfo](../../docs/machine#machine)

```python
    def removeMulticastInfo(self, index: int) -> None:
```

#### [Machine.getDeviceActivePortsCount](../../docs/machine#machine)

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

#### [Machine.createNextMulticastInfo](../../docs/machine#machine)

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

#### [Machine.getOrCreatePrimaryMulticastDestination](../../docs/machine#machine)

```python
    def getOrCreatePrimaryMulticastDestination(self, current: int) -> MulticastDestination:
```

#### [Machine.getNetworkAdaptors](../../docs/machine#machine)

```python
    def getNetworkAdaptors(self) -> List[netsys_NetworkAdaptor]:
```

#### [NotchHandle.activeInstances](../../docs/notchhandle#notchhandle)

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

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

```python
    def cancelSync(self, destHostname: str) -> None:
```

#### [RenderStreamSystem.textureParamStatus](../../docs/renderstreamsystem#renderstreamsystem)

```python
    def textureParamStatus(self) -> TextureParamStatusManager:
```

#### [Track.findTagBeat](../../docs/track#track)

```python
    def findTagBeat(self, tag: Tag) -> float:
```

#### [Track.sectionInfo](../../docs/track#track)

```python
    def sectionInfo(self, iSection: int) -> SectionInfo:
```

#### [VFCDevice.getOrCreateIPNetConfig](../../docs/vfcdevice#vfcdevice)

```python
    def getOrCreateIPNetConfig(self, itf: int) -> VFCIPNetConfig:
```

### Class.properties

#### [AxisAngle.leftHanded](../../docs/axisangle#axisangle)

```python
    @property
    def leftHanded(self) -> bool:
```

#### [AxisAngle.axis](../../docs/axisangle#axisangle)

```python
    @property
    def axis(self) -> Vec:
    @axis.setter
    def axis(self, value: Vec) -> None:
```

#### [AxisAngle.angle](../../docs/axisangle#axisangle)

```python
    @property
    def angle(self) -> float:
    @angle.setter
    def angle(self, value: float) -> None:
```

#### [FeedHeadConfig.isSelected](../../docs/feedheadconfig#feedheadconfig)

```python
    @property
    def isSelected(self) -> bool:
    @isSelected.setter
    def isSelected(self, value: bool) -> None:
```

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

```python
    @property
    def bandwidthMbit(self) -> float:
```

#### [Machine.primaryMulticastDestinations](../../docs/machine#machine)

```python
    @property
    def primaryMulticastDestinations(self) -> List[MulticastDestination]:
    @primaryMulticastDestinations.setter
    def primaryMulticastDestinations(self, value: List[MulticastDestination]) -> None:
```

#### [Machine.redundancyMulticastDestinations](../../docs/machine#machine)

```python
    @property
    def redundancyMulticastDestinations(self) -> List[MulticastDestination]:
    @redundancyMulticastDestinations.setter
    def redundancyMulticastDestinations(self, value: List[MulticastDestination]) -> None:
```

#### [MeshProjection.enableWarp](../../docs/meshprojection#meshprojection)

```python
    @property
    def enableWarp(self) -> bool:
    @enableWarp.setter
    def enableWarp(self, value: bool) -> None:
```

#### [MeshProjection.pixelsPerDegree](../../docs/meshprojection#meshprojection)

```python
    @property
    def pixelsPerDegree(self) -> Vec2:
    @pixelsPerDegree.setter
    def pixelsPerDegree(self, value: Vec2) -> None:
```

#### [MeshProjection.overscan](../../docs/meshprojection#meshprojection)

```python
    @property
    def overscan(self) -> Vec2:
    @overscan.setter
    def overscan(self, value: Vec2) -> None:
```

#### [MeshProjection.resolutionMethod](../../docs/meshprojection#meshprojection)

```python
    @property
    def resolutionMethod(self) -> int:
    @resolutionMethod.setter
    def resolutionMethod(self, value: int) -> None:
```

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

```python
    @property
    def machineBin(self) -> str:
```

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

```python
    @property
    def lastChangeTime(self) -> float:
    @lastChangeTime.setter
    def lastChangeTime(self, value: float) -> None:
```

#### [SuperLayer.enabled](../../docs/superlayer#superlayer)

```python
    @property
    def enabled(self) -> bool:
    @enabled.setter
    def enabled(self, onOff: bool) -> None:
```

#### [netsys\_NetworkAdaptor.receiveLinkSpeed](../../docs/netsys_networkadaptor#netsys_networkadaptor)

```python
    @property
    def receiveLinkSpeed(self) -> int:
```

#### [netsys\_NetworkAdaptor.transmitLinkSpeed](../../docs/netsys_networkadaptor#netsys_networkadaptor)

```python
    @property
    def transmitLinkSpeed(self) -> int:
```

#### [netsys\_NetworkAdaptor.uniqueId](../../docs/netsys_networkadaptor#netsys_networkadaptor)

```python
    @property
    def uniqueId(self) -> str:
```

### Class.nested\_classes

#### [HashTable.HashTable](../../docs/hashtable#hashtable)

```python
    class HashTable(Generic[Type1], _BlipValue):
        """
        Category: Utility
```

### Class.variables

#### [MeshProjection.ResolutionMethodConstant](../../docs/meshprojection#meshprojection)

```python
    ResolutionMethodConstant: Final[int] = 0  #: Index of the 'Constant' resolution method
```

#### [MeshProjection.ResolutionMethodPixelsPerDegree](../../docs/meshprojection#meshprojection)

```python
    ResolutionMethodPixelsPerDegree: Final[int] = 2  #: Index of the 'Pixels Per Degree' resolution method
```

#### [MeshProjection.ResolutionMethodScaled](../../docs/meshprojection#meshprojection)

```python
    ResolutionMethodScaled: Final[int] = 1  #: Index of the 'Scaled' resolution method
```

### Type\_aliases

#### [Type4](../../docs)

```python
Type4 = TypeVar('Type4')
```

#### [Type2](../../docs)

```python
Type2 = TypeVar('Type2')
```

#### [Type1](../../docs)

```python
Type1 = TypeVar('Type1')
```

#### [Type3](../../docs)

```python
Type3 = TypeVar('Type3')
```

#### [Type5](../../docs)

```python
Type5 = TypeVar('Type5')
```

## Removed

### Class.constructors

#### HashTable.\_\_init\_\_

```python
    @overload
    def __init__(self, other: HashTable[T]) -> None:
```

#### MonitorCollection.\_\_init\_\_

```python
    @overload
    def __init__(self, other: MonitorCollection[T]) -> None:
```

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

```python
    @overload
    def __init__(self, rp: RI[T]) -> None:
```

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

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

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

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

### Class.methods

#### D3NetManager.directorIsX1

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

#### D3NetManager.machineIsX1

```python
    def machineIsX1(self, machine: Machine) -> bool:
```

### Variables

#### blip

```python
blip: Blip
```

#### colours

```python
colours: Colours
```

#### d3

```python
d3: D3
```

#### dbg

```python
dbg: SwitchableString
```

#### nullopt

```python
nullopt: std_nullopt
```

#### packageSystem

```python
packageSystem: PackageSystem
```

#### undo

```python
undo: UndoSystem
```

#### gui

```python
gui: Gui
```

#### d3gui

```python
d3gui: Gui
```

#### renderer

```python
renderer: DxRenderer
```

## Modified

### Class.methods

#### [Array2.item](../../docs/array2#array2)

```diff
-    def item(self, i: int, j: int) -> Vec2:
+    def item(self, i: int, j: int) -> Type1:
```

#### [Array2.set](../../docs/array2#array2)

```diff
-    def set(self, i: int, j: int, item: Vec2) -> None:
+    def set(self, i: int, j: int, item: Type1) -> None:
```

#### [HashTable.findSingle](../../docs/hashtable#hashtable)

```diff
-    def findSingle(self, s: str) -> int:
+    def findSingle(self, s: str) -> Type1:
```

#### [HashTable.replace](../../docs/hashtable#hashtable)

```diff
-    def replace(self, s: str, t: int) -> None:
+    def replace(self, s: str, t: Type1) -> None:
```

#### [MonitorCollection.active](../../docs/monitorcollection#monitorcollection)

```diff
-    def active(self) -> List[RemoteMonitor]:
+    def active(self) -> List[MetricMonitor]:
```

#### [MonitorCollection.all](../../docs/monitorcollection#monitorcollection)

```diff
-    def all(self) -> List[RemoteMonitor]:
+    def all(self) -> List[MetricMonitor]:
```

#### [MonitorCollection.expired](../../docs/monitorcollection#monitorcollection)

```diff
-    def expired(self) -> List[RemoteMonitor]:
+    def expired(self) -> List[MetricMonitor]:
```

#### [MonitorCollection.fuzzyMatch](../../docs/monitorcollection#monitorcollection)

```diff
-    def fuzzyMatch(self, string: str) -> MonitorCollection[T]:
+    def fuzzyMatch(self, string: str) -> MonitorCollection[Type1]:
```

#### [MonitorCollection.uncategorised](../../docs/monitorcollection#monitorcollection)

```diff
-    def uncategorised(self) -> MonitorCollection[T]:
+    def uncategorised(self) -> MonitorCollection[Type1]:
```

#### [MonitorCollection.withCategories](../../docs/monitorcollection#monitorcollection)

```diff
-    def withCategories(self, categories: List[str]) -> MonitorCollection[T]:
+    def withCategories(self, categories: List[str]) -> MonitorCollection[Type1]:
```

#### [TimeSequence.clear](../../docs/timesequence#timesequence)

```diff
-    def clear(self) -> TimeSequence[T]:
+    def clear(self) -> TimeSequence[Type1]:
```

#### [TimeSequence.getV](../../docs/timesequence#timesequence)

```diff
-    def getV(self, i: int) -> str:
+    def getV(self, i: int) -> Type1:
```

#### [TimeSequence.set](../../docs/timesequence#timesequence)

```diff
-    def set(self, t: float, v: str) -> TimeSequence[T]:
+    def set(self, t: float, v: Type1) -> TimeSequence[Type1]:
```

#### [TimeSequence.setV](../../docs/timesequence#timesequence)

```diff
-    def setV(self, i: int, v: str) -> None:
+    def setV(self, i: int, v: Type1) -> None:
```

#### [ClusterAssigner.isValidWorkloadTransportCombination](../../docs/clusterassigner#clusterassigner)

```diff
-    @staticmethod
-    def isValidWorkloadTransportCombination(type: WorkloadTransportType, format: WorkloadTransportFormat, bitDepth: WorkloadTransportBitDepth, alphaEnabled: bool) -> bool:
+    @staticmethod
+    def isValidWorkloadTransportCombination(type: TransportType, format: TransportFormat, bitDepth: TransportBitDepth, alphaEnabled: bool) -> bool:
```

#### [DxMaterial.\_\_new\_\_](../../docs/dxmaterial#dxmaterial)

```diff
-    @staticmethod
-    def __new__(cls, args, *args) -> Any:
+    @staticmethod
+    def __new__(cls, *args) -> Any:
```
