Una galaxia espiral es el resultado de 10,000 millones de años de colapso gravitacional:
una nube primordial de gas y materia oscura que se contrae, se aplana por conservación
de momento angular y forma un disco de rotación. Esta simulación resuelve el problema
gravitacional de N cuerpos para miles de estrellas usando el algoritmo Barnes-Hut,
que hace tratable computacionalmente lo que de otro modo requeriría millones de operaciones por frame.
El Problema de N Cuerpos Gravitacional
La fuerza gravitacional sobre cada estrella i es la suma vectorial de las contribuciones de todas las demás. La implementación directa (fuerza bruta) tiene costo O(N²):
F_i = G·m_i · Σ_{j≠i} m_j·(r_j − r_i) / |r_j − r_i|³
N = 10,000 estrellas → 10⁸ evaluaciones por paso. A 60 fps: 6×10⁹ operaciones/segundo. Imposible en JavaScript; difícil incluso en C++.
El suavizado (softening) es imprescindible: sin él, dos estrellas que se acercan producirían fuerzas divergentes. Se reemplaza r por √(r² + ε²), donde ε es la longitud de suavizado:
F = G·m₁·m₂ / (r² + ε²) ε ≈ 1–5% del radio galáctico
ε representa el tamaño finito efectivo de cada partícula. Sin él, encuentros cercanos generarían velocidades no físicas y estrellas eyectadas del sistema.
El Algoritmo Barnes-Hut y el Quadtree
La idea central: las estrellas suficientemente lejanas pueden aproximarse como un único cuerpo con masa total concentrada en su centro de masa. Para formalizar «suficientemente lejano», el espacio se divide recursivamente en un quadtree:
Construcción del quadtree
El espacio se divide en cuatro cuadrantes. Cada cuadrante con más de una estrella se subdivide recursivamente. El árbol se reconstruye en cada paso de tiempo. Costo de construcción: O(N log N).
Centro de masa por nodo
Cada nodo del árbol almacena la masa total y el centro de masa de todas las estrellas contenidas. Esta información se calcula en una pasada ascendente del árbol (bottom-up pass) después de la inserción.
Criterio de apertura θ
Para cada estrella, al descender el árbol se evalúa: si tamaño_nodo/distancia < θ → usar el nodo como masa puntual. Si no → descender a los hijos. θ controla el equilibrio precisión/velocidad.
Complejidad resultante
Con θ adecuado, cada estrella interactúa con O(log N) nodos del árbol. Costo total: O(N log N) por paso. Para N = 10,000: ~130,000 operaciones en lugar de 100,000,000. Factor 770× más rápido.
θ = tamaño_celda / distancia si θ < θ_umbral → aproximar como masa puntual
El parámetro θ (theta de Barnes-Hut) controla la precisión. θ = 0 → fuerza bruta exacta. θ = 1 → máxima aproximación. θ = 0.5 es el equilibrio estándar.
| θ | Precisión | Velocidad relativa | Uso recomendado |
| 0.3 | Muy alta (cuasi exacta) | 1× | Validación científica |
| 0.5 | Alta | 2–3× | Simulación estándar |
| 0.7 | Media | 4–5× | Muchas partículas en tiempo real |
| 1.0 | Aproximada | 8–10× | Preview rápido o dispositivos lentos |
Integración Temporal: Leapfrog
El integrador leapfrog (también llamado Störmer-Verlet) es el estándar en simulaciones gravitacionales porque es simpléctico: conserva el volumen del espacio de fase y, por tanto, mantiene acotado el error de energía a largo plazo. Euler diverge; leapfrog oscila pero no crece:
v(t+dt/2) = v(t) + a(t)·dt/2 x(t+dt) = x(t) + v(t+dt/2)·dt v(t+dt) = v(t+dt/2) + a(t+dt)·dt/2
Las posiciones y velocidades están «desfasadas» en dt/2 — de ahí el nombre leapfrog (rana saltando). Reversible en el tiempo, orden 2, error de energía acotado para siempre.
Tipos de Galaxias y Estructuras
La forma final de una galaxia depende de las condiciones iniciales y de su historia de fusiones:
- Galaxia espiral (disco) — Distribución inicial con momento angular neto. Las estrellas colapsan preferentemente en el plano perpendicular al vector de momento angular, formando un disco con densidad exponencial ρ(r) = ρ₀·e^(−r/h). Los brazos espirales son ondas de densidad, no estructuras rígidas: las estrellas entran y salen de los brazos.
- Galaxia elíptica — Distribución inicial esferoidal sin rotación neta (modelo de Plummer). Las estrellas siguen órbitas con dispersión de velocidades isótropa en las tres dimensiones. Resultado típico de fusiones de espirales.
- Cúmulo estelar — Sistema menos masivo. La «relajación dinámica» (colisiones elásticas efectivas por encuentros cercanos) tiende a equipartir la energía entre estrellas de distintas masas.
Los brazos espirales no son estructuras de estrellas: son ondas de densidad. Si fueran estructuras rígidas, se enrollarían y desaparecerían en unas pocas órbitas galácticas (el «problema del enrollamiento», dilema de winding). La teoría de ondas de densidad de Lin & Shu (1964) explica que los brazos son regiones de mayor densidad que se propagan a través del disco como ondas, a velocidad distinta de las estrellas individuales — igual que una ola en el mar no arrastra el agua, sino que es la ola la que viaja.
Métricas de Conservación
Dos cantidades deben conservarse en una simulación gravitacional correcta:
E_total = ½·Σm_i·v_i² − G·Σ_{i<j} m_i·m_j/r_ij L = Σ m_i·(r_i × v_i)
Energía total (cinética + potencial) y momento angular. En equilibrio: E_pot = −2·E_cin (Teorema del Virial). La desviación de estas cantidades mide la calidad del integrador.
Experimentos Guiados
Experimento 1 — Galaxia espiral vs elíptica
- Selecciona el preset «Galaxia Espiral». Observa el colapso inicial: la nube esferoidal se aplana en un disco en pocas órbitas. El momento angular inicial determina el plano del disco.
- Resetea y selecciona «Galaxia Elíptica». La distribución inicial ya es esferoidal con velocidades isótropas: el sistema colapsa pero no forma disco. Cada estrella sigue una órbita elongada con orientación diferente.
- Compara la curva de rotación: en la espiral, las velocidades orbitales son aproximadamente planas (velocidad casi constante con r); en la elíptica, hay dispersión de velocidades en todas las direcciones.
Experimento 2 — Efecto del parámetro θ en precisión
- Congela la simulación en la fase de colapso inicial (máxima actividad gravitacional). Anota la distribución de estrellas.
- Baja θ a 0.3: la simulación se ralentiza pero las fuerzas son más precisas. Las estructuras son ligeramente más detalladas en el núcleo.
- Sube θ a 0.8 o 1.0 y observa la diferencia de FPS. El comportamiento global (colapso, formación de disco) es cualitativamente el mismo — el teorema central de Barnes-Hut dice que las grandes estructuras no dependen de la precisión local.
Experimento 3 — Agujero negro central y velocidad de rotación
- Inicia la galaxia espiral sin agujero negro (masa central = 0). Observa la curva de rotación: sin concentración central, las velocidades internas son bajas y crecen con r (como un sólido rígido).
- Añade un agujero negro supermasivo con masa 1000–2000 M_estrella. El núcleo se vuelve mucho más activo; las estrellas internas adquieren velocidades orbitales muy altas.
- Una galaxia real (Vía Láctea) tiene una masa total de materia oscura ~10¹² M_☉, mucho mayor que la masa estelar visible. La materia oscura es la razón por la que las curvas de rotación galácticas son planas — y por eso las galaxias no son tan diferentes de lo que muestra la simulación.
Conexiones