# Introduction to TouchDesigner

### What is TouchDesigner?

TouchDesigner is a  visual programming platform developed by the company Derivative since 2000. TouchDesigner is used primarily for real-time multimedia and interactive design. It allows the creation of interactive visual experiences, 3D graphics, or audio-reactive visuals. TouchDesigner is widely used in live performances, interactive installations, projection mapping, and immersive environments like VR and AR.

TouchDesigner uses a visual node-based interface similar to PureData, Max or vvvv where each node represents an operator.

TouchDesigner can work with a wide range of devices (like LeapMotion, Kinect, Arduino, and VR headsets) and protocols (like MIDI, OSC, DMX) and can interface with other programs or be used to control lighting, robotics, or custom devices.



#### Use Cases

* **Projection Mapping**: Used to map visuals onto physical structures for shows, events, and art installations.
* **Audio-Visual Performances**: Many VJs and live performers use it to create visuals that sync with music.
* **Interactive Installations**: Often found in museums, galleries, and experiential marketing, where visuals respond to user input.
* **Data Visualization**: Allows artists and designers to create unique, dynamic representations of data in real-time.



### Operators

#### Channel Operators – CHOPs

**CHOPs** (Channel Operators) are operators that handle channels of data. Channels in TouchDesigner are streams of data that can be used to control various elements within a project, including animations, audio signals, sensor inputs, and parameter values.&#x20;

#### Texture Operators – TOPs

**TOPs** (Texture Operators) are operators that work  with images and textures, allowing users to create, manipulate, and render 2D and 3D visual data. TOPs are used to build and process visual content in TouchDesigner  like image compositing, video manipulation, texture generation, and real-time visual effects.

#### Surface Operators – SOPs

**SOPs** (Surface Operators) are operators used to create and manipulate 3D geometry, enabling the design of complex shapes, transformations, and models. SOPs can be used to generate forms from scratch, such as spheres, grids, or tubes, and modify them with operations like noise, scaling, or subdivision. These operators are fundamental for constructing 3D visual content, which can then be rendered as textures or integrated into larger interactive and visual projects.

#### Data Operators – DATs

**DATs** (Data Operators) are operators that handle and manipulate textual and tabular data, such as scripts, tables, or parameters, within a project. They are often used to process, store, and reference information in a structured way, making them ideal for tasks like managing external data inputs (e.g., CSV files or JSON), controlling scripts, or dynamically adjusting project parameters. DATs also facilitate communication between operators and components by allowing users to manipulate strings, lists, or tables, making them essential for data-driven or interactive installations.

#### Material Operators – MATs

**MATs** (Material Operators) are used to define the appearance of 3D objects by applying materials, shaders, and textures to them. These operators allow for the creation of realistic or stylized surface properties, such as color, reflectivity, transparency, and bump mapping, by manipulating the shading and texture of the geometry. MATs are essential for controlling the visual qualities of 3D models in a project, helping to achieve complex visual effects, from simple textures to advanced real-time shaders​

#### Component Operators – COMPs

**COMPs** (Component Operators) are containers that hold networks of other operators, allowing users to group and organize complex elements, from 3D objects to interactive interfaces. They serve as building blocks for modular project design, enabling artists to encapsulate specific functionalities like user interfaces, shaders, or custom visualizations within a single component. COMPs also offer interactivity through operator types like panels, which provide buttons, sliders, and other UI elements for user interaction.











