diff options
author | Paul <contact@pauloliver.dev> | 2025-03-03 08:22:45 -0800 |
---|---|---|
committer | Paul <contact@pauloliver.dev> | 2025-03-03 08:22:45 -0800 |
commit | d3e7d34f7de0506b8473ff48dd46d6656e718086 (patch) | |
tree | d915dd35e64229bc80e54456552835f45eb414bb | |
parent | ecde672c81ebbe66e2543ffe7ddbafc6e31a9945 (diff) |
-rw-r--r-- | README.md | 60 | ||||
-rw-r--r-- | sim.png | bin | 0 -> 311643 bytes | |||
-rw-r--r-- | todo.adoc | 5 |
3 files changed, 60 insertions, 5 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..9c2e872 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# SALIS: A-life Simulator + + +*SALIS simulation running on the V1 architecture with the ncurses user interface* + +## Overview +*SALIS* is a platform for conducting artificial life experiments. It enables +the development of Tierra-like virtual machines, with certain limitations. For +newcomers, I recommend exploring Tierra first. The following resources provide +valuable context and insight into both the motivations and implementation of +both Tierra and this project: + +- [Video about Tierra](https://www.youtube.com/watch?v=Wl5rRGVD0QI) +- [Read about Tierra](http://life.ou.edu/pubs/doc/index.html#What) + +## SALIS V1 Reimplementation +A fully functional clone of the V1 architecture for the SALIS virtual machine +has been implemented using the tools available in this repository. For more +information on the V1 architecture, including its similarities and differences +with the original Tierra simulator, check out the following resources: + +- [SALIS V1 repository](https://git.pauloliver.dev/salis-v1/about/) +- [SALIS V1 introductory playlist](https://www.youtube.com/watch?v=jCFmOCvy6po&list=PLrEmYrpTcDJY2NdGL6B7wIRbKGp_6NkxY) + +## Usage +*SALIS* simulations are initialized using the provided `salis` shell script. +Use `salis new [...]` to start new simulations and `salis load [...]` to load +saved simulations. For a full list of available arguments for each command, +run `salis new --help` and `salis load --help`, respectively. + +The shell script compiles a temporary executable on the fly (compilation +typically takes less than a second) based on the specified arguments and +launches it immediately. + +Different architectures can be implemented as standalone C files in the +`src/arch/` directory. When creating a new simulation, you can select a +specific architecture using the `--arch` argument. + +Similarly, different user interfaces are implemented as C files within the +`src/ui/` directory. For example, the `curses.c` UI launches a terminal-based +simulation visualizer, allowing easy exploration of *SALIS* memory cores and +processes. In contrast, the `daemon.c` UI provides minimal output, making it +ideal for running *SALIS* as a background service. Unlike the `--arch` +argument, you can choose a different `--ui` argument each time you load a +saved simulation. + +For example, the following command will launch a new *SALIS* simulation with 4 +copies of the `55a` ancestor organisms pre-compiled in each memory core. It +will use the `salis-v1` architecture, run on 8 memory cores, with each core +having a size of 2^22 bytes. The PRNG seed is set to `123456789`: +```console +user@host$ ./salis new -A55a -asalis-v1 -c8 -C4 -m22 -nworld-1 -s123456789 -o +``` + +Upon exit, the simulation data will be automatically saved to +`${HOME}/.salis/world-1/`. As long as the contents of this directory are not +removed, you can reload the saved simulation with the following command: +```console +user@host$ ./salis load -n world-1 -o +``` Binary files differdiff --git a/todo.adoc b/todo.adoc deleted file mode 100644 index 0011c6a..0000000 --- a/todo.adoc +++ /dev/null @@ -1,5 +0,0 @@ -= TODO -Paul Oliver <contact@pauloliver.dev> - -== Architectures -. salis-v3 |