2 puan yazan GN⁺ 2024-08-19 | 1 yorum | WhatsApp'ta paylaş
  • ALIEN, yumuşak cisimleri, akışkanları ve hücre ağı biçimindeki dijital yaşam formlarını gerçek zamanlı simüle eden CUDA tabanlı bir 2D parçacık motoruna sahip yapay yaşam ortamıdır
  • Simülasyon gövdeleri parçacık ağlarından oluşur; sensör, kas, silah ve üretici gibi yüksek seviye işlevler sinir ağları tarafından koordine edilir ve taslakları genomda saklanarak yavrulara aktarılabilir
  • Tüm simülasyon kodu CUDA ile yazılmıştır, milyonlarca parçacığı işleyen büyük ölçekli gerçek zamanlı simülasyonlar için optimize edilmiştir ve render tarafında CUDA-OpenGL birlikte çalışabilirliği kullanılır
  • Kullanıcılar çalışan simülasyonla etkileşime girebilir; grafik düzenleyici, serbest el/geometrik araçlar, genom düzenleyici ve toplu işlemlerle yaşam formlarını ve ortamı düzenleyebilir
  • Çalıştırmak için compute capability 6.0 ve üzeri bir NVIDIA GPU gerekir; ayrıca GUI olmadan simülasyonu çalıştırıp değerlendiren bir CLI da dahildir

ALIEN'in simüle ettikleri

  • ALIEN, Artificial LIfe ENvironment kısaltmasıdır ve bir yapay yaşam simülasyonu aracıdır
  • Temeli, CUDA ile yazılmış ve yumuşak cisimler ile akışkanları ele almak üzere tasarlanmış özel bir 2D parçacık motorudur
  • Her simülasyon gövdesi bir parçacık ağından oluşur
    • Salt bilgi işleme işlevlerinden sensör, kas, silah ve üretici gibi fiziksel donanımlara kadar yüksek seviye işlevler eklenebilir
    • Bu işlevlerin yürütülmesi sinir ağları tarafından koordine edilir
    • Gövdeler, ortak bir ortamda çalışan ajanlar veya dijital organizmalar olarak görülebilir
    • Taslaklar genoma kaydedilebilir ve yavrulara aktarılabilir
  • Geliştirme amacı, prebiyolojik evrimi ve biyolojik sistemlerde karmaşıklığın arttığı koşulları daha iyi anlamaktır
  • Modern bir arayüz, görsel olarak etkileyici render ve oyunsu bir yaklaşımla kullanımı kolay bir simülatör oluşturmak da önemli hedefler arasındadır

Fizik ve grafik motoru

  • Parçacıklar, yumuşak cisimler, katı cisim dinamiği, akışkanlar, ısı yayılımı, hasar ve yapışma gibi olayları simüle etmek için kullanılır
  • Çalışan simülasyonda gerçek zamanlı kullanıcı etkileşimi desteklenir
  • Simülasyon, CUDA üzerinden tamamen GPU üzerinde çalışır
  • Render ve son işleme, CUDA-OpenGL birlikte çalışabilirliğini kullanan OpenGL tabanlıdır

Yapay yaşam özellikleri

  • Çok hücreli organizmalar parçacık ağları ile simüle edilir
  • Genetik sistem ve hücre düzeyinde yavru üretimi desteklenir
  • Sensör ve kas gibi yüksek seviye işlevler sinir ağları tarafından kontrol edilir
  • Kullanıcının tanımladığı kurallara göre, farklı renkler kullanılarak hücre türleri özelleştirilebilir
  • Uzaya göre değişen simülasyon parametreleri desteklenir

Düzenleme ve paylaşım araçları

  • Düzenleme araçları, simülasyon bileşenlerini doğrudan manipüle etmeye odaklanır
    • Grafik düzenleyici ile tüm parçacıklar ve bağlantılar üzerinde işlem yapılabilir
    • Serbest el ve geometrik çizim araçları sunulur
    • Genom düzenleyici ile özel organizmalar tasarlanabilir
    • Toplu işlemler ve yakınlaştırma/uzaklaştırma desteklenir
  • Ağ özellikleri de dahildir
    • Yerleşik bir simülasyon tarayıcısı sunulur
    • Simülasyon dosyalarının indirilmesi ve yüklenmesi desteklenir
    • Simülasyonlar yıldız verilerek önerilebilir

Kullanım amaçları

  • Kendini kopyalayan makineler ve mutasyon açıldığında simülasyon kendi kendine ilerler ve kullanıcı evrimin işleyişini gözlemleyebilir
  • Hızlı ve gerçekçi bir fizik motoruna sahip bir oyun gibi de kullanılabilir
    • Fare imleciyle yüz binlerce makine hızlandırılabilir veya yok edilebilir
    • Farklı render stilleri ve görsel düzenleyici, olayları gözlemlemeye yardımcı olur
    • Örnekler YouTube channel üzerinde bulunabilir
  • Akademik açıdan, basit bileşenlerden karmaşıklığın veya yaşam benzeri yapıların nasıl ortaya çıkabileceğini araştırmak için bir araçtır
    • Ekosistemlerin çevresel değişime nasıl uyum sağladığı ve nasıl yeni bir denge bulduğu
    • Açık uçlu evrimi mümkün kılan koşulları bulma problemi
  • Üretken sanat aracı olarak da kullanılabilir; evrim, yeni biçimler ve davranışlar üreten yaratıcı bir güç olarak işlev görür

Belgeler ve çalıştırma koşulları

  • Önceki ana sürüme ait belgeler alien-project.gitbook.io/docs adresindedir ve simülatörü öğretici tarzda tanıtır
  • Bu belgelerdeki bilgilerin büyük kısmı artık güncel değildir
  • En güncel sürüm, program içindeki yardım penceresi ve araç ipuçları üzerinden kısa belgeler ve kullanıcı rehberliği sunar
  • Ek kaynaklar Website, YouTube, Twitter, Reddit, Discord üzerinde bulunabilir
  • Minimum sistem gereksinimi, compute capability 6.0 ve üzeri bir NVIDIA ekran kartıdır
  • Windows kurulum dosyası alien-installer.msi olup, README'ye göre güncelleme tarihi 2025-09-06'dır

Derleme ve CLI

  • Kaynak kodun derlenmesi, platformlar arası CMake ve Git submodule olarak dahil edilen vcpkg paket yöneticisi kullanılarak büyük ölçüde otomatikleştirilmiştir
  • Kaynağı alırken vcpkg submodule'ünü de checkout etmek için --recursive gereklidir
    • Standart git pull genelde submodule'leri güncellemez; bu yüzden git pull --recurse-submodules kullanılmalıdır
  • Hem Windows hem Linux, Ninja ve CUDA derleyicisi nvcc kullanır
    • Gereksinim CUDA Toolkit 11.2+
    • Windows tarafında Visual Studio'nun “Desktop development with C++” ve “C++ CMake tools for Windows” bileşenleri gerekir
    • Linux tarafında GCC, ninja-build ve X11/OpenGL geliştirme kütüphaneleri gerekir
  • Derleme komutları cmake --preset ninja ve cmake --build --preset ninja-release şeklindedir
  • Çalıştırılabilir dosyalar build-ninja/Release/ altında oluşturulur ve kaynak klasörünü bulabilmeleri için doğrudan derleme klasöründen çalıştırılmaları gerekir
  • Depoda, GUI olmadan simülasyonu çalıştıran bir CLI de bulunur
    • Performans ölçümü ve çeşitli parametrelerle otomatik çalıştırma/değerlendirme için kullanılabilir
    • Girdi olarak simülasyon dosyası, parametreler ve zaman adımı sayısını alır
    • Çıktı olarak sonuç simülasyon dosyası ve CSV istatistik dosyası üretir
    • Örnek komut .\cli.exe -i example.sim -o output.sim -t 1000, example.sim dosyasını 1000 zaman adımı boyunca çalıştırır

Sorun giderme ve lisans

  • Bilinmeyen bir nedenle çökme olursa önce gereksinimler kontrol edilmelidir
    • Compute capability 6.0 ve üzeri bir NVIDIA GPU gerekir
    • En güncel NVIDIA grafik sürücüsü kurulu olmalıdır
    • Kurulum dizini ve üst dizin adlarında İngilizce dışı karakterler olmamalıdır
    • Windows'ta, ALIEN'in kurulduğu Windows kullanıcı adında da İngilizce dışı karakterler olmamalıdır
    • ALIEN'in kendi dizinine yazma izni olması gerekir
    • Birden fazla GPU varsa varsayılan monitör CUDA destekli karta bağlı olmalıdır
    • Entegre ve harici ekran kartı birlikte kullanılıyorsa alien.exe için yüksek performanslı ekran kartının seçildiğinden emin olunmalıdır
  • Koşullar sağlandığı halde hata devam ediyorsa ALIEN, -d komut satırı parametresiyle başlatılmalı, hata yeniden üretilmeli ve log.txt eklenerek bir GitHub issue oluşturulmalıdır
  • Katkılar GitHub Issues, Pull requests, Discussion forum üzerinden kabul edilir
  • ALIEN, BSD 3-Clause lisansı ile dağıtılır

1 yorum

 
GN⁺ 2024-08-19
Hacker News yorumları
  • Başta bulmak istediğim materyalleri bulmak beklediğimden zor oldu ve GitHub'daki video benim tarafta yüklenmediği için bağlantıları bir araya topladım:
    https://www.youtube.com/@alien-project/videos
    https://www.youtube.com/watch?v=qwbMGPkoJmg
    https://www.youtube.com/watch?v=w9R6zrdl6jM
    Ayrıca Linux'ta nasıl çalışacağı tam olarak net değil; ilk bakışta Windows + NVidia yapılandırmasıyla sınırlıymış gibi görünüyor. Yanıldığımı doğrulayabilsem güzel olurdu.

  • Böyle bir şey yapmak istiyor ama nereden başlayacağınızı bilmiyorsanız https://natureofcode.com/ adresini öneririm.
    Yeni başlayanları hedefliyor ve bir JS kütüphanesi kullanıyor, ancak ele aldığı temel fikirler genel olarak uygulanabilir.

    • Nature of Code başlığı, kodun bizzat doğasını ele alan bir kitap gibi geliyor.
      Tersine, The Code of Nature daha doğal olurdu sanki.
  • Aylardır Alien simülasyonunu uzun süreler çalıştırıyorum; PC'yi kullanıp kullanmadığıma göre açıp kapatıyorum.
    RGB Triad başlangıç ayarı ön tanımlı profiliyle başladım; şaşırtıcı olan, üç canlı türünün birbirinden farklı biçimlerde karmaşık hücre benzeri yapılar oluşturması.
    Geometrik kristaller, başka şeyleri yemeye çalışan uzun iplikler, duvar oluşturan dikenli yapılar bile ortaya çıkıyor; gerçekten büyüleyici.

    • Görsel öğeler de önemli, ama render işlemi atlanırsa simülasyonun daha hızlı çalıştırılıp çalıştırılamayacağını merak ediyorum.
  • Küçük parçacıkların her birinin kendine özgü davranışları olduğu bir Flash oyununu hâlâ güzel hatırlıyorum.
    Her parçacık çarpışabiliyor, tepki verebiliyor, dönüşebiliyor ya da başka parçacık malzemelerini yok edebiliyordu. Web sitesinin ya da oyunun adını hatırlamıyorum ama emergent oynanış ile uğraşmak her zaman keyifli.

  • Web sitesi: https://alien-project.org/

  • Şaşırtıcı. Hücresel otomatları ve Conway'in Game of Life'ını seviyorum; bu da fena bir oyun gibi görünüyor.

  • Oldukça güzel. Bazılarının çalıştırmayı denediğine bakılırsa AMD de mümkün gibi görünüyor: https://github.com/chrxh/alien/issues/99

  • Nefes kesici derecede havalı. Birkaç video izledim; şu anda yaptığım uzaylı yaşam evrimi simülatörünü hatırlattı.
    Benim konsol tabanlı programım emekleme düzeyindeyken, bu proje gökte uçuyor.

  • Harika görünüyor ama ekranda kaydırma nasıl yapılıyor, bir türlü anlayamadım.