8000 GitHub - Ashwagandhae/mutable: Evolution simulator written in rust
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Ashwagandhae/mutable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mutable

Screenshot of Mutable showing worm-like creatures moving through grass

An evolution simulator written in Rust. Each organism is represented as a tree of different nodes with different jobs, and can use those nodes to sense events in the world and react to them with a neural network. The evolution of plants, detritivores, and herbivores has been observed.

Inspired by and based on:

Usage

git clone https://github.com/Ashwagandhae/mutable.git
cd mutable
cargo run --release

Note: I hope to support WebAssembly at some point, but for now you'll need to run it locally.

Why?

Plenty of evolution simulators exist, but most make an arbitrary distinction between plants and animals, usually manifesting in circles of "food" spawning around the world for the evolving animals to eat. I wanted to make a simulator where the distinction between plants and animals is blurred, allowing both to evolve both together in a single world.

Prerequisites

Windows

  1. Download Microsoft C++ Build Tools.
  2. Install Rust.

MacOS

  1. Install CLang and macOS Development Dependencies.
xcode-select --install
  1. Install Rust.

Linux

  1. Install a C compiler, depending on the distro.
  2. Install Rust.

Usage

To start a new world with a random population:

cargo run --release

To start a new world from a file:

cargo run --release --input path/to/file.json

The example-worlds folder contains some worlds with interesting creatures.

To start a new world with the option to save it to a file:

cargo run --release --output path/to/file.json

You can save the current state to the file by pressing S at any time.

About

Evolution simulator written in rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0