Github GitHub - chrxh/alien: alien is a GPU-accelerated artificial life simulati...
source link: https://github.com/chrxh/alien
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
ALiEn - Explore the world of artificial life
Artificial Life Environment (ALiEn) is a simulation program based on a specialized 2D physics and rendering engine in CUDA. Each simulated body has a graph-like structure of connected building blocks that can either be programmed or equipped with functions to act in the world (accelerators, sensors, weapons, constructors, etc.). Such internal processes are triggered by signals coming from circulating tokens. The bodies can be thought of as small machines or agents operating in a common environment.
Main features
Physics and graphics engine
- Realistic physical computations of heat dissipation, collisions, bondings, damages, rotational forces, etc.
- Real-time user interactions with running simulations
- Simulation and rendering on GPU via CUDA and OpenGL
- Post-processing filters such as glow and motion blur
Artificial Life extensions
- Programmable matter approach for simulating digital organisms and evolution
- Built-in programming environment and graph editor for designing own machines
The simulation code is written entirely in CUDA and highly optimized for large-scale real-time simulations of millions of bodies and particles. The development is driven by the desire to better understand the conditions for (pre-)biotic evolution and the growing complexity of biological systems.
But for what is this useful?
- A first attempt to answer: Feed your curiosity by watching evolution at work! As soon as self-replicating machines come into play and mutations are turned on, the simulation itself does everything.
- Perhaps the most honest answer: Fun! It is almost like a game with a pretty fast and realistic physics engine. You can make hundreds of thousands of machines accelerate and destroy with the mouse cursor. It feels like playing god in your own universe with your own rules. Different render styles and a visual editor offer fascinating insights into the events. There are a lot of videos on the YouTube channel for illustration.
- A more academic answer: A tool to tackle fundamental questions of how complexity or life-like structure may arise from simple components. How do entire ecosystems adapt to environmental changes and find a new equilibrium? How to find conditions that allow open-ended evolution?
Further information and artworks
Minimal system requirements
An Nvidia graphics card with compute capability 6.0 or higher is needed. Please check https://en.wikipedia.org/wiki/CUDA#GPUs_supported.
Installer
An installer for 64-bit binaries is provided for Windows 10: download link.
Documentation
Please visit alien-project.org for a documentation of the program and the underlying model. A completely new documentation with many tutorials that guide the reader into the program in small portions is currently in construction.
Screenshots
Startup screen
Evolving self-replicating machines in action
Debris after heavy impact
Graph structure of the bodies
Visual editor and programming environment
How to build the sources
To build alien you need Microsoft Visual Studio 2019. You find the solution file in msvc/alien/alien.sln. The following third-party libaries are necessary and should be installed:
- Qt 6.0.2
- CUDA 11.2
- boost library version 1.75.0 (needs to be installed in external/boost_1_75_0)
- OpenSSL version 1.1.1j (not mandatory, it is only used for retrieving the latest version number and bug reporting feature)
License
alien is licensed under the GPLv3.
Contributors
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK