La Programación Basada en Flujo (Flow-Based Programming, FBP) constituye un paradigma de programación de naturaleza inherentemente visual, alternativo a los modelos de programación textual y lineal.
FBP opera bajo la metáfora de una factoría de procesamiento de datos, donde las aplicaciones se definen como una red de procesos asíncronos encapsulados en formato de ‘caja negra’. Estos procesos, denominados nodos u operadores en el entorno de TouchDesigner, son componentes cuya lógica interna es opaca al desarrollador, interactuando exclusivamente a través de sus puertos de entrada y salida.
La comunicación entre nodos se efectúa mediante la transmisión de paquetes de información discretos (Information Packets o IPs) a través de conexiones dirigidas, análogas a cintas transportadoras. Una característica fundamental del paradigma es la definición externa de la topología de la red; las conexiones se establecen entre los procesos sin requerir modificación alguna de la lógica interna de dichos procesos. Esto desacopla el flujo de datos de la implementación del componente.
El workflow es intrínsecamente no destructivo (non-destructive), significando que los datos fuente permanecen inalterados. Cada nodo en la cadena procesa los datos de entrada y genera una nueva versión transformada en su salida.
Cualquier modificación en un nodo aguas arriba se propaga en tiempo real a través de toda la red dependiente. Un ejemplo práctico de este flujo es la conversión de datos de tipo tabla (DAT), que contienen cadenas de caracteres alfanuméricos, a datos de textura (TOP).
Una primera operación puede ser la selección de una fila específica de un DAT mediante un operador `Select`. El dato resultante alimenta un operador `Text TOP`, que realiza la rasterización de la cadena de texto a una matriz de píxeles, cuyos atributos (fuente, estilo como bold/regular) son controlados paramétricamente. La salida, una textura con canal alfa, puede ser compuesta sobre otra capa mediante un operador `Over TOP` para agregar un fondo, cuyos parámetros de color (RGBA) se modulan a través de sliders.
El resultado de un nodo puede ser bifurcado para alimentar múltiples procesos subsiguientes de manera simultánea, sin interferencia entre las ramas de procesamiento y sin necesidad de alterar el nodo fuente. Cada nodo encapsula un ciclo de entrada-proceso-salida, recibiendo un flujo de datos, ejecutando su función específica y emitiendo un resultado para el siguiente eslabón de la cadena de procesamiento.
Esta arquitectura define a la Programación Basada en Flujo como un modelo nativamente orientado a componentes, donde las aplicaciones complejas se construyen mediante la interconexión modular de unidades de procesamiento reutilizables, un principio formalizado por J. Paul Morrison.