STCA Simulator by Daniel Morrison Supported platforms: The software has been tested on modern versions of Windows and Ubuntu. Any OS which supports the Java Runtimes should suffice. Installation: Simply extract the archive. Then run the command "java Main" from within the same folder as the class files. Usage: The majority of the GUI should be intuitive. Select a STCA from the top drop-down box. The "Examine" button will display a new window which graphically depicts the update rules. In this window, clicking "Check Determinism" will run an algorithm which verifies local determinism and local reversibility of the update rules of the selected STCA. All rotational and reflective equivalences will be checked if relevant. Select a configuration from the relevant drop down box and click "Load" to apply it to the cell space. Clicking "Reset" will clear the cell space. Clicking "Save" will save the current configuration to a filename of your choice (with the extension ".con"). Filenames already in use are automatically overwritten. Saving the configuration will also store annotations which have been made on the cell space. The button "Path verification" will open a new window. In this window, select two configurations (source and target) and a STCA. Clicking "Run" will (non-graphically) execute the STCA starting at the source configuration and if the target configuration is reached, the execution will either stop, or repeat the process (if "Repeat" is checked). If no updates occur after a large number of execution steps, an iterative approach to selecting cells is used. If no more updates occur after checking every cell, a deadlock is detected and the process halts. The number of successful executions resulting in the target configuration is recorded on-screen. This is useful to verify global determinism for a configuration. Global reversibility can be verified by selecting the inverse STCA (e.g. InverseSTCAa or InverseSTCAc) and swapping the source and target configurations. Implementation information: Executing the STCA in either normal or "Path Verification" mode involves the following algorithm: A full cell (excluding the outermost boundary) is selected at random; The current states of the subcells of the cell and its four adjacent neighbours are examined against the set of update rules; if an update rule is found to match, it is applied to the relevant set of subcells; and the process is repeated. As no two adjacent cells may be involved in an update simultaneously, this iterative implementation is trivially equivalent to the model where multiple (non-neighbouring) cells may update simultaneously. This is due to the limited neighbourhood size causing no possible causal overlap.