Investigación

El nenúfar aprende a respirar, la drosera cuenta dedos y el pipeline se muda a WebSocket

Detección de agua para la Victoria Regia, seguimiento de dedos para la Drosera, sistemas de mirada para el colibrí y migración de la arquitectura a WebSocket.

Esta quincena: el nenúfar aprendió a respirar, la drosera aprendió a contar dedos y el pipeline se mudó a WebSocket.

Hace dos semanas el árbol era tímido. Ahora hay catorce criaturas y están empezando a conocerse.
La Victoria Regia llegó primero. Un sensor impermeable sumergido en un vaso de agua, un ESP32 que lee la capacitancia cada 40 milisegundos y un nenúfar gigante de la Amazonía que se abre cuando el agua está quieta y se cierra cuando la mueves. Metes el dedo, las hojas se contraen. Echas un poco más de agua, toda la hoja flotante se inclina. Nos tomó un día afinar la calibración de la línea base. El sensor deriva con la temperatura, así que hicimos que vuelva a cero cada vez que arranca el sistema. Pipeline 12. El nenúfar ya respira.

La Drosera fue más difícil. Tiene trece tentáculos y cada uno debe curvarse hacia la punta de un dedo específico, lo que significó arreglar por fin el mapeo de los puntos de referencia de la mano en MediaPipe, que llevábamos meses medio ignorando. El índice al tentáculo 3, el pulgar al tentáculo 1, y así. Cuando abres los dedos, la drosera se abre. Cuando pellizcas, se cierra de golpe sobre un insecto invisible. Brian armó el rig para que la curvatura nazca de la base y no de la punta. Así se mueven las droseras de verdad. La diferencia se siente de inmediato.

La Colibri recuperó su cabeza. La versión anterior solo seguía el cuerpo, así que la cabeza del colibrí apuntaba adonde apuntara el torso, y los colibríes no funcionan así. Pasamos a MediaPipe FaceMesh, 468 puntos de referencia, y ahora la cabeza tiene seguimiento independiente, se inclina, sigue tu mirada. Ella te mira cuando la miras. La primera vez es inquietante.
Después, la gran decisión de arquitectura. Llevábamos semanas pasando todo por UDP hacia Blender. Funcionaba para el estudio, pero no iba a sobrevivir al despliegue en Resonite VR. Así que reescribimos la columna vertebral. Ahora Python se encarga de toda la lógica de los sensores externos, cámaras, ESP32, satélites, proximidad, y en lugar de enviar rotaciones crudas de huesos enviamos unos cincuenta valores de estado de criatura por un WebSocket de ResoniteLink. “Nivel de miedo del árbol: 0.7”. “Duelo de la orquídea: 0.4”. “Quietud de la llama: 1.0”. Las criaturas deciden por sí mismas cómo expresar esos estados dentro de VR. Es la diferencia entre titiritería y relación. Dan construyó para su PC un cliente autónomo de seguimiento de manos que se enchufa directo a Resonite, sin Blender de por medio, así que por fin podemos probar en el visor sin todo el equipo del estudio.

En paralelo, he estado haciendo correr ComfyUI y Hunyuan3D localmente en la M5 Max, 48GB de memoria unificada, generando assets de criaturas sin mandar un solo fotograma a un servidor. La primera prueba fue una polilla. Era una polilla terrible. La segunda salió mejor.

Once pipelines se volvieron catorce. El árbol sigue tímido. La orquídea sigue de duelo. La llama sigue en reposo cuando tú estás en reposo. Pero ahora el nenúfar respira, la drosera cuenta dedos y el colibrí te mira a los ojos.

Todo nace desde lo pequeño. Lo pequeño está empezando a hablar entre sí.