Skip to content
/ alien Public
forked from chrxh/alien

alien is a GPU-accelerated artificial life simulation program.

License

Notifications You must be signed in to change notification settings

heluocs/alien

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

License

alien is licensed under the GPLv3.

Contributors

About

alien is a GPU-accelerated artificial life simulation program.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 76.4%
  • Cuda 21.9%
  • Other 1.7%