https://github.com/daelsepara/turmites
User interface for programming and simulating 2D Turing Machines (Turmites) done in Mono and GTK
https://github.com/daelsepara/turmites
artificial-life turmites
Last synced: 8 months ago
JSON representation
User interface for programming and simulating 2D Turing Machines (Turmites) done in Mono and GTK
- Host: GitHub
- URL: https://github.com/daelsepara/turmites
- Owner: daelsepara
- License: mit
- Created: 2018-09-10T14:28:47.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-10-18T19:26:12.000Z (almost 7 years ago)
- Last Synced: 2024-12-29T10:14:08.276Z (10 months ago)
- Topics: artificial-life, turmites
- Language: C#
- Homepage:
- Size: 246 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Turmites
## About

Turmites is a program for programming, simulating, and visualizing 2D Turing machines, called Turmites. This software is a spin-off from the Gtk Artificial Life project (https://github.com/daelsepara/GtkArtificialLife) focusing exclusively on Turing Machines. Unlike the artificial life simulator where entire colonies are simulated, this software allows you to program individual Turmites. Also, individual Turmites can interact with other Turmites (or the trails they leave behind).
## Programming Turmites
A Turmite program consists of Tuples
SRWNT
Where
* S - Current state of the Turmite (numeric value)
* R - Color read by Turmite at its current location (character A-Z)
* W - new color to write at its current location (chacters A-Z)
* N - new state (numeric value)
* T - Turn directionPossible values for color (Read and Write) are:
O, X, A to Z
* A color of 'O' means that the location or cell is empty
* colors X, and A to Z are colors for non-empty cellsPossible values for Turn (T)
* L - left
* R - right
* S - stay in current direction (move forward)
* B - move backwardYou can specify the neighborhood configuration of a Turmite. Turn directions automatically adopt to the configuration you have specified
## Sample Program
Lanton's ant has a simple program consisting of 2 Tuples:
* 1OX1R
* 1XO1LEach iteration, a Turmite moves forward in the current direction, reads the color at current location of its head, then consults its program.
Then performs an action specified by the Tuple that applies to its present configuration (Location, Current Direction, State):
### 1OX1R
If the Turmite is in state **1** and reads and empty cell **O**, it will mark the cell with the **X** color, remain in state **1** and turn right **R**
### 1XO1L
If the Turmite is in state **1** and reads a non-empty cell **X**, it will erase the cell with the **O** color, remain in state **1** and turn left **L**
More complex behaviors are observed depending on the complexity of the program
## Turmite Library
Turmites software has a library of sample programs which you can copy into your Turmite.
## Generating Turmites
To generate a Turmite, you can either toggle the pencil or edit icon then select a location on the world map to the left, or you can specify its coordinates then click on the 'Add Turmite' button next to the color button.
## Simulation
At any time you can start / stop the simulation by clicking on the buttons at the top. You can also save an image of an individual Turmite's trails or the entire 'world'. You can also reset the world, i.e. remove all Turmites and reset the current age (Epoch)
# Gallery
## Maze

## Worm Trails

## Striped Spiral

# Platform
Turmites software has been tested on Linux, OSX, and Windows platforms