- ALIEN ist eine CUDA-basierte 2D-Partikel-Engine und eine Umgebung für künstliches Leben, die Soft Bodies, Fluide und zellnetzwerkartige digitale Lebensformen in Echtzeit simuliert
- Simulierte Körper bestehen aus Partikelnetzwerken; High-Level-Funktionen wie Sensoren, Muskeln, Waffen und Generatoren werden von neuronalen Netzen koordiniert, und die Baupläne können als Genome gespeichert und an Nachkommen weitergegeben werden
- Der gesamte Simulationscode ist in CUDA geschrieben, für groß angelegte Echtzeitsimulationen mit Millionen von Partikeln optimiert, und das Rendering nutzt CUDA-OpenGL-Interoperabilität
- Nutzer können mit laufenden Simulationen interagieren und mit Graph-Editor, Freihand-/Geometriewerkzeugen, Genom-Editor und Massenoperationen Lebensformen und Umgebungen bearbeiten
- Für die Ausführung wird eine NVIDIA-GPU mit Compute Capability 6.0 oder höher benötigt; außerdem ist eine CLI enthalten, mit der sich Simulationen ohne GUI ausführen und auswerten lassen
Was ALIEN simuliert
- ALIEN steht für Artificial LIfe ENvironment und ist ein Werkzeug zur Simulation künstlichen Lebens
- Die Grundlage ist eine spezielle 2D-Partikel-Engine, die in CUDA geschrieben wurde und für Soft Bodies und Fluide ausgelegt ist
- Jeder simulierte Körper besteht aus einem Partikelnetzwerk
- Es lassen sich High-Level-Funktionen hinzufügen, von reiner Informationsverarbeitung bis zu physischer Ausstattung wie Sensoren, Muskeln, Waffen und Generatoren
- Die Ausführung dieser Funktionen wird von neuronalen Netzen koordiniert
- Die Körper können als Agenten oder digitale Organismen betrachtet werden, die in einer gemeinsamen Umgebung agieren
- Baupläne werden in Genomen gespeichert und können an Nachkommen weitergegeben werden
- Das Entwicklungsziel ist, präbiotische Evolution und die Bedingungen für zunehmende Komplexität biologischer Systeme besser zu verstehen
- Ein weiteres wichtiges Ziel ist ein leicht nutzbarer Simulator mit moderner UI, visuell ansprechendem Rendering und einem beinahe spielerischen Ansatz
Physik- und Grafik-Engine
- Partikel werden verwendet, um Soft-Body- und Starrkörperdynamik, Fluide, Wärmeabgabe, Schäden und Adhäsion zu simulieren
- Es wird Echtzeit-Interaktion der Nutzer mit laufenden Simulationen unterstützt
- Die Simulation läuft über CUDA vollständig auf der GPU
- Rendering und Postprocessing basieren auf OpenGL unter Nutzung von CUDA-OpenGL-Interoperabilität
Funktionen für künstliches Leben
- Mehrzellige Organismen werden als Partikelnetzwerke simuliert
- Unterstützt werden ein genetisches System und die Erzeugung von Nachkommen auf Zellebene
- High-Level-Funktionen wie Sensoren und Muskeln werden durch neuronale Netze gesteuert
- Zelltypen lassen sich mit verschiedenen Farben nach benutzerdefinierten Vorgaben anpassen
- Unterstützt werden ortsabhängig variierende Simulationsparameter
Bearbeitungs- und Freigabewerkzeuge
- Die Bearbeitungswerkzeuge konzentrieren sich auf die direkte Manipulation von Simulationskomponenten
- Mit dem Graph-Editor lassen sich alle Partikel und Verbindungen bearbeiten
- Es gibt Freihand- und geometrische Zeichenwerkzeuge
- Mit dem Genom-Editor lassen sich benutzerdefinierte Organismen entwerfen
- Massenoperationen und Zoom-Funktionen werden unterstützt
- Es sind auch Netzwerkfunktionen enthalten
- Ein integrierter Simulationsbrowser ist vorhanden
- Download und Upload von Simulationsdateien werden unterstützt
- Simulationen können per Sternebewertung empfohlen werden
Einsatzmöglichkeiten
- Wenn selbstreplizierende Maschinen und Mutationen aktiviert sind, läuft die Simulation eigenständig weiter, und Nutzer können Evolution in Aktion beobachten
- Sie kann wie ein Spiel mit schneller und realistischer Physik-Engine genutzt werden
- Mit dem Mauszeiger lassen sich Hunderttausende Maschinen beschleunigen oder zerstören
- Verschiedene Rendering-Stile und der visuelle Editor helfen beim Beobachten von Ereignissen
- Beispiele gibt es im YouTube channel
- Wissenschaftlich ist es ein Werkzeug, um zu erforschen, wie aus einfachen Komponenten Komplexität oder lebensähnliche Strukturen entstehen können
- wie sich Ökosysteme an Umweltveränderungen anpassen und neue Gleichgewichte finden
- die Frage, unter welchen Bedingungen offene Evolution möglich wird
- Es kann auch als Werkzeug für generative Kunst dienen, wobei Evolution als kreative Kraft neue Formen und Verhaltensweisen hervorbringt
Dokumentation und Ausführungsbedingungen
- Dokumentation für die frühere Major-Version gibt es unter alien-project.gitbook.io/docs; sie führt in Form von Tutorials in den Simulator ein
- Viele Informationen in dieser Dokumentation sind inzwischen nicht mehr aktuell
- Die aktuelle Version bietet im Programmfenster für Hilfe und über Tooltips knappe Dokumentation und Benutzerhinweise
- Zusätzliche Materialien gibt es auf Website, YouTube, Twitter, Reddit, Discord
- Die minimale Systemanforderung ist eine NVIDIA-Grafikkarte mit Compute Capability 6.0 oder höher
- Das Installationspaket für Windows ist alien-installer.msi, und laut README ist es auf den Stand 2025-09-06 datiert
Build und CLI
- Der Build aus dem Quellcode ist weitgehend automatisiert und verwendet plattformübergreifendes CMake sowie den als Git-Submodul eingebundenen Paketmanager vcpkg
- Beim Holen des Quellcodes ist
--recursivenötig, damit auch das vcpkg-Submodul ausgecheckt wird- Ein normales
git pullaktualisiert Submodule in der Regel nicht, daher solltegit pull --recurse-submodulesverwendet werden
- Ein normales
- Sowohl unter Windows als auch unter Linux werden Ninja und der CUDA-Compiler
nvccverwendet- Voraussetzung ist das CUDA Toolkit 11.2+
- Unter Windows werden die Visual-Studio-Komponenten „Desktop development with C++“ und „C++ CMake tools for Windows“ benötigt
- Unter Linux werden GCC,
ninja-buildund X11-/OpenGL-Entwicklungsbibliotheken benötigt
- Die Build-Befehle lauten
cmake --preset ninjaundcmake --build --preset ninja-release - Die Binärdateien werden unter
build-ninja/Release/erzeugt und müssen direkt aus dem Build-Ordner gestartet werden, damit der Ressourcenordner gefunden wird - Das Repository enthält auch eine CLI, die Simulationen ohne GUI ausführt
- Sie kann für Leistungsmessungen sowie für automatisierte Läufe und Auswertungen mit verschiedenen Parametern verwendet werden
- Die Eingaben sind Simulationsdatei, Parameter und Anzahl der Zeitschritte
- Die Ausgaben sind die resultierende Simulationsdatei und eine CSV-Datei mit Statistiken
- Der Beispielbefehl
.\cli.exe -i example.sim -o output.sim -t 1000führtexample.simüber 1000 Zeitschritte aus
Fehlerbehebung und Lizenz
- Bei Abstürzen aus unbekannten Gründen sollten zuerst die Voraussetzungen geprüft werden
- Es wird eine NVIDIA-GPU mit Compute Capability 6.0 oder höher benötigt
- Der aktuelle NVIDIA-Grafiktreiber muss installiert sein
- Im Namen des Installationsverzeichnisses und seiner übergeordneten Verzeichnisse dürfen keine nichtenglischen Zeichen vorkommen
- Unter Windows dürfen auch im Windows-Benutzernamen, unter dem ALIEN installiert wurde, keine nichtenglischen Zeichen vorkommen
- ALIEN benötigt Schreibrechte im eigenen Verzeichnis
- Bei mehreren GPUs muss der Standardmonitor an eine CUDA-fähige Karte angeschlossen sein
- Bei gleichzeitiger Nutzung integrierter und dedizierter Grafik muss
alien.exeso eingestellt werden, dass es die Hochleistungs-Grafikkarte verwendet
- Wenn Fehler trotz erfüllter Voraussetzungen weiter auftreten, sollte ALIEN mit dem Kommandozeilenparameter
-dgestartet, der Fehler reproduziert und anschließend ein GitHub issue unter Beifügung vonlog.txterstellt werden - Beiträge sind über GitHub Issues, Pull requests und das Discussion forum willkommen
- ALIEN wird unter der BSD 3-Clause-Lizenz veröffentlicht
1 Kommentare
Meinungen auf Hacker News
Die Informationen, die ich zuerst finden wollte, waren schwerer zu finden als gedacht, und das Video auf GitHub wurde bei mir nicht geladen, daher habe ich die Links gesammelt:
https://www.youtube.com/@alien-project/videos
https://www.youtube.com/watch?v=qwbMGPkoJmg
https://www.youtube.com/watch?v=w9R6zrdl6jM
Außerdem ist nicht ganz klar, wie es unter Linux läuft; auf den ersten Blick wirkt es so, als sei es auf eine Windows + NVidia-Konfiguration beschränkt. Wäre schön, wenn sich herausstellen würde, dass ich falschliege
Wenn man so etwas bauen möchte, aber nicht weiß, wo man anfangen soll, empfehle ich https://natureofcode.com/
Es richtet sich an Einsteiger und nutzt eine JS-Bibliothek, aber die behandelten Kernideen sind allgemein anwendbar
Eher umgekehrt hätte The Code of Nature wohl natürlicher geklungen
Ich lasse die Alien-Simulation seit einigen Monaten über längere Zeit laufen und schalte den PC je nach Nutzung ein und aus
Ich habe mit dem Preset der Starteinstellung RGB Triad begonnen, und das Erstaunliche ist, dass die drei Arten von Lebewesen auf unterschiedliche Weise komplexe, zellähnliche Strukturen bilden
Es entstehen geometrische Kristalle, lange Fäden, die versuchen, andere zu fressen, und sogar stachelige Strukturen, die Wände bilden – wirklich faszinierend
Ich erinnere mich immer noch gern an ein Flash-Spiel, in dem kleine Partikel jeweils ihr eigenes Verhalten hatten
Jedes Partikel konnte kollidieren, reagieren, sich umwandeln oder andere Partikelmaterialien zerstören. Ich erinnere mich weder an die Website noch an den Namen des Spiels, aber es macht immer Spaß, mit emergentem Gameplay zu experimentieren
[1] https://dan-ball.jp/en/javagame/dust/
[2] https://powdertoy.co.uk/
Website: https://alien-project.org/
Erstaunlich. Ich mag zelluläre Automaten und Conways Game of Life, und das hier sieht nach einem ordentlichen Spiel aus
Ziemlich cool. Wenn man sieht, dass einige versuchen, es zum Laufen zu bringen, scheint auch AMD eine Möglichkeit zu sein: https://github.com/chrxh/alien/issues/99
Atemberaubend cool. Ich habe mir ein paar Videos angesehen, und es erinnerte mich an den Simulator für die Evolution außerirdischen Lebens, an dem ich gerade arbeite
Mein konsolenbasiertes Programm kriecht eher dahin, während dieses Projekt durch den Himmel fliegt
Sieht cool aus, aber ich habe keine Ahnung, wie man eigentlich den Bildschirmausschnitt bewegt