Skip to content
Voro
  1. Voro
  2. Authoring

Authoring

Every view of the Voro menu starts with the same column. It holds the operators that take a source you write, and Convert. Place one, edit its source in TouchDesigner, press Reload. The node keeps its last working version running while you edit, so a broken Reload never takes the graph down.

OperatorYou writeReload compiles
Kernel FXA Python kernel in the Numba-CUDA dialectGPU code that runs natively on every frame
Script FXA Python process functionA script the shared Python provider runs per frame
ONNX FXNothing. You point it at an .onnx file and a configA model session on the GPU
Rig FXA .rig source: a control machine, and a surface when it declares an artboardA running show document, and a drawn picture when there is an artboard
Warp FXWarp kernels over geometry, fields and stateNative GPU stages
MaterialA look() function in GLSL-like sourceA material the path tracer calls
ConvertNothing. You choose an input class, an output class and a methodAn explicit conversion between wire kinds

The source is a DAT docked to the node. The node’s own page names it, and the name is the default source name for that operator. Edit the DAT in TouchDesigner, or sync it from a file on disk. Nothing recompiles until you press Reload.

Reload compiles off the frame loop. When it succeeds, the node adopts the new source. When it fails, the node reports the error and keeps the previous good source running. You fix the text and press Reload again.

Two kinds of control appear on a node. Values you declare in the source become parameters, and turning one applies live. Changing what the source declares, such as a port, a state array or a stage, takes a Reload.

Any authored node can be saved as a custom module. It then appears in the Custom column of its view, with its source, presets and a place on disk that you own.