TouchDesigner
The volta_bootstrap.py script connects Volta to TouchDesigner by fetching your layout from the REST API and auto-generating a complete network inside a container COMP — WebSocket DAT, per-control Constant CHOPs, Index option tables, and a callback script that routes incoming audience actions to the right operators.
Prerequisites
Section titled “Prerequisites”- TouchDesigner 2023 or later
- A Volta REST API key
- Your WebSocket host (
<id>.execute-api.<region>.amazonaws.com/<stage>)
- Download
volta_bootstrap.pyor copy it from your Volta Artist IO installation. - In TouchDesigner, create a Text DAT named
volta_bootstrapand paste the script contents into it. - Open the Textport (
Alt+T) and call:
mod('volta_bootstrap').build( layout_id = 'VAL-01ARZ3NDEKTSV4RRFFQ69G5FAV', api_key = 'your-rest-api-key', ws_host = 'abc123.execute-api.eu-west-2.amazonaws.com/production', parent = op('/project1'),)A container COMP named volta_<id-suffix> is created inside parent and the WebSocket connects automatically.
What gets created
Section titled “What gets created”volta_<suffix>/ websocket WebSocket DAT — live connection to Volta ws_callbacks Text DAT — generated OSC dispatch script lid_001 Constant CHOP — value for control at /001 lid_001_trigger Constant CHOP — pulses 1→0 on each Button press lid_002 Constant CHOP — e.g. Slider 0–1 lid_003_x Constant CHOP — XYPad / Accelerometer / Gyroscope axes lid_003_y Constant CHOP options_004 Table DAT — index/label/image rows for Index controls all_controls Select CHOP — merges every value CHOP into one placeRebuilding after a layout change
Section titled “Rebuilding after a layout change”Call build() again — it destroys and recreates the container with the updated layout.
Token refresh
Section titled “Token refresh”The WebSocket URL embeds a short-lived JWT. If the connection drops for more than ~15 minutes, call build() again to fetch a fresh token.