- ALIEN es un entorno de vida artificial con un motor 2D de partículas basado en CUDA que simula en tiempo real cuerpos blandos, fluidos y seres digitales con redes celulares
- Los cuerpos simulados están compuestos por redes de partículas, y funciones de alto nivel como sensores, músculos, armas y generadores son coordinadas por redes neuronales; sus planos pueden guardarse como genomas y transmitirse a la descendencia
- Todo el código de simulación está escrito en CUDA, optimizado para simulaciones masivas en tiempo real con cientos de millones de partículas, y el renderizado usa interoperabilidad CUDA-OpenGL
- El usuario puede interactuar con la simulación en ejecución y editar organismos y entornos con editor de grafos, herramientas de dibujo libre/geométricas, editor de genomas y operaciones masivas
- Para ejecutarlo se necesita una GPU NVIDIA con compute capability 6.0 o superior, y también incluye un CLI para ejecutar y evaluar simulaciones sin GUI
Qué simula ALIEN
- ALIEN significa Artificial LIfe ENvironment, y es una herramienta de simulación de vida artificial
- Su base es un motor especial de partículas 2D escrito en CUDA, diseñado para manejar cuerpos blandos y fluidos
- Cada cuerpo simulado está compuesto por una red de partículas
- Se le pueden añadir funciones de alto nivel, desde procesamiento puro de información hasta dispositivos físicos como sensores, músculos, armas y generadores
- La ejecución de estas funciones es coordinada por una red neuronal
- Los cuerpos pueden verse como agentes u organismos digitales que operan en un entorno compartido
- Los planos se almacenan en un genoma y pueden transmitirse a la descendencia
- El objetivo del desarrollo es comprender mejor la evolución prebiótica y las condiciones en las que aumenta la complejidad de los sistemas biológicos
- Otro objetivo importante es crear un simulador fácil de usar, con una UI moderna, renderizado visualmente atractivo y un enfoque cercano al juego
Motor físico y gráfico
- Las partículas se usan para simular cuerpos blandos, dinámica de cuerpos rígidos, fluidos, emisión de calor, daño y adhesión
- Soporta interacción del usuario en tiempo real sobre la simulación en ejecución
- La simulación se ejecuta completamente en la GPU mediante CUDA
- El renderizado y el posprocesado están basados en OpenGL, usando interoperabilidad CUDA-OpenGL
Funciones de vida artificial
- Los organismos multicelulares se simulan como redes de partículas
- Soporta sistema genético y generación de descendencia a nivel celular
- Las funciones de alto nivel, como sensores y músculos, se controlan mediante redes neuronales
- Permite personalizar tipos de células con varios colores según especificaciones definidas por el usuario
- Soporta parámetros de simulación que varían según la ubicación espacial
Herramientas de edición y compartición
- Las herramientas de edición se enfocan en manipular directamente los componentes de la simulación
- Con el editor de grafos se pueden manipular todas las partículas y conexiones
- Ofrece herramientas de dibujo libre y geométrico
- Con el editor de genomas se pueden diseñar organismos personalizados
- Soporta operaciones masivas y funciones de zoom
- También incluye funciones de red
- Ofrece un navegador de simulaciones integrado
- Soporta descarga y subida de archivos de simulación
- Permite recomendar simulaciones mediante un sistema de estrellas
Usos previstos
- Si se activan máquinas autorreplicantes y mutaciones, la simulación avanza por sí sola y el usuario puede observar la evolución en funcionamiento
- Puede usarse como un juego con un motor físico rápido y realista
- Con el cursor del mouse se pueden acelerar o destruir cientos de miles de máquinas
- Varios estilos de renderizado y el editor visual ayudan a observar los eventos
- Hay ejemplos en el canal de YouTube
- En el ámbito académico, es una herramienta para explorar cómo pueden surgir la complejidad o estructuras parecidas a la vida a partir de componentes simples
- Cómo los ecosistemas se adaptan a cambios ambientales y encuentran nuevos equilibrios
- El problema de encontrar las condiciones que permitan una evolución abierta
- También puede usarse como herramienta de arte generativo, donde la evolución actúa como una fuerza creativa que produce nuevas formas y comportamientos
Documentación y requisitos de ejecución
- La documentación para la versión mayor anterior está en alien-project.gitbook.io/docs e introduce el simulador con textos tipo tutorial
- Mucha de la información de esa documentación ya no está actualizada
- La versión más reciente ofrece documentación breve y guía de usuario dentro del programa, mediante una ventana de ayuda y tooltips
- Hay material adicional en Website, YouTube, Twitter, Reddit, Discord
- El requisito mínimo del sistema es una tarjeta gráfica NVIDIA con compute capability 6.0 o superior
- El instalador para Windows es alien-installer.msi, y según el README la fecha de actualización es 2025-09-06
Compilación y CLI
- La compilación desde código fuente está mayormente automatizada usando CMake multiplataforma y el gestor de paquetes vcpkg incluido como submódulo de Git
- Al descargar el código fuente se necesita
--recursivepara hacer checkout también del submódulo de vcpkg- El
git pullestándar normalmente no actualiza submódulos, así que hay que usargit pull --recurse-submodules
- El
- Tanto en Windows como en Linux se usan Ninja y el compilador CUDA
nvcc- El requisito es CUDA Toolkit 11.2+
- En Windows se necesitan los componentes “Desktop development with C++” y “C++ CMake tools for Windows” de Visual Studio
- En Linux se necesitan GCC,
ninja-buildy bibliotecas de desarrollo X11/OpenGL
- Los comandos de compilación son
cmake --preset ninjaycmake --build --preset ninja-release - Los ejecutables se generan en
build-ninja/Release/, y deben ejecutarse directamente desde la carpeta de compilación para que encuentren la carpeta de recursos - El repositorio también incluye un CLI para ejecutar simulaciones sin GUI
- Puede usarse para medir rendimiento y para ejecución/evaluación automática con varios parámetros
- La entrada consiste en un archivo de simulación, parámetros y número de pasos de tiempo
- La salida consiste en un archivo de simulación de resultados y un archivo CSV de estadísticas
- El comando de ejemplo
.\cli.exe -i example.sim -o output.sim -t 1000ejecutaexample.simdurante 1000 pasos de tiempo
Solución de problemas y licencia
- Si falla por razones desconocidas, primero hay que verificar los requisitos
- Se necesita una GPU NVIDIA con compute capability 6.0 o superior
- Debe estar instalado el controlador gráfico más reciente de NVIDIA
- El directorio de instalación y los nombres de sus directorios superiores no deben contener caracteres no ingleses
- En Windows, el nombre del usuario de Windows que instaló ALIEN tampoco debe contener caracteres no ingleses
- ALIEN necesita permiso de escritura en su propio directorio
- Si hay varias GPU, el monitor principal debe estar conectado a una tarjeta compatible con CUDA
- Si se usan juntos gráficos integrados y dedicados, hay que configurar
alien.exepara que use la tarjeta gráfica de alto rendimiento
- Si el error continúa incluso cumpliendo las condiciones, hay que iniciar ALIEN con el parámetro de línea de comandos
-d, reproducir el error y luego crear un GitHub issue adjuntandolog.txt - Se aceptan contribuciones mediante GitHub Issues, Pull requests y Discussion forum
- ALIEN se distribuye bajo la licencia BSD 3-Clause
1 comentarios
Opiniones en Hacker News
El material que quería encontrar al principio resultó no ser tan fácil de ubicar, y los videos de GitHub no me cargan, así que recopilé los enlaces:
https://www.youtube.com/@alien-project/videos
https://www.youtube.com/watch?v=qwbMGPkoJmg
https://www.youtube.com/watch?v=w9R6zrdl6jM
Además, no queda del todo claro cómo funcionaría en Linux y, a primera vista, parece limitado a una configuración de Windows + NVidia. Me gustaría poder confirmar que estoy equivocado.
Si quieres crear algo así pero no sabes por dónde empezar, recomiendo https://natureofcode.com/
Está dirigido a principiantes y usa una biblioteca de JS, pero las ideas centrales que aborda son aplicables en general.
Más bien, al contrario, creo que The Code of Nature habría sonado más natural.
Llevo varios meses dejando correr la simulación Alien durante mucho tiempo, encendiéndola y apagándola según si uso o no la PC.
Empecé con el preset inicial RGB Triad, y lo sorprendente es que tres tipos de organismos crean estructuras complejas parecidas a células de formas distintas.
Han surgido cristales geométricos, largas cuerdas que intentan comerse otras cosas e incluso estructuras espinosas que forman paredes; es realmente fascinante.
Todavía recuerdo con cariño un juego Flash en el que pequeñas partículas tenían cada una su propio comportamiento.
Cada partícula podía chocar, reaccionar, transformarse o destruir materiales de otras partículas. No recuerdo el sitio web ni el nombre del juego, pero siempre es divertido experimentar con jugabilidad emergente.
[1] https://dan-ball.jp/en/javagame/dust/
[2] https://powdertoy.co.uk/
Sitio web: https://alien-project.org/
Increíble. Me gustan los autómatas celulares y el Game of Life de Conway, y esto parece un juego interesante.
Bastante genial. Viendo que algunos están intentando ejecutarlo, parece que AMD también podría ser una posibilidad: https://github.com/chrxh/alien/issues/99
Impresionantemente genial. Vi algunos videos y me hizo pensar en el simulador de evolución de vida alienígena que estoy creando ahora.
Mi programa basado en consola apenas va gateando, mientras que este proyecto va volando por el cielo.
Se ve genial, pero no tengo idea de cómo se hace para mover la vista.