Hotfix for 2022.29530 memory leak
Release Notes 
This release is a hotfix for 2022.29530 which had a memory leak in the Render TOP.

Oct 31, 2022

New Features

  • Particle SOP.createParticles(num) - A new python method which creates a specific number of particles without advancing the simulation. Returns the results as a list of points whose attributes (N, v, life, etc) can be directly modified. Existing points can also have their attributes modified.


New Palette

  • TDWidgetKit 2.1.48
    • Widgets - Removed debug statement from folder widget tab reorder.


Bug Fixes and Improvements

  • Render TOP - Fixed memory leak that can occur in some cases.
  • Render TOP - Fixed some multi-cam/multi-layer rendering not working on older GPUs.
  • Timer CHOP improvements
    • Preserve uninitialized state when loading, to allow onInitialize callback.
    • External channel now supports backward scrubbing.
    • Better behavior when jumping forward/backward using external channels.
  • Animation Editor - Fixed playhead snapping back when scrubbed in Animation Editor.
  • Parameter Dialog - The input editor now includes an index column to make referring to inputs by index easier. The input rows are now draggable to quickly set their order.
  • Wire rollover help now includes input index.
  • Fixed intermittent drag-n-drop failures from OP Browser.
  • Allow unselecting of the current node when a group of nodes is selected.
  • Do not change the state of cook/render/display flags for any Network Boxes/Comments included in a selection.
  • Fixed an issue with OP Snippets eating up memory.


Build 2022.29530
Oct 19, 2022

New Features

  • Window COMP - Added new 'Single Monitor Exclusive' sizing option, which causes the window to try to enter an exclusive access mode on the specified screen, improving performance for perform mode.
  • Blob Track TOP -
    • Added onBlobTrack() callback that identifies current blobs, and onBlobStateChange() that identifies changes to blob states.
    • Added new state columns active, lost, revived, expired, and timer columns age, lost_time, expired_time to the Info DAT. keeps better track when temporarily lost, and blob info can persist after expired.
  • GLSL TOP - Added support for Vulkan 'Specialization Constants'.
  • Video Device In TOP - Added support for Sync Groups on AJA devices.
  • JSON DAT - Added 'Transpose Table' parameter and DAT now outputs tables more robustly (see Snippets).


New Python

  • Page Class.appendXYZW(...) - Append a custom parameter type of 4 floats with x,y,z,w suffixes. This matches some built-in parameter types.
  • tdu Module - tdu.TableMenu(tableOP, names <col name or num>, labels <optional col name or num>, includeFirstRow=False)) allows DAT as menu source.
  • WebrtcDAT Class - Added new methods for querying connection states to avoid having to go through the DAT's table output.


New Palette

  • Palette:camSchnappr - Improvements
    • Added option to load pickable points via a point group.
    • Backlight Color and Dimmer is connected to projection output as well.
    • Fixed camera loosing position after re-opening.
    • Models are centered automatically in the Main Window.
  • Palette:lister - Fixed issue where there are two entries for textFormat in the AutoColDefine table.
  • Palette:lister - Fixed edge case bugs and cleaned up config defaults.
  • Palette:presets - Presets COMP support is dropped and has been removed from palette.
  • Palette:searchReplace - v1.12.3 - Added warnings for invalid par and op names, and better error handling when replacing text.
  • Palette:treeLister - Fixed edge case bugs and cleaned up config defaults.
  • Palette:webRTCPanel - v1.0.0 - Initial release: The webRTCPanel COMP is a component that can be used to share a TouchDesigner COMP's panel over a WebRTC connection with full panel interactivity support.
  • Palette:webRTCPanelRcv - v1.0.0 - Initial release: The webRTCPanelRcv COMP is a component that can be used to receive a TouchDesigner COMP's panel over a WebRTC connection with full panel interactivity support when shared from a webRTCPanel.
  • Palette:webRTC - v1.0.4 - Hotfix: The WebRTC COMP "pefect negotiation" pattern was improved. It should now be slightly more "perfect".
  • Palette:signalingServer - v1.0.3 - Hotfix: Change to Signaling API, now v1.0.1, to support the timeJoined dateTime property.
  • Palette:signalingClient - v1.0.3 - Hotfix: Fix to the Subscribe method that could sometimes fail to subscribe (or re-subscribe).
  • Widgets - Fix to AutoUI inclusion of Header widget.


Bug Fixes and Improvements

  • Panel opacity was not behaving consistently across panels, the following improvement have been made
    • Table COMP - Now 'Opacity' parameter works correctly.
    • List COMP - Now follows parent opacity.
    • Panel Borders now work with 'Opacity' parameter.
    • Panel opacity now works on all panel elements (OP Viewers, scrollbars, etc).
  • Geo Text COMP - Fixed cases where instancing wouldn't appear in the node viewer.
  • Engine COMP - Fixed Engine COMP's file parameter works correctly with VFS and URL locations
  • Engine COMP - Custom file and folder parameters on the loaded component are now evaluated relative to the project, not the component. See Backward Compatibility below, this changes behavior if you have projects which use relative paths for custom file or folder parameters on an Engine COMP. This also enables VFS usage for custom file or folder parameters on the Engine COMP.
  • Engine COMP / TouchEngine - Fixed crash which could occur in low memory situations with large DAT inputs.
  • Text COMP - Fixed a bug with text position when only the top padding was updated.
  • Text COMP - Font alpha is now correctly premultiplied when using the Specification DAT.
  • GLSL MAT - Fixed crash that can occur when loading certain shaders.
  • GLSL TOP - Fixed crash that would occur if an atomic counter was declared in the shader before it was defined in the parameters.
  • GLSL TOP - Fixed uTDPass not being filled properly for compute shaders.
  • Notch TOP - Fixed updating of Exposable Array size when Num Transform changes.
  • Optical Flow TOP - Added 'Gain' parameter and improved the units output in the pixels. A value of 1 in red means the movement is from left edge of the image to the right edge of the image in 1 second. Works in non-realtime mode as as well.
  • Ouster TOP - Fixed a crash when running version 2.4 firmware.
  • Ramp TOP - Fixed extend left/right behavior.
  • Render TOP - Fixed time reported for GPU operations being incorrect.
  • Time Machine TOP - Fixed crash when input was 2D Texture Array or 3D Texture.
  • Video Device In TOP - Allow cameras named 'Blackmagic Design' to be used with AVFoundation on macOS. Other Blackmagic devices should still use the 'Blackmagic' Library mode. This is needed for the Blackmagic ATEM device, which doesn't support the SDK and instead is only used via webcam interfaces.
  • Video Device In TOP - Fixed hang/crash that can occur when changing cameras when using Media Foundation library.
  • Audio Device In CHOP / Audio Web Render CHOP - 'Active' toggle now completely stops cooking in these operators when switched to 'Off'.
  • Audio Oscillator CHOP - Fixed white noise from stopping when base frequency was left at 0.
  • Object CHOP - Sample rate now matches project fps.
  • OSC Out CHOP - When sending timeslice format, rate values are now sent to delineate timeslices to avoid a random number of channels appearing.
  • Pattern CHOP - Fixed 'Length' parameter disabling when input operators are deleted.
  • Speed CHOP - Fixed use of me.chanIndex in parameters.
  • Timer CHOP - Fixed cases of skipping callbacks when leaving a zero-length segment.
  • MQTT Client DAT - Fixed crash from publishing while DAT is inactive.
  • Render Pick DAT - Fixed a crash that can occur in some cases.
  • TCP/IP DAT - Fixed behavior of onConnect and onClose callbacks, they would trigger even if a connection was not established.
  • WebSocket DAT - Fixed connection issues when using ports other than 80 or 443.
  • Polypatch SOP - Fixed a crash that occurred in some cases.
  • Export Movie Dialog - Fixed checkbox state on first opening and fixed drag and drop issues with the 'TOP Video' and 'CHOP Audio' fields.
  • Fixed Privacy dialogs to show password text as hidden when unlocking.
  • Potential fix for hangs occurring in Nvidia 516.xx and newer drivers, particularly on laptops.
  • Small fix to entries in the Help menu on macOS.
  • Automatic turning on of parameters when Alt+[ or Alt+] shortcuts are used in addition to menu selections.
  • Alt+MMB and Alt+RMB network zooms again, instead of creating annotates which is now restricted to only Alt+LMB.
  • F10 shortcut now works properly on overlapping panels
  • Fixed exporting when switching between different CHOPs and the parameter wasn't in export mode.
  • Fixed panel layout order with similarly children names ie. ui1 vs ui1_1
  • Allow grabbing scrollbars when panel resize edges are used.
  • Fixed issue with OP Create dialog closing after pressing the tab key.
  • Fixed a crash loading
  • Fixed crash which could occur opening a very large window, such as a viewer for high resolution TOPs.
  • CrashAutoSave.toe files will now attempt to be saved when Vulkan device errors occur.


Operator Snippets

(click Newest button in Snippets)


Backward Compatibility

  • BACKWARD COMPATIBILITY ISSUE - TOX files with no file extensions will no longer load. Additionally, TOX files will always be saved out with an extension of .tox now.
  • BACKWARD COMPATIBILITY ISSUE- Engine COMP - Custom file and folder parameters on the loaded component are now evaluated relative to the project, not the component. This changes behavior if you have projects which use relative paths for custom file or folder parameters on an Engine COMP. This also enables VFS usage for custom file or folder parameters on the Engine COMP.