2 Punkte von GN⁺ 2024-08-19 | 1 Kommentare | Auf WhatsApp teilen
  • 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 --recursive nötig, damit auch das vcpkg-Submodul ausgecheckt wird
    • Ein normales git pull aktualisiert Submodule in der Regel nicht, daher sollte git pull --recurse-submodules verwendet werden
  • Sowohl unter Windows als auch unter Linux werden Ninja und der CUDA-Compiler nvcc verwendet
    • 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-build und X11-/OpenGL-Entwicklungsbibliotheken benötigt
  • Die Build-Befehle lauten cmake --preset ninja und cmake --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 1000 führt example.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.exe so eingestellt werden, dass es die Hochleistungs-Grafikkarte verwendet
  • Wenn Fehler trotz erfüllter Voraussetzungen weiter auftreten, sollte ALIEN mit dem Kommandozeilenparameter -d gestartet, der Fehler reproduziert und anschließend ein GitHub issue unter Beifügung von log.txt erstellt 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

 
GN⁺ 2024-08-19
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

    • Der Titel Nature of Code klingt, als ginge es in dem Buch um das Wesen von Code selbst
      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

    • Die visuellen Elemente sind wichtig, aber ich frage mich, ob man die Simulation schneller laufen lassen kann, wenn man das Rendering weglässt
  • 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

  • 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