Pulsa un punto o una fila de la tabla para seguirlo. Espacio pausa y reanuda. En pausa, “Avanzar una fase” recorre el triángulo vértice a vértice.
Qué hace el motor
Cada punto es un agente que solo ve lo que tiene cerca. Con esa información incompleta aplica su propia regla: no chocar con los vecinos, ir en su misma dirección y no alejarse de ellos. Ninguno sabe dónde está el grupo ni qué forma tiene.
La cohesión junta lo que hacen todos, y de ahí sale un resultado: la cruz amarilla R, que dice dónde está el conjunto, cuánto se dispersa y si va en una misma dirección. Nadie lo decide; aparece solo. Los puntos que van a contracorriente o se alejan demasiado contradicen la trama y se vuelven rojos.
Ese resultado vuelve a cada punto y le reescribe la regla, a cada uno a su manera: el que se aleja tira más hacia el grupo, el que va apretado busca aire, el que gira mucho se calma. Es el contrarresto. Y vuelta a empezar. Lo interesante es mirar qué hace el conjunto con el tiempo: si se congela, si se desboca o si encuentra el borde, donde cambia sin deshacerse.
La receta completa
El ciclo
Regla local → cohesión → resultado R → retroalimentación, y vuelta a empezar. En pausa, “Avanzar una fase” ejecuta cada paso por separado.
La fuerza sobre cada punto
α, σ y λ son los deslizadores de atracción, separación y alineación, iguales para todos. mAi y mSi son los pesos propios de cada punto, los que reescribe la retroalimentación y aparecen en la tabla. C es la cohesión, S la separación, A la alineación y N la corrección por no contradicción. Los vecinos de un punto son los que están a menos del radio local r.
La cohesión, según la operación
- Bandada
- Ci = 0,003 · (centro de los vecinos − pi)Ai = 0,05 · (velocidad media de los vecinos − vi)
- Probabilística
- Las mismas fórmulas que la bandada, pero cada vecino cuenta solo con cierta probabilidad: 0,9 si comparte el valor V/F del punto y 0,3 si no. El giro al azar se multiplica por 1,6.
- Suma
- Ci = 0,0004 · (centro de R − pi)Ai = 0,04 · (velocidad media de R − vi)Aquí cada punto conoce el centro de todos, tomado del resultado del ciclo anterior.
- Gravedad
- Ci = G · Σj≠i (pj − pi) / (dij2 + 400)3/2 con G = 540 / nAi = 0,015 · (velocidad media de los vecinos − vi)Todos atraen a todos. El 400 evita que la fuerza se dispare cuando dos puntos casi se tocan, y dividir entre n hace que no crezca al añadir puntos.
La separación
Igual en todas las operaciones. Solo actúa de cerca, y cuanto más cerca está el vecino, más fuerte empuja.
V o F
Un punto está en V si cumple las dos cosas a la vez:
Es decir, va en la misma dirección general que el conjunto y no se ha alejado más de 2,2 veces la dispersión D. Si falla alguna, está en F. Cuando el orden baja de 0,15 no hay dirección común, y solo se mira la distancia. Con “No contradicción” activado, a los puntos en F se les suma:
El movimiento
La velocidad nueva es la vieja más Fi, girada un ángulo al azar proporcional a “Giro al azar” y al peso propio mGi, con un límite de 3,5 unidades por ciclo. A menos de 60 unidades de los bordes, una fuerza suave empuja hacia dentro. El plano mide 1000 × 700.
El contrarresto
Tras cada resultado, con k = 0,04 · retroalimentación:
Después, cada peso vuelve un 0,5 % hacia 1 y se mantiene entre 0,2 y 3.
La lectura del resultado
Dispersión D: distancia típica de los puntos al centro, calculada como la raíz de la media de las distancias al cuadrado. Orden: longitud de la suma de las direcciones de todos los puntos, dividida entre n; vale 1 si todos van hacia el mismo lado y 0 si cada uno va a lo suyo. Coherencia: proporción de puntos en V.
Si la media de ΔR en los últimos 120 ciclos es menor que 0,0015, la lectura es punto fijo. Si el orden baja de 0,25 y la coherencia del 60 %, es caos. Si no, borde.
Los números concretos (0,003, 0,05, 2,2, 400…) no salen de la teoría. Son constantes de ajuste elegidas para que la animación se vea bien. La estructura del ciclo sí responde al motor triangular; los coeficientes son arbitrarios, y cambiarlos cambia el comportamiento.