TouchDesigner (nozzle-TOP)
nozzle-TOP provides TouchDesigner Custom TOP plugins for nozzle GPU texture sharing.
Plugins
Nozzle Send
Filter TOP (1 input). Publishes the input texture via nozzle and passes it through as output.
Nozzle Receive
Generator TOP (0 inputs). Receives a nozzle frame and outputs it as a texture. Cooks every frame to poll for new frames.
Both plugins use CPUMem mode — texture data is transferred through CPU memory. This works on all platforms but is slower than direct GPU sharing. A future CUDA mode release (Windows/NVIDIA only) may improve performance.
Parameters
| Parameter | Default | Description |
|---|---|---|
| Sender Name | nozzle |
Nozzle sender name to publish or subscribe to |
| Application Name | TouchDesigner |
Application name metadata |
Build
Prerequisites
- CMake 3.20+
- C++17 compiler
- macOS 12+ or Windows 10+
macOS
git clone --recurse-submodules https://github.com/nozzle-io/nozzle-TOP.git
cd nozzle-TOP
cmake -B build
cmake --build build
Output: plugin/NozzleSend.plugin and plugin/NozzleReceive.plugin (universal binary: arm64 + x86_64).
Windows
git clone --recurse-submodules https://github.com/nozzle-io/nozzle-TOP.git
cd nozzle-TOP
cmake -B build
cmake --build build --config Release
Output: plugin/NozzleSend.dll and plugin/NozzleReceive.dll.
Install
Copy the .plugin (macOS) or .dll (Windows) files to your TouchDesigner Custom OPs folder. See Custom Operators — Plugin Folder Locations.
Pixel Format Support
| TouchDesigner | Nozzle |
|---|---|
| BGRA8 Fixed | BGRA8 UNORM |
| RGBA8 Fixed | RGBA8 UNORM |
| RGBA16 Fixed | RGBA16 UNORM |
| RGBA16 Float | RGBA16 Float |
| RGBA32 Float | RGBA32 Float |
| Mono 8/16/16F/32F Fixed/Float | R8/R16/R16F/R32F |
| RG 8/16/16F/32F Fixed/Float | RG8/RG16/RG16F/RG32F |