El ecosistema de TouchDesigner se fundamenta en una taxonomía de seis familias de operadores, cada una especializada en un dominio de procesamiento de datos y diferenciada por un código de color para su identificación visual en la red. La arquitectura del software, como lenguaje de programación visual basado en nodos, permite la creación de sistemas multimedia interactivos y generativos en tiempo real para aplicaciones que abarcan desde la composición 2D/3D y el procesamiento de video/audio hasta la implementación de interfaces de usuario personalizadas, la interoperabilidad con dispositivos externos y la programación mediante scripting avanzado.
Los operadores, como unidades fundamentales del proyecto, son objetos personalizables a través de sus parámetros únicos y su estado, controlado mediante banderas (flags). Las seis familias principales son:
1. **Componentes (COMPs – Gris):** Se distinguen por su capacidad de encapsular redes de operadores anidadas, permitiendo la creación de jerarquías de procesamiento y abstracciones modulares. Funcionan como contenedores para sub-sistemas, interfaces de usuario (paneles) u objetos 3D complejos. Su configuración de entradas y salidas es polimórfica, pudiendo interconectar distintos tipos de datos, como la entrada de un flujo de datos DAT para controlar una red interna que genera una salida de canal CHOP.
2. **Operadores de Canal (CHOPs – Verde):** Constituyen el sistema nervioso central para el control y la animación. Procesan datos numéricos organizados en canales, que representan secuencias de muestras (samples) en el tiempo. Son utilizados para la manipulación de señales de movimiento, datos de audio, curvas de animación, y para la ingesta de datos de protocolos de control como MIDI, OSC, o de dispositivos de entrada. La topología de los nodos varía, existiendo operadores de entrada única para procesamiento en serie y operadores de múltiples entradas (e.g., `Merge`, `Math`) para la agregación y combinación de múltiples flujos de datos. La visualización de datos se realiza mediante gráficos de barras o formas de onda temporales.
3. **Operadores de Textura (TOPs – Morado):** Realizan operaciones de procesamiento de imágenes y composición aceleradas por la unidad de procesamiento gráfico (GPU). Trabajan con datos matriciales bidimensionales (píxeles) cuya resolución está limitada principalmente por la VRAM disponible en la tarjeta gráfica, permitiendo el renderizado en tiempo real a altas resoluciones. Manejan todo el contenido 2D, como flujos de video, imágenes estáticas y texturas generadas proceduralmente. A diferencia de los CHOPs basados en muestras, la unidad fundamental de un TOP es el píxel. Existen nodos de entrada única y de entrada múltiple para operaciones de composición y efectos complejos.
4. **Operadores de Superficie (SOPs – Azul):** Se dedican a la generación y manipulación procedural de geometría tridimensional. Convierten datos de vectores espaciales (vértices con coordenadas x, y, z) y topología en mallas poligonales, curvas, superficies NURBS, metaballs o sistemas de partículas. Cada SOP posee un espacio 3D local e independiente, navegable en su visor de nodo para inspección y depuración geométrica. Esta encapsulación espacial facilita la construcción modular de la geometría antes de su integración en una escena de renderizado. Los controles de navegación en el visor (paneo, zoom, órbita) son consistentes con los del editor de red.
5. **Materiales (MATs – Amarillo):** Son operadores integrados en el pipeline de renderizado 3D que definen las propiedades de sombreado (shading) de las superficies geométricas (SOPs). Se asignan a la geometría para determinar su respuesta a la iluminación en la escena. La familia incluye diversos modelos de sombreado, como `Phong` para materiales clásicos, PBR (Physically Based Rendering) para simulaciones de materiales realistas, `Wireframe` para la visualización de la topología de la malla, `Point Sprite` para la representación de puntos y el `GLSL MAT` para la implementación de shaders personalizados mediante código GLSL.
6. **Operadores de Datos (DATs – Rosa):** Gestionan información en formato de texto plano, tablas o datos estructurados como JSON y XML. Se utilizan para almacenar y ejecutar scripts (Python, T-script), analizar datos de fuentes externas (archivos, redes) y construir dinámicamente la lógica del sistema. Actúan como el puente entre el paradigma de programación visual basado en nodos y la programación imperativa basada en texto, potenciando la extensibilidad y la complejidad de los proyectos.