chrxh/alien
alien is a GPU-accelerated artificial life simulation program.
repo name | chrxh/alien |
repo link | https://github.com/chrxh/alien |
homepage | https://alien-project.org |
language | C++ |
size (curr.) | 457736 kB |
stars (curr.) | 1989 |
created | 2020-10-19 |
license | GNU General Public License v3.0 |
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 building blocks 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.
For some graphics cards of the GeForce 10 series there are reported issues that are currently being investigated.
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.