Introduction to Python

From TouchDesigner 088 Wiki
(Redirected from Python)

TouchDesigner allows scripting in both Python and Tscript. It uses Python version 3.3. In addition to Python 3.3 standard library, numpy has been precompiled and included in the installation.

If you know some python already, see the Introduction to Python Tutorial.

The "Python" link on the left of this page is the entry point to the hierarchy of Python classes of TouchDesigner.

An online tutorial for python in general can be found at: Here is an excellent way to start coding instantly: And here is a cheat-sheet of python methods:

The TouchDesigner Python classes are organized below, and detailed in the Python Reference Category.

Examples of Python in TouchDesigner can be opened via Help -> Python Examples. This is the same as C:/Program Files/Derivative/TouchDesigner088/Samples/Learn/PythonExamples.toe.

Commonly-used Python expressions are here: Python Tips.

Inputting Scripts

Python scripts can be entered in the textport, DATs, and operator parameters (anywhere Tscript commands or expressions can).

For a description of how this is done, refer to Introduction to Python Tutorial.

DATs that handle events using python callbacks include: CHOP Execute DAT, Panel Execute DAT, DAT Execute DAT, Execute DAT, OP Execute DAT, Parameter Execute DAT

OPs that react to other circumstances using python callbacks include: OSC In DAT, Serial DAT, Art-Net DAT, UDP In DAT, Timer CHOP, Multi Touch In DAT, Render Pick DAT, Keyboard In DAT, MIDI In DAT, OP Find DAT


On startup, TouchDesigner runs which initializes enumerations and DAT importing functions as well as:

  • import sys
  • import re
  • import math
  • from td import *

See sys, math and re.

The td Module is the main module containing all application related classes and objects. It does not need to be explicitly included.

Its main classes can be organized as follows:

In addition to the above, the td Module also contains a specific class type for each specific operator. For example, the Wave CHOP is represented by the waveCHOP Class. The naming convention for the classes is to remove all spaces and make the node type name all lowercase. The node family is always all uppercase. For example the Render Pass TOP's class name will be renderpassTOP.

Specialized Operators

Many of the operator classes contain methods and members specific to their operator. They are: