Unidad 6
Introducción 📜
¿Qué aprenderás en esta unidad? 💡
Actividad 01
Inspiración en agentes y comportamiento emergente
👣 Pasos:
- 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?
- 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? - 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?
- (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?
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Investigación 🔎
Actividad 02
Analizando los campos de flujo (flow fields)
👣 Pasos:
- 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.
- 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? - Analiza el comportamiento del agente: en el código de la clase del vehículo/agente (
Vehicle
), encuentra la funciónfollow()
. 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).
- 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.
- 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 denoise()
). - Modifica sustancialmente la resolución del campo de flujo (hazla mucho más fina o mucho más gruesa).
- Altera considerablemente
maxspeed
omaxforce
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
📝 Actividad pendiente por iniciar
El archivo student.md está vacío
Actividad 03
Analizando el comportamiento de enjambre (Flocking)
👣 Pasos:
- 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).
- 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.
- 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”).
- 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).
- El radio (o distancia) de percepción (
- 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 deseek
) 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:
- Elige un algoritmo: decide si trabajarás con Flow Fields o Flocking.
- 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.
- 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).
- 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.
- 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:
- 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?).
- 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.
- 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?
- 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?
- 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:
- 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?
- 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?
- 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? - Conexión con TNoC: ¿Cómo se conectan los conceptos de esta unidad (agentes, sistemas, fuerzas) con lo que has aprendido en unidades anteriores?
- 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:
- Claridad y enfoque: ¿Te pareció claro el objetivo de la unidad y la conexión entre las actividades (inspiración, análisis, aplicación)?
- 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?
- 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?
- Recursos: ¿Fueron suficientes los enlaces a TNoC y los ejemplos? ¿Necesitaste buscar muchos recursos adicionales por tu cuenta?
- Ritmo y carga de trabajo: ¿Cómo sentiste el ritmo y la carga de trabajo de esta unidad en comparación con las anteriores?
- 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