disguise developers

Python API

Execute Python code in Designer sessions to control and query projects programmatically.

r33.2 Change Log

Previous version: r33.1

Date: 05/28/2026, 13:29

Added

Classes

OscSendTarget

class OscSendTarget(_BlipValue):
    """
    Represents a single target (or route) to send OSC messages to

LayerView_PresentationModel

class LayerView_PresentationModel(_BlipValue):
    """
    Category: Track and Sequencing

FloatArrayOsc

class FloatArrayOsc(SuperFloatArray):
    """
    Float array source driven by incoming OSC messages.

SuperFloatArray

class SuperFloatArray(Resource):
    """
    Base class for resources that provide a float array value, e.g. via OSC or audio input.
    
    Category: Utility
    """

    null: Self  # type: ignore
    _classInfo: 'ClassInfo'
    __username__ = 'FloatArray'

    def __init__(self) -> None:
        """
        Default constructor for SuperFloatArray
        """
        ...

PTPGrandmaster

class PTPGrandmaster(_BlipValue):
    """
    Information about a PTP (Precision Time Protocol) grandmaster detected on the network. Reported by the IP VFC card and exposed via Machine.vfcPTPGrandmasters.

NmosNodeList

class NmosNodeList(MultiLevelList):
    """
    A hierarchical list showing NMOS Nodes, the devices in each node, and the senders and receivers in each device

FloatArrayAudioLine

class FloatArrayAudioLine(SuperFloatArray):
    """
    Float array source that reads sample data from an audio line-in device.

MultiLevelListItem

class MultiLevelListItem(_BlipValue):
    """
    The visual class of the multilevel list displaying the items as widgets

LayerView_PresentationModel_Layer

class LayerView_PresentationModel_Layer(_BlipValue):
    """
    Category: Track and Sequencing

MultiLevelList

class MultiLevelList(Resource):
    """
    A hierarchical list where item's can have sub-items, and those have sub-items to four levels

Class.properties

CalibrationLutMapping.angleGainLut

    @property
    def angleGainLut(self) -> DxTexture:
    @angleGainLut.setter
    def angleGainLut(self, value: DxTexture) -> None:

ColourShift.gain

    @property
    def gain(self) -> float:
    @gain.setter
    def gain(self, value: float) -> None:

ColourShiftData.gain

    @property
    def gain(self) -> float:
    @gain.setter
    def gain(self, g: float) -> None:

D3State.fadeDurationSec

    @property
    def fadeDurationSec(self) -> float:
    @fadeDurationSec.setter
    def fadeDurationSec(self, value: float) -> None:

D3State.minimumGuiProxyLevel

    @property
    def minimumGuiProxyLevel(self) -> int:
    @minimumGuiProxyLevel.setter
    def minimumGuiProxyLevel(self, value: int) -> None:

Expression.isDisabled

    @property
    def isDisabled(self) -> bool:
    @isDisabled.setter
    def isDisabled(self, value: bool) -> None:

LutFile.interpolation

    @property
    def interpolation(self) -> int:
    @interpolation.setter
    def interpolation(self, value: int) -> None:

Mapping.logicalDevice

    @property
    def logicalDevice(self) -> LogicalDevice:
    @logicalDevice.setter
    def logicalDevice(self, device: LogicalDevice) -> None:

Mapping.audioDelay

    @property
    def audioDelay(self) -> float:
    @audioDelay.setter
    def audioDelay(self, delay: float) -> None:

Mapping.hardwareId

    @property
    def hardwareId(self) -> str:
    @hardwareId.setter
    def hardwareId(self, hardwareId: str) -> None:

MeshProjection.combineScreens

    @property
    def combineScreens(self) -> int:
    @combineScreens.setter
    def combineScreens(self, value: int) -> None:

MixedRealitySet.angleColourCorrectionTarget

    @property
    def angleColourCorrectionTarget(self) -> int:
    @angleColourCorrectionTarget.setter
    def angleColourCorrectionTarget(self, value: int) -> None:

Module.playHead

    @property
    def playHead(self) -> PlayHead:

Module.allowOnLayerStack

    @property
    def allowOnLayerStack(self) -> bool:

OscDevice.sendTargets

    @property
    def sendTargets(self) -> List[OscSendTarget]:
    @sendTargets.setter
    def sendTargets(self, value: List[OscSendTarget]) -> None:

SuperLayer.enabledIncludingParents

    @property
    def enabledIncludingParents(self) -> bool:

TrackPlayer.playHead

    @property
    def playHead(self) -> TrackPlayHead:

TrackPlayer.deltaTime

    @property
    def deltaTime(self) -> float:

Class.methods

Expression.setDisabled

    def setDisabled(self, disable: bool) -> None:

FieldSequence.sockpuppetSuppressedByIsolate

    def sockpuppetSuppressedByIsolate(self) -> bool:

FloatSequence.evalSum

    def evalSum(self, t0: float, t1: float) -> float:

GuiSystem.requestCapture

    def requestCapture(self, includeWidgets: bool, size: Int2) -> shared_future[Path]:

IPVideoInSystem.removeIPVideoInByNMOSReceiverID

    def removeIPVideoInByNMOSReceiverID(self, nmosReceiverId: str) -> None:

IPVideoInSystem.createOrUpdateVideoInFromSDP

    def createOrUpdateVideoInFromSDP(self, file: str, path: optional[str], overwrite: bool, updateNMOSConnectionAPI: bool, sender_id: optional[str], pers: PersistentIPVideoIn) -> str:

IPVideoInSystem.createNMOSIPVideoIn

    def createNMOSIPVideoIn(self, name: str) -> str:

ImageCaptureProcess.syncFilesInDirectory

    @staticmethod
    def syncFilesInDirectory(path: str) -> None:

LocalState.nLayersMuted

    def nLayersMuted(self) -> int:

Machine.injectVFCEvent

    def injectVFCEvent(self, iSlot: int, event: str) -> None:

Machine.vfcPTPGrandmasters

    def vfcPTPGrandmasters(self, iSlot: int) -> List[PTPGrandmaster]:

Machine.vfcPTPGrandmasterCount

    def vfcPTPGrandmasterCount(self, iSlot: int) -> int:

MobileCam.toString

    def toString(self) -> str:

OptiCalStagePlan.setSimulated

    def setSimulated(self, simulated: bool) -> None:

OscDevice.addSendTarget

    def addSendTarget(self, label: str, address: IPAddress, port: int, enabled: bool) -> None:

OscDevice.removeSendTarget

    def removeSendTarget(self, index: int) -> None:

OscDevice.clearSendTargets

    def clearSendTargets(self) -> None:

PlayHead.writeLayerFromTimeline

    def writeLayerFromTimeline(self, layer: Layer) -> None:

Recorder.clearStaleStates

    def clearStaleStates(self) -> None:

RemoteParameter.isArray

    def isArray(self) -> bool:

RigidBodyTrackingSource.snapButtonDisabledReason

    def snapButtonDisabledReason(self) -> str:

SuperTrack.setAudioTrack

    def setAudioTrack(self, track: AudioTrack) -> None:

TrackPlayHead.track

    def track(self, track: SuperTrack, resetMute: bool) -> None:

Class.variables

MeshProjection.CombineScreensAll

    CombineScreensAll: Final[int] = 1  #: Index of the 'All' combine screens mode

MeshProjection.CombineScreensNonOutput

    CombineScreensNonOutput: Final[int] = 2  #: Index of the 'Non-Output' combine screens mode

MeshProjection.CombineScreensAllActive

    CombineScreensAllActive: Final[int] = 3  #: Index of the 'All Active' combine screens mode

MeshProjection.CombineScreensNone

    CombineScreensNone: Final[int] = 0  #: Index of the 'None' combine screens mode

Functions

originalMemberName

def originalMemberName(name: str) -> str:

Removed

Class.constructors

RI.__init__

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

Class.properties

OscDevice.sendIPAddress

    @property
    def sendIPAddress(self) -> str:
    @sendIPAddress.setter
    def sendIPAddress(self, value: str) -> None:

OscDevice.sendPort

    @property
    def sendPort(self) -> int:
    @sendPort.setter
    def sendPort(self, value: int) -> None:

Modified

Class.methods

IPVideoInSystem.downloadSDP

-    def downloadSDP(self, url: str) -> bool:
+    def downloadSDP(self, url: str, path: optional[str]) -> bool:

Class.properties

TransportJumpCommand.variable.track

-    @property
-    def track(self) -> str:
-    @track.setter
-    def track(self, value: str) -> None:
+    @property
+    def track(self) -> Track:
+    @track.setter
+    def track(self, value: Track) -> None:

TransportJumpCommand.getter.track

-    @property
-    def track(self) -> str:
+    @property
+    def track(self) -> Track:

TransportJumpCommand.setter.track

-    @track.setter
-    def track(self, value: str) -> None:
+    @track.setter
+    def track(self, value: Track) -> None:

Deprecated

Class.methods

FieldSequence.eval

    @deprecated('FieldSequence.eval() will be restricted from plugins in a future Designer release. Please update your plugins to switch to FieldSequence.getSequencedValue().')
    def eval(self, t: float, ttl: int) -> float: