El proyecto doomformer explora una forma novedosa de ejecutar redes neuronales mapeando sus operaciones matemáticas a las mecánicas del juego DOOM. En este sistema, el 'cerebro' del marine se compila directamente en el nivel del juego. El concepto central se basa en 'muñecos vudú' —copias del personaje del jugador— para representar los valores de activación. Un número se representa mediante una multitud de estos muñecos en una cinta transportadora, mientras que una función de activación se modela como una escalera que los muñecos deben subir. Las multiplicaciones de matrices se logran mediante muñecos que corren a través de líneas de lava, donde cada línea cruzada aumenta el nivel de luz de una habitación. La salida final se lee a partir de estos niveles de luz y se compara bit a bit con una referencia de entero estándar para garantizar una precisión exacta.

Una captura de pantalla del motor del juego DOOM que muestra muñecos vudú en cintas transportadoras y líneas de lava.
El proyecto doomformer mapea las operaciones de redes neuronales a las mecánicas internas de DOOM, utilizando muñecos y lava para calcular valores.github.com

Esta imagen ilustra el concepto central de utilizar mecánicas de juego como cintas transportadoras y líneas de lava para representar activaciones de redes neuronales y multiplicaciones de matrices.

Para lograr esto, el desarrollador tuvo que tener en cuenta las peculiaridades específicas del motor de DOOM. Por ejemplo, el sistema maneja el hecho de que dos movimientos de suelo en un sector en el mismo tick de juego podrían perderse silenciosamente por el motor, o que las líneas de teletransporte pueden anular cruces de líneas anteriores. Estas restricciones se mapearon para asegurar que cada valor —incluyendo capas ocultas, comparaciones de puntuación y respuestas one-hot— permanezca bit-exacto. El proyecto admite varias arquitecturas, incluyendo Perceptrones Multicapa (MLP), Transformers y Redes de Púlsos. Por ejemplo, un modelo Transformer puede compilarse en un solo mapa donde los muñecos se comprimen bajo puertas de techo (que representan pesos de atención) para calcular resultados sin que se ejecute ningún código Python externo entre las capas.

Un gráfico que muestra una tolerancia bit-exacta de cero para los cálculos de la red neuronal.
Una visualización de la precisión bit-exacta lograda por la lógica del sistema.github.com

Esta figura respalda la afirmación de que el sistema garantiza que cada valor permanezca bit-exacto a pesar de las peculiaridades del motor.

Aunque es técnicamente impresionante, el método es significativamente más lento que la computación tradicional. Una demostración de una red de reconocimiento de dígitos escritos a mano mostró que una operación 'READ' tardaba aproximadamente 163 segundos de tiempo real de juego en DOOM, lo cual es unas 70,000 veces más lento que un cálculo estándar en NumPy. A pesar de esta desventaja en el rendimiento, el proyecto demuestra con éxito que la lógica compleja, como un transformer de 2 capas capaz de nombrar nuevos niveles de DOOM o responder preguntas sobre códigos de trucos, puede ejecutarse completamente dentro del entorno del juego. El sistema incluso permite 'lobotomías', donde un solo disparo de escopeta a un 'neurona' específica en el mapa puede cambiar el comportamiento del marine de agresivo a pacifista al bloquear físicamente el camino de los muñecos.

Un gráfico que compara la velocidad de ejecución de doomformer frente a NumPy.
Una comparación de rendimiento que muestra que doomformer es significativamente más lento que los cálculos estándar de NumPy.github.com

El gráfico proporciona una representación visual de la enorme desventaja en el rendimiento, mostrando la diferencia de velocidad de 70,000 veces.