Laboratorio de BandadasBeta
Mira cómo surgen bandadas y bancos de peces con solo tres reglas
Esta herramienta es una versión beta que aún se está estabilizando. Avísanos si un resultado no parece correcto.
Cada boid solo ve a los vecinos dentro de su radio y su campo de visión (si reduces el ángulo, deja de ver a los que tiene detrás) y sigue tres reglas: se aparta si están más cerca que el radio de separación (separación), vuela en la misma dirección que ellos (alineación) y se acerca a su centro (cohesión). Nadie dirige y aun así surge una bandada. Pulsa o arrastra sobre el lienzo para ser comida o depredador. El orden vale 1 cuando todos van en la misma dirección y casi 0 cuando se dispersan.
Procesando…
0.0
No se ha bloqueado: el resultado aparecerá cuando termine el cálculo.
Acerca de Laboratorio de Bandadas
Cada punto de la pantalla es un «boid», el modelo que Craig Reynolds presentó en SIGGRAPH en 1987. Cada boid solo ve a los vecinos dentro de su radio de visión (50 píxeles por defecto) y hace tres cosas: se aleja de los que están demasiado cerca (separación), orienta su rumbo hacia la media de sus vecinos (alineación) y se acerca a su posición media (cohesión). En ningún lugar del código se describe la forma de la bandada ni hay un líder.
El indicador «Orden» suma los vectores unitarios de dirección de todos los boids y divide la longitud de esa suma por el número de boids. Si todos van hacia el mismo lado marca 1; si los rumbos son aleatorios, se acerca a 0. Así, «se ha formado una bandada» pasa a ser un número que puedes seguir.
Cómo se calculan las tres reglas
Cada regla da una dirección deseada. La alineación usa la velocidad media de los vecinos; la cohesión, el desplazamiento medio hacia ellos; la separación apunta en sentido contrario a los vecinos que están dentro del radio de separación (20 píxeles por defecto), con un peso inversamente proporcional al cuadrado de la distancia. Para cada dirección el motor calcula el cambio de velocidad necesario para ir por ahí a velocidad máxima, lo limita a la fuerza de giro máxima (un treintavo de la velocidad máxima), lo multiplica por el peso del control deslizante y lo suma. La separación recibe además un factor interno de 1,5.
La velocidad se mantiene entre el máximo y un tercio de él: con el valor por defecto de 180, entre 60 y 180 píxeles por segundo, así que un boid nunca puede quedarse quieto. La búsqueda de vecinos divide el lienzo en celdas del tamaño del radio de visión y solo mira las nueve de alrededor; por eso incluso 5.000 boids corren en tiempo real.
Experimento 1: alineación a cero
Parte de la bandada por defecto, espera a que el Orden supere 0,9 y baja la alineación a 0. Los boids siguen agrupados, pero dentro de cada grupo los rumbos se dispersan y el Orden cae en picado. Con 1.500 boids en direcciones realmente aleatorias cabe esperar alrededor de 1/√1500 ≈ 0,03.
Prueba lo contrario: cohesión y separación a 0 y solo alineación. Los boids no se juntan, pero sus rumbos se van igualando poco a poco. Se parece al modelo de partículas autopropulsadas que propusieron Vicsek y colaboradores en 1995, en el que copiar la dirección de los vecinos más un poco de ruido basta para pasar del desorden al movimiento colectivo.
Experimento 2: el radio de visión decide el tamaño de la bandada
Con un radio de 10 casi ningún boid tiene vecinos. Se forman grupitos que derivan en direcciones distintas y el Orden global sigue bajo aunque cada grupo vaya alineado por dentro. Con 150, en pocos segundos todo se funde en una única bandada.
El número esperado de vecinos lo explica. En un lienzo de 900×560 píxeles, 1.500 boids repartidos dan una densidad de 1.500 ÷ 504.000 ≈ 0,003 boids por píxel cuadrado. Un radio de 50 abarca unos 7.854 píxeles cuadrados, es decir, unos 23 vecinos; uno de 10 abarca 314, menos de uno. Sin vecinos, ninguna de las tres reglas genera fuerza.
Experimento 3: un depredador y las paredes
Pon el puntero en «Depredador» y mantenlo pulsado en medio de la bandada. Los boids a menos de 160 píxeles huyen y la bandada se parte en dos; al soltar, la cohesión los vuelve a unir. Recuerda a los estorninos esquivando a un halcón, pero lo único que ocurre es que se suma una dirección de «alejarse de aquí» al giro de cada boid.
Cambia los bordes a paredes y aparece un empuje hacia dentro en los 50 píxeles junto al borde. Las bandadas resbalan por las paredes y giran a menudo, así que el Orden oscila mucho más que con bordes unidos.
Lo que esta simulación deja fuera
- El campo de visión es por defecto un círculo completo de 360°. Los boids originales de Reynolds no veían justo detrás; baja el control de campo de visión para lograr lo mismo. A 270°, por ejemplo, se ignoran los vecinos que quedan en la cuña de 90° de detrás.
- Las tres fuerzas se suman con pesos. El artículo de 1987 describía un arbitraje por prioridades, en el que lo urgente, como evitar un choque, se atiende primero.
- Es 2D, sin evitar obstáculos, sin energía ni mecánica de vuelo. El límite de giro y la velocidad mínima están elegidos por estética, no medidos en animales.
Ejemplos
Orden con rumbos aleatorios
- Entrada
1.500 boids, alineación 0, cohesión 0- Resultado
Alrededor de 0,03
La suma de N vectores unitarios aleatorios mide del orden de √N, así que √1500 ÷ 1500 ≈ 0,026.
Vecinos esperados según el radio
- Entrada
Lienzo de 900×560, 1.500 boids- Resultado
Radio 50 → unos 23; radio 10 → unos 0,9
Densidad 0,00298 × π × 50² ≈ 23; × π × 10² ≈ 0,9.
Rango de velocidades
- Entrada
Velocidad máxima 180- Resultado
60–180 px/s, límite de giro 6
La velocidad mínima es un tercio de la máxima; el límite de giro, un treintavo.
Cómo se usa
- Elige un tipo de grupo (bandada, banco, enjambre, caos) como punto de partida.
- Mueve separación, alineación, cohesión, radio de visión, radio de separación y campo de visión de uno en uno y observa el Orden.
- Pulsa o arrastra sobre el lienzo para hacer de comida o de depredador.
Preguntas frecuentes
¿Qué significa «boid»?
Es la abreviatura que Reynolds hizo de «bird-oid», algo parecido a un pájaro. El modelo apareció en su artículo de SIGGRAPH de 1987 «Flocks, Herds, and Schools: A Distributed Behavioral Model».
¿Los pájaros reales siguen estas tres reglas?
El modelo no copia el cerebro de un ave; es un conjunto mínimo de reglas que reproduce el movimiento de una bandada. La idea clave, que grupos enormes y coordinados surgen de que cada animal reaccione solo a los que tiene cerca, sí es central en el estudio real del comportamiento colectivo.
Sin líder, ¿por qué acaban yendo todos hacia el mismo lado?
La alineación hace que los rumbos de vecinos se parezcan un poco más, y ese parecido se propaga a través de los vecinos de los vecinos. Con bordes unidos nada lo interrumpe y suele imponerse una sola dirección.
¿Se usan en cine y videojuegos?
La animación por ordenador era el propósito del artículo: en lugar de dibujar la ruta de cada pájaro, dar reglas a cada uno y simular la bandada. Ese enfoque se volvió habitual en efectos visuales y juegos.
Guías relacionadas
Fuentes
- C. W. Reynolds, Flocks, herds and schools: A distributed behavioral model, SIGGRAPH '87, Computer Graphics 21(4), 25–34 (1987)
- T. Vicsek et al., Novel type of phase transition in a system of self-driven particles, Phys. Rev. Lett. 75, 1226 (1995)
Revisado el: