Saltearse al contenido

Unidad 6

Introducción 📜

¿Qué aprenderás en esta unidad? 💡

Actividad 01

Inspiración en agentes y comportamiento emergente

👣 Pasos:

  1. Observa “Arrels”: dedica tiempo a mirar imágenes o videos de “Arrels”. Fíjate en las estructuras que se forman. ¿Parecen seguir reglas? ¿Cómo interactúan las diferentes “ramas” o elementos?
  2. Observa “encuentros”: explora la obra “Encuentros”. Observa los "Outputs finales"¿Qué tipo de movimiento o trayectoria siguen las entidades? ¿Parecen evitarse, seguirse o ignorarse? ¿Qué reglas simples podrían generar estos caminos complejos?
  3. Reflexiona sobre la autonomía: Para ambas obras (“Arrels” y “Encuentros”), reflexiona sobre estas preguntas:
    • ¿Qué reglas o comportamientos autónomos crees que podrían estar programados en los agentes (sean ramas, líneas, partículas) para generar estas formas y patrones?
    • ¿Cómo se percibe la “vida”, la “agencia” o el comportamiento emergente (complejidad no programada explícitamente) en estas obras?
  4. (Opcional) Si viste el video de Blender: ¿Cómo se relaciona el concepto de flow field mostrado en Blender con las ideas de agentes siguiendo reglas en un entorno? ¿Qué posibilidades creativas te sugiere para la animación?

🚀 Tu solución:

1. Reflexión sobre “Arrels” de Anna Carreras

Al observar “Arrels” se percibe una sensibilidad muy orgánica en la formación de estructuras y patrones. Las imágenes y videos de la obra sugieren que, detrás de su estética, existen reglas generativas simples que imitan procesos naturales. Por ejemplo:

  • Crecimiento y ramificación: Las “ramas” o tendrils parecen surgir siguiendo pautas repetitivas de expansión y bifurcación. Esto indica que los agentes (o unidades básicas) podrían estar programados para replicarse a partir de un punto base, con leves variaciones en ángulo y extensión, lo que genera esa sensación de crecimiento continuo.
  • Interacción y solapamiento: Las diferentes ramas se entrelazan y, en algunos casos, parecen competir por el espacio, lo que sugiere reglas de repulsión o limitación espacial para evitar solapamientos excesivos. Esta dinámica aporta la sensación de “vida” y de un sistema que se auto-organiza sin una directriz central.

En conjunto, “Arrels” nos muestra cómo la aplicación de reglas simples —como la repetición, la variación controlada y la respuesta a restricciones ambientales— puede dar lugar a patrones complejos y visualmente evocadores.


2. Reflexión sobre “Encuentros” de Juan Rodríguez García

En “Encuentros” se observa una dinámica distinta pero igualmente fascinante. Los “outputs” finales, entendidos como los caminos o trayectorias que siguen las líneas y entidades, sugieren que los agentes autónomos en esta obra operan mediante reglas que determinan:

  • Trayectorias definidas y reactivas: Los elementos parecen moverse siguiendo vectores de fuerza o campos de atracción/repulsión. Es posible deducir que cada “agente” evalúa su entorno –por ejemplo, la proximidad a otros agentes o a límites definidos— y ajusta su movimiento para evitar colisiones o, por el contrario, orientarse hacia zonas de menor densidad.
  • Interacción entre agentes: Algunos elementos se complementan formando redes o patrones recurrentes, mientras que otros se evitan, lo que nos da la sensación de un comportamiento emergente derivado de múltiples reglas locales. Este tipo de comportamiento sugiere la existencia de un sistema en el que cada unidad actúa siguiendo simples directrices que, al conjugarse, producen un efecto global mucho más complejo de lo que aparenta cada regla individual.

La obra, por tanto, logra transmitir la idea de agencia y de “encuentro” entre entidades que, aunque programadas con reglas sencillas, interactúan de forma imprevista y orgánica.


3. Reflexión sobre la autonomía y el comportamiento emergente

En ambas obras se evidencia el poder de la autonomía en sistemas basados en agentes. Algunos puntos clave son:

  • Reglas simples y locales: Tanto en “Arrels” como en “Encuentros”, los comportamientos complejos surgen de la aplicación de reglas sencillas evaluadas en cada unidad o agente. Por ejemplo, la tendencia a crecer en ciertas direcciones, la repulsión en caso de colisión o la atracción hacia zonas menos pobladas.
  • Emergencia: La “vida” aparente de las obras se debe a que la complejidad no se programa de manera explícita en un algoritmo central, sino que emerge de la interacción de muchos agentes que operan con autonomía. Esto refleja procesos naturales, como el crecimiento de plantas o el comportamiento de enjambres, donde la suma de interacciones locales da lugar a patrones globales inesperados.
  • Percepción de agencia: Aunque los agentes son producto de códigos o algoritmos, el resultado visual les confiere una especie de “voluntad” o “intencionalidad”, haciendo que el espectador perciba una narrativa de evolución y transformación.

Esta reflexión inspira a los creadores a pensar en la programación no solo como una herramienta de precisión, sino como un medio para capturar la impredecible belleza de los sistemas naturales.


4. Conexión con la animación 3D: Flow Fields y agentes autónomos

De manera opcional, el video de Blender titulado “CRAZY 3D Flow Fields in Blender 4.2!” nos muestra un concepto relacionado: los flow fields. Este enfoque consiste en utilizar campos de fuerza generados, por ejemplo, a partir de ruido de Perlin para dirigir el movimiento de partículas.

  • Similitud en la lógica: Al igual que en las obras de Carreras y Rodríguez García, se usan reglas locales: cada partícula evalúa el campo de fuerza y se mueve en consecuencia. La diferencia es que aquí se aplica a una malla o sistema 3D, permitiendo visualizar flujos y patrones en un espacio volumétrico.
  • Posibilidades creativas: Esta técnica abre un abanico de posibilidades en animación 3D, donde se pueden simular comportamientos complejos (como la formación de remolinos, flujos de líquido o patrones naturales) sin tener que animar cada parte de forma manual. Se logra así un resultado orgánico y sorprendente que puede ser empleado para efectos visuales, simulaciones y arte digital interactivamente.

El concepto de flow field refuerza la idea de que, mediante reglas simples y locales, se pueden generar comportamientos que, a nivel global, se perciben como emergentes y llenos de “vida”.

Investigación 🔎

Actividad 02

Analizando los campos de flujo (flow fields)

👣 Pasos:

  1. Ejecuta el ejemplo: ejecuta el código del ejemplo principal de Flow Fields de TNoC en p5.js. Observa el comportamiento de los vehículos/agentes.
  2. Identifica la estructura del campo: en el código (usualmente en una clase FlowField), localiza cómo se almacena el campo de flujo. ¿Qué estructura de datos se usa (ej: un array 2D)? ¿Qué representa cada elemento de esa estructura? ¿Cómo se calcula inicialmente el vector en cada punto?
  3. Analiza el comportamiento del agente: en el código de la clase del vehículo/agente (Vehicle), encuentra la función follow(). Explica con tus palabras:
    • ¿Cómo determina el agente qué vector del campo de flujo debe seguir basándose en su posición actual? (pista: implica mapear la posición a índices de la cuadrícula).
    • Una vez que tiene el vector deseado del campo, ¿cómo lo utiliza para calcular la fuerza de dirección (steering force)? (pista: implica calcular la diferencia con la velocidad actual y limitar la fuerza).
  4. Identifica parámetros clave: Localiza en el código las variables que controlan aspectos importantes como:
    • La resolución del campo de flujo (el tamaño de las celdas de la cuadrícula).
    • La velocidad máxima (maxspeed) y la fuerza máxima (maxforce) de los agentes.
  5. Experimenta con modificaciones: realiza al menos una de las siguientes modificaciones en el código, ejecuta y describe el efecto observado en el comportamiento de los agentes:
    • Cambia significativamente la forma en que se generan los vectores del campo (ej: usa una fórmula matemática diferente en lugar de noise(), o cambia drásticamente los parámetros de noise()).
    • Modifica sustancialmente la resolución del campo de flujo (hazla mucho más fina o mucho más gruesa).
    • Altera considerablemente maxspeed o maxforce de los agentes.

📝 Actividad pendiente por iniciar

El archivo student.md está vacío

Actividad 03

Analizando el comportamiento de enjambre (Flocking)

👣 Pasos:

  1. Ejecuta el ejemplo: ejecuta el código del ejemplo principal de Flocking de TNoC en p5.js. Observa el movimiento colectivo de los “boids” (agentes).
  2. Identifica las tres reglas: en el código de la clase del agente (ej: Boid), localiza las funciones que implementan las tres reglas fundamentales del Flocking:
    • Separación (Separation): evitar el hacinamiento con vecinos cercanos.
    • Alineación (Alignment): dirigirse en la misma dirección promedio que los vecinos cercanos.
    • Cohesión (Cohesion): moverse hacia la posición promedio de los vecinos cercanos.
  3. Explica las Reglas: para cada una de las tres reglas, explica con tus propias palabras:
    • ¿Cuál es el objetivo de la regla?
    • ¿Cómo calcula el agente la fuerza de dirección correspondiente? (describe la lógica general, ej: “Calcula un vector apuntando lejos de los vecinos demasiado cercanos”).
  4. Identifica parámetros clave: localiza en el código las variables que controlan:
    • El radio (o distancia) de percepción (perceptionRadius o similar) que define quiénes son los “vecinos”. A veces también hay un ángulo de percepción.
    • Los pesos o multiplicadores que determinan la influencia relativa de cada una de las tres reglas al combinarlas.
    • La velocidad máxima (maxspeed) y la fuerza máxima (maxforce) de los agentes (similar a Flow Fields).
  5. Experimenta con modificaciones: realiza al menos una de las siguientes modificaciones en el código, ejecuta y describe el efecto observado en el comportamiento colectivo del enjambre:
    • Cambia drásticamente el peso de una de las reglas (ej: pon la cohesión a cero, o la separación muy alta).
    • Modifica significativamente el radio de percepción (hazlo muy pequeño o muy grande).
    • Introduce un objetivo (target) que todos los boids intenten seguir (usando una fuerza de seek) además de las reglas de flocking, y ajusta su influencia.

📝 Actividad pendiente por iniciar

El archivo student.md está vacío

Aplicación 🛠

Actividad 04

Aplicación creativa e inesperada de agentes autónomos

👣 Pasos:

  1. Elige un algoritmo: decide si trabajarás con Flow Fields o Flocking.
  2. Conceptualiza la aplicación inesperada: brainstorming: ¿Cómo puedes usar la lógica de ese algoritmo para representar algo diferente? ¿Qué fenómeno visual, natural o abstracto podrías simular de forma no convencional? Define tu concepto.
  3. Diseña la implementación:
    • ¿Cómo adaptarás el algoritmo base a tu nuevo concepto? ¿Qué representarán los “agentes”? ¿Qué significará el “campo” o las “reglas de enjambre” en tu contexto?
    • ¿Qué aspecto visual tendrán tus agentes o el resultado del proceso?
    • ¿Qué tipo de interacción incluirás? (ej: el mouse influye en el flow field, un clic añade/quita agentes, teclas cambian parámetros, micrófono, etc).
  4. Implementa tu sketch: escribe el código en p5.js. Empieza adaptando el código base del algoritmo elegido e introduce gradualmente los cambios para tu concepto, los nuevos visuales y la interacción.
  5. Prueba y refina: ejecuta, prueba la interacción y refina los parámetros y el aspecto visual hasta que logres una pieza coherente con tu concepto inesperado.

📝 Actividad pendiente por iniciar

El archivo student.md está vacío

Consolidación y metacognición 🤔

Actividad 05

Comparando algoritmos y consolidando conceptos

👣 Pasos:

Reflexiona sobre los dos algoritmos y tu experiencia:

  1. Diferencias fundamentales: ¿Cuál dirías que es la diferencia principal en cómo Flow Fields y Flocking logran el movimiento coordinado o dirigido de los agentes? (piensa en dónde reside la “inteligencia” o las reglas: ¿En el entorno o en las interacciones entre agentes?).
  2. Tipos de comportamiento emergente: basado en tu análisis y aplicación, ¿Qué tipo de comportamiento colectivo o patrón visual crees que es más fácil o natural lograr con Flow Fields? ¿Y con Flocking? Da ejemplos.
  3. Ventajas y desventajas: en tu opinión, ¿Cuáles podrían ser las ventajas o desventajas de usar uno u otro algoritmo para ciertos tipos de efectos visuales o simulaciones?
  4. El agente autónomo: ¿Cómo te ayudaron estos dos ejemplos (Flow Fields y Flocking) a entender mejor el concepto de “agente autónomo”? ¿Qué características definen a un agente en estos sistemas?
  5. Emergencia: ¿En qué momento observaste “comportamiento emergente” (complejidad o patrones no programados explícitamente) al trabajar con estos algoritmos?

📝 Actividad pendiente por iniciar

El archivo student.md está vacío

Actividad 06

Autoevaluación del aprendizaje

👣 Pasos:

Considera tu experiencia personal en esta unidad y responde con honestidad:

  1. Comprensión conceptual: ¿Qué tan claros te resultaron los conceptos de agente autónomo, emergencia, flow fields y flocking? ¿Qué fue lo más fácil y lo más difícil de entender?
  2. Análisis de algoritmos: ¿Te resultó útil analizar los ejemplos de TNoC y experimentar con modificaciones para entender cómo funcionaban los algoritmos? ¿Qué dificultades encontraste en esta fase?
  3. Aplicación creativa: ¿Qué tan "exitoso" te sientes al aplicar uno de los algoritmos a un contexto inesperado? ¿Lograste plasmar tu idea? ¿Qué fue lo más desafiante de esta actividad?
  4. Conexión con TNoC: ¿Cómo se conectan los conceptos de esta unidad (agentes, sistemas, fuerzas) con lo que has aprendido en unidades anteriores?
  5. Exploración futura: ¿Hay algún aspecto de los agentes autónomos, flow fields, flocking u otros comportamientos de sistemas que te gustaría explorar más a fondo después de esta unidad?

📝 Actividad pendiente por iniciar

El archivo student.md está vacío

Actividad 07

Retroalimentación para mejorar la unidad

👣 Pasos:

Reflexiona sobre cómo fue tu experiencia personal al cursar esta unidad específica y responde:

  1. Claridad y enfoque: ¿Te pareció claro el objetivo de la unidad y la conexión entre las actividades (inspiración, análisis, aplicación)?
  2. Actividades de introducción e investigación: ¿Fueron útiles los referentes artísticos (SET) para introducir el tema? ¿Fueron efectivas las actividades de análisis de algoritmos para tu comprensión? ¿Sugerirías algún cambio?
  3. Actividad de aplicación: ¿Te gustó el desafío de la aplicación inesperada? ¿Fue demasiado difícil, demasiado fácil o adecuado? ¿Necesitabas más orientación o ejemplos para esta parte?
  4. Recursos: ¿Fueron suficientes los enlaces a TNoC y los ejemplos? ¿Necesitaste buscar muchos recursos adicionales por tu cuenta?
  5. Ritmo y carga de trabajo: ¿Cómo sentiste el ritmo y la carga de trabajo de esta unidad en comparación con las anteriores?
  6. Sugerencia principal: Si pudieras hacer una sugerencia principal para mejorar la experiencia de aprendizaje en esta unidad sobre agentes autónomos, ¿Cuál sería?

📝 Actividad pendiente por iniciar

El archivo student.md está vacío