Contenido del curso
MARATON – DIA 1
La maraton tiene como objetivo incentivar el uso de TouchDesigner como plataforma de desarrollo, partiendo de las facilidades que nos brinde en el proceso de apredizaje de PROGRAMACIXN, gracias a su interfas visual, sus multiples campos de aplicación y su capacidad de integración con demas softwares, protocolos y dispositivos perifericos.
0/1
MARATON – DIA 2
La segunda sesión de la Maratón NTRCTV dará una introducción al vasto campo de la edición de video en tiempo-real. A partir de ejemplos presentes en los operator snippets compondremos nuestra biblioteca de efectos, asociado a un mezclador de video básico que permita integrar contenido de video pre-producido. Como parte del desarrollo de un sistema, la estructuración de la de la red lógica es solo ⅓ de la gestión necesario para completarlo. La infraestructura de cómputo, comunicación y control son elementos fundamentales para el funcionamiento de la solución a desarrollar. Como parte de aplicación práctica, integramos dispositivos de uso cotidiano como un smartphone android con dos aplicaciones que hacen uso del protocolo OSC. OSCHOOK y LittleOSC, ambas de descarga gratuita. Estas aplicaciones nos permitirán integrar nuestro sistema vía wifi, vinculando TouchDesigner con el smartphone, obteniendo los datos de los sensores del dispositivo y los datos acciones obtenidas por un pad touch al ser accionadas por el usuario.
0/1
MARATON – DIA 3
en esta sesión de nuestra MARATON NTRCTV con Touchdesigner abordaremos una de las tecnicas mas simples utilizadas en la creacion de videomapping interactivo dentro de nuestra plataforma de programación.
0/1
MARATON – DIA 4
En esta sesión abordaremos tecnicas basicas para capturar video en tiempo-real, aprovechando recursos de internet y dispositivos de captura de vide. Ademas integraremos un dispositivo MIDI a nuestro sistema de control de video.
0/1
MARATON – DIA 5
Como ya lo hemos abordado en las sesiones pasadas de la maraton, la familia de OPeradores de Canal (CHOPs) es encarga de vincular y reinterpretar las distintas clases de informacion que podemos llegar a utilizar, siendo los valores numericos la base para la integración de las distintas familias.
0/1
MARATON – DIA 6
En el dia 6 de la maraton de NTRCTV abarcaremos la tematíca GEOMETRIAS + MATERIALES. Vincularemos un tableta WACOM Intous 5 y el sistema de emisón de contenido en tiempo-real de Photoshop para realizar un simulador de la tableta gráfica.
0/1
MARATON – DIA 7
Esta septima sesión de la MARATON NTRCTV traer como tema principal el acercamiento a el desarrollo de interfaces visuales responsive, transladando el concepto desde las practicas del diseño web. Incursionando en temas de nivel medio, abordamos las BUENAS PRACTICAS, haciendo enfasis en la importancia de la nomenclatura en los procesos de desarrollo.
0/1
MARATON – DIA 8
En esta la penultima sesión de la Maraton NTRCTV con TouchDesigner, estaremos abordando una de las maneras que tenemos de vincular la plataforma de prototipado ARDUINO con nuestro sistema en TouchDesigner de manera bidireccional, recibiendo señales via PUERTO SERIAL de dos sensores, 1 fotocelda y 1 potenciomentro, junto con el envio de señal desde TD a un LED en la tarjeta arduino Mega.
0/1
MARATON – DIA 9
Esta es la novena y ultima sesión de la MARATON NTRCTV con TouchDesigner, la cual tuvo lugar el año 2020 durante 3 semanas del mes de marzo y abril. En esta sesión cerramos con broche de oro incursionando en el mundo del KINECT, una poderosa herramienta capaz de vincularse de manera nativa con nuestro sistema en TouchDesigner. Desarrollaremos un ejercicio simple de BodyTracking haciendo uso del Player Index de nuestro OPerador de KinectTOP, junto con los valores de Canal que obtenemos de nuestras manos junto con sus interacciones.
0/1
MARATON – NTRCTV – PROGRAMACIXN PARA HUMANXS

El sistema implementa una comunicación serial bidireccional entre una plataforma de microcontrolador Arduino (se demuestra con un Uno y un Mega) y el entorno de desarrollo TouchDesigner. La configuración del hardware en una protoboard consiste en tres circuitos principales: una salida digital, una entrada analógica por divisor de voltaje y una entrada analógica directa. 

 

  1. **Circuito de Salida (LED):** El ánodo (pata larga) de un diodo emisor de luz (LED) se conecta al pin digital 12 del Arduino. El cátodo (pata corta) se conecta en serie con una resistencia de 330Ω a la línea de tierra (GND) para limitar la corriente.

 

  1. **Circuito de Fotorresistencia (LDR):** Se construye un divisor de voltaje para medir la iluminancia. Una terminal de la fotorresistencia (LDR) se conecta a 5V. La otra terminal se conecta tanto al pin de entrada analógica A0 como a una terminal de una resistencia de 10kΩ. La segunda terminal de la resistencia de 10kΩ se conecta a GND. La lectura en A0 es proporcional a la resistencia del LDR, que varía inversamente a la luz incidente.

 

  1. **Circuito de Potenciómetro:** Las dos terminales externas del potenciómetro se conectan a 5V y GND, respectivamente. La terminal central (wiper) se conecta al pin de entrada analógica A1, proporcionando un voltaje variable de 0 a 5V.

 

La programación del microcontrolador se realiza a través del IDE de Arduino. Se carga un sketch que inicializa la comunicación serial a un baud rate de 9600 (`Serial.begin(9600)`), lee los valores de los pines analógicos A0 y A1, y los transmite a través del puerto serie USB en un formato de string ASCII formateado (ej. `A1=valor_A1`, `A2=valor_A2`). El sketch también implementa un listener en el puerto serie para recibir datos desde TouchDesigner y controlar el estado del pin digital 12 (`digitalWrite()`), actuando sobre el LED.

 

En TouchDesigner, la ingesta de datos se gestiona con un operador **Serial DAT**. Sus parámetros se configuran para coincidir con el puerto COM del Arduino (identificado mediante el Administrador de Dispositivos de Windows) y el baud rate de 9600. La cadena de procesamiento de datos (DAT pipeline) para el parsing de la información entrante es la siguiente:

 

  1. **Serial DAT:** Captura el stream de datos ASCII, donde cada mensaje del Arduino ocupa una nueva fila.
  2. **Select DAT:** Aísla la fila más reciente (la última entrada en el buffer del Serial DAT) para su procesamiento en tiempo real.
  3. **Convert DAT (1):** Realiza una tokenización del string utilizando el carácter de espacio como delimitador (`Split Cells At`), separando el identificador del sensor y su valor en dos columnas.
  4. **Transpose DAT:** Transpone la matriz de datos, convirtiendo las dos columnas en dos filas para facilitar el procesamiento subsiguiente.
  5. **Convert DAT (2):** Ejecuta una segunda tokenización, esta vez utilizando el signo igual (`=`) como delimitador, para aislar los valores numéricos de sus etiquetas de texto (A1, A2).
  6. **Select DAT:** Se utiliza para seleccionar únicamente la columna que contiene los valores numéricos ya parseados.
  7. **DAT to CHOP:** Convierte los datos tabulares (DAT) en canales de operador de canal (CHOP). La primera columna del DAT de entrada se utiliza para los nombres de los canales y la segunda para sus valores, resultando en dos canales discretos.

 

Estos canales son posteriormente procesados con operadores **Select CHOP** para separarlos y **Math CHOP** para remapear sus rangos de valores nativos (0-1023) a rangos funcionales para el control de parámetros. El valor de la fotorresistencia se vincula a la amplitud (`Amplitude`) de un operador **Noise TOP** que deforma una **Sphere SOP** (con tipo de primitiva poligonal para alta resolución). El valor del potenciómetro se utiliza para controlar la velocidad de la animación del Noise, típicamente modulando el componente de traslación en el tiempo (`absTime.seconds`).

 

La salida de datos desde TouchDesigner hacia el Arduino se realiza mediante un botón en la interfaz de usuario, cuyo estado se envía al operador **Serial DAT** para ser transmitido por el puerto serie. El Arduino interpreta este dato y conmuta el estado del LED. Adicionalmente, se menciona el protocolo **Firmata** como un método alternativo de comunicación, que permite un control de pines más directo desde TouchDesigner utilizando su componente de paleta dedicado, sin necesidad de escribir código custom en el Arduino IDE más allá de cargar el sketch estándar de Firmata.