Artificial Life Environment (ALiEn) is a simulation program based on a specialized 2D physics and rendering engine in CUDA. Each simulated body consists of a network of "smart" particles that can be enriched with higher-level functions, ranging from pure information processing capabilities to physical equipment such as sensors, actuators, weapons, constructors, etc. To orchestrate the execution, a token concept from graph theory is utilized. The bodies can be thought of as small machines or agents operating in a common environment.

The machines operate in a physical environment where they constantly radiate heat, are subject to external forces, attacks from other machines, and possibly random mutation events. They can be of any size and complexity. During their operations, they can be partially damaged, fall apart or even fuse together at adhesive parts.

The entire simulation code runs on the graphics processing unit (GPU) and is highly optimized for large real-time simulations of millions of bodies and particles. The development was 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?

Created with the Personal Edition of HelpNDoc: Easily create Help documents