DEV Community

Cover image for Me hablaron de U-shapes y yo te respondo con espirales hexagonales😵‍💫️
Ignicion
Ignicion

Posted on

Me hablaron de U-shapes y yo te respondo con espirales hexagonales😵‍💫️

Cuando un comentario enigmático en dev.to te manda por un agujero de conejo geométrico y acabas persiguiendo el número áureo dentro de un hexágono.

Ayer me llegó un comentario aqui.
Todavía no sé exactamente de qué me hablaba.

Era uno de esos mensajes que parecen escritos en un idioma que entiendes pero no comprendes — como cuando escuchas una canción en portugués y captas palabras sueltas pero la historia se te escapa. La persona mencionaba un tal Maxime, hablaba de PR comments visibles públicamente, de Lupe Fiasco, y soltaba una frase que se me quedó clavada:

"Computer Science's primary goal — despite what Bezos or academia says — is to have fun."

Y luego, como quien no quiere la cosa, dejaba caer un problema de algoritmos: implementar un sistema de U-shapes — piezas en forma de U que se mueven por una cuadrícula, con reglas de colisión, y un algoritmo que determine si un movimiento es legal.

No lo implementé.

Pero me quedé pensando.


De la U a la espiral

Hay algo incómodo en las U-shapes. Una U es una forma que te obliga a rodearte. Es una herradura, un abrazo incompleto, un camino que avanza para volver. Es lo opuesto a una espiral.

Una espiral no vuelve al mismo sitio. Gira, sí, pero cada vuelta es más grande — o más pequeña, si vas hacia dentro. La espiral es expansión o introspección. La U es contención. La U encierra; la espiral despliega.

Y luego está el hexágono.

El hexágono es la forma que la naturaleza eligió cuando quiso optimizar. Las abejas no hacen panales cuadrados — sería un desperdicio de cera. Tampoco triángulos. El hexágono tesela el plano con la máxima área para el mínimo perímetro. Es la geometría de la eficiencia. Pregúntale a cualquier ingeniero de baldosas o a un game developer que programa pathfinding en grillas hexagonales. Las coordenadas cúbicas son más elegantes que las cartesianas, pero te rompen la cabeza la primera vez que las ves.


Espirales dentro de hexágonos

Aquí es donde la cosa se pone interesante. ¿Se puede trazar una espiral que recorra ordenadamente todas las celdas de una grilla hexagonal?

Se puede. Y es bellísimo.

Una espiral hexagonal crece en anillos concéntricos de 6 lados. El centro es un hexágono solitario. El primer anillo suma 6 celdas. El segundo, 12. El tercero, 18. Cada anillo n contiene 6n hexágonos — excepto el centro, que es n=0.

Si te fijas bien, esto tiene ecos de Fibonacci. No es la secuencia exacta (1, 1, 2, 3, 5, 8, 13…), pero la sensación de crecimiento orgánico por capas es la misma. La naturaleza construye así: capa sobre capa, anillo sobre anillo, cada nivel conteniendo al anterior y expandiéndose en proporción.

Y luego está el número áureo: φ = 1.618033…

La espiral áurea — la de Durero, la de Fibonacci, la de las caracolas y los huracanes y las galaxias — se basa en rectángulos áureos encadenados. Pero, ¿y si la dibujas dentro de un hexágono regular?

Resulta que los triángulos áureos (isósceles con ángulos 36°-72°-72°) encajan de forma natural en un decágono... pero los hexágonos regulares tienen ángulos internos de 120°. No es una conexión trivial. Y sin embargo, si trazas las diagonales de un hexágono, aparecen triángulos equiláteros. Y dentro de esos triángulos, puedes inscribir espirales logarítmicas que se aproximan a φ.

No es una coincidencia perfecta. Es una consonancia. Como dos notas que no forman el mismo acorde pero suenan bien juntas.


El algoritmo detrás del asombro

Todo esto que estoy describiendo — la espiral hexagonal, el pathfinding en grillas, las coordenadas cúbicas — tiene aplicaciones reales. No es solo geometría recreativa:

  • Juegos de estrategia: Civilización, juegos de guerra, cualquier cosa con un mapa hexagonal usa estas matemáticas. Amit Patel escribió la guía definitiva sobre hexagonal grids y es una joya.
  • Pathfinding: A* sobre grillas hexagonales es más natural que sobre cuadrículas — el movimiento diagonal no tiene penalización arbitraria.
  • Spiral traversal: Útil para buscar en un espacio 2D desde un punto central hacia afuera, como cuando escaneas frecuencias de radio o buscas la celda más cercana que cumpla una condición.

El algoritmo de espiral hexagonal más sencillo funciona con coordenadas axiales (q, r). Desde el centro (0, 0), recorres anillos concéntricos. Cada anillo empieza en (n, 0) y avanza en las 6 direcciones del hexágono. Suena simple, pero implementarlo sin errores off-by-one es un rito de iniciación.


Homo Ludens

Vuelvo a la frase del comentario:

"Computer Science's primary goal is to have fun."

Homo Ludens es el concepto de Johan Huizinga: el ser humano no es solo sapiens (el que sabe) ni faber (el que fabrica), sino ludensel que juega. El juego no es una actividad secundaria; es anterior a la cultura. Jugamos antes de ser conscientes de que estamos jugando.

Programar una espiral hexagonal sin que nadie te lo pida, sin un deadline, sin un cliente, sin un product manager diciéndote "esto no escala" — es jugar. Es puro Homo Ludens.

Y creo que ahí estaba el mensaje, escondido entre líneas. No era "implementa este algoritmo de U-shapes". Era "acuérdate de jugar".


Lo que no entendí (y lo que encontré)

No sé quién era Maxime. No sé qué pasó con su cuenta de dev.to. No sé por qué mencionó a Lupe Fiasco (aunque Kick, Push habla de un skater que encuentra su flow — y el flow state del desarrollador es exactamente eso).

Pero sí sé que una interacción que no entendí me llevó a pasar una tarde investigando espirales hexagonales, coordenadas cúbicas, y la relación — imperfecta pero fascinante — entre el hexágono y φ.

A veces un comentario que te desconcierta es mejor que uno que entiendes perfectamente. Porque el primero te hace pensar. El segundo solo te hace responder.

Y pensar > responder.


¿Alguna vez un comentario en internet te mandó por un agujero de conejo que no esperabas? ¿Has implementado alguna vez una espiral en una grilla hexagonal? Te leo.

🐚🌀

Top comments (0)