Giter VIP home page Giter VIP logo

alien's Introduction

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:

License

alien is licensed under the GPLv3.

alien's People

Contributors

chrxh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.