Boids Masivo

Comportamiento colectivo emergente de reglas individuales simples

Un estornino no sabe cómo forman murmuración las miles de aves que lo rodean. Solo conoce tres reglas locales: no chocarse, igualar la dirección de los vecinos y acercarse al grupo. El algoritmo Boids de Craig Reynolds (1987) demuestra que esas tres reglas son suficientes para reproducir bandadas, cardúmenes y rebaños con fidelidad sorprendente. Esta simulación WASM corre miles de agentes en tiempo real con spatial hashing.

Las Tres Reglas de Reynolds

F = w_s · S + w_a · A + w_c · C
Fuerza total = peso_separación × Separación + peso_alineación × Alineación + peso_cohesión × Cohesión
Separación
Evita colisiones con vecinos demasiado cercanos. La repulsión es inversamente proporcional al cuadrado de la distancia: los muy cercanos alejan con mucha fuerza.
S = Σ (p_i − p_j) / d²
Alineación
Iguala la velocidad con el promedio de los vecinos visibles. Sincroniza dirección y rapidez con el entorno local. Es la regla responsable de la coherencia de dirección.
A = (Σ v_j) / N
Cohesión
Dirige al agente hacia el centro de masa de sus vecinos. Mantiene el grupo unido. Sin cohesión, la separación dispersa la bandada irreversiblemente.
C = centroide − p_i

Emergencia y Complejidad

La clave del algoritmo es que la bandada no está programada como entidad: solo existen los agentes individuales. La estructura global — la forma de la murmuración, sus ondulaciones, sus divisiones y reunificaciones — emerge de las interacciones locales sin ningún director central.

Radio de percepción

Cada boid solo ve sus vecinos dentro de un radio r. Fuera de ese radio, los demás agentes no existen. La bandada global emerge de esta percepción local sin ninguna visión de conjunto.

Ángulo de visión

Los boids solo perciben lo que está frente a ellos (tipicamente 270°). Los agentes directamente detrás son invisibles. Reproduce el campo visual real de aves y peces.

Spatial hashing

Con N agentes, buscar los vecinos de cada uno costaría O(N²) operaciones por frame. El spatial hashing divide el espacio en celdas: solo se comparan agentes en la misma celda o adyacentes. Costo: O(N).

Fases del sistema

Según los pesos w_s, w_a, w_c, el sistema exhibe distintas "fases": gas (caos, baja cohesión), líquido (grupos fluidos) y sólido (bloque rígido). Ajustar pesos cambia la fase.

La murmuración de estorninos no tiene líder. Estudios con cámaras de alta velocidad (Cavagna et al. 2010) muestran que los cambios de dirección se propagan desde cualquier punto de la bandada, no desde el frente ni desde individuos dominantes. La información se transmite a velocidad constante, independiente del tamaño de la bandada. Cada pájaro responde a los 6–7 vecinos más cercanos, no a todos.

Controles y Parámetros

Experimentos Guiados

Experimento 1 — Aislar cada regla

  1. Baja alineación y cohesión a 0. Solo separación activa: los agentes se repelen mutuamente sin formar grupos. Gas browniano.
  2. Añade solo cohesión (sin alineación ni separación): los agentes colapsan en un punto. No hay bandada, solo un bloque.
  3. Activa solo alineación: los agentes sincronizan dirección pero se dispersan. Fluyen en paralelo como partículas en un campo uniforme.
  4. Las tres juntas en balance: emerge la bandada. El balance es crítico.

Experimento 2 — Transición de fase

  1. Empieza con alineación = 0. Los agentes se mueven en direcciones aleatorias: fase gaseosa.
  2. Aumenta alineación lentamente. En algún punto habrá una transición abrupta: de repente todos los agentes se alinean y la bandada fluye como un líquido.
  3. Esta transición de "desordenado → ordenado" al aumentar el acoplamiento es análoga a una transición de fase magnética (modelo de Ising) o a la sincronización en osciladores acoplados.

Experimento 3 — Depredador y evasión

  1. Añade un depredador (si está disponible) o haz clic en el centro de la bandada.
  2. La bandada se parte y rodea el obstáculo: el comportamiento de evasión emerge de la separación aumentada cerca del depredador.
  3. La "expansión" de la bandada antes de rodear al depredador es real: las aves amplían su separación individual al sentirse amenazadas, haciendo más difícil que el depredador atrape una presa específica.

Conexiones

🌿
Ecosistema
Lotka-Volterra: depredador y presa
🦠
Epidemiología SIR
Propagación en grupos: contagio social
🧬
Evolución
Comportamiento de grupo como adaptación
🧠
Red Neuronal HH
Emergencia colectiva en redes