This is an implementation of cellular automata in HTML5 with javascript, in development since 2016-03-03. It originated as an attempt to re-implement Jack Eisenmann's "Logic Land" cellular automaton better than he did, but it grew far beyond that and became capable of running other rules. As such, "Reasoning Realm" was named after it; other names with this structure include "Intelligence Island", "Deduction Dimension", and "Smartness Sphere". Dan came up with the last two. The source code of this programme is over 2000 lines, and it's all just one .html file. Reasoning Realm can currently run Lifelike CA, Generations rules, cylic cellular automata, and generalised wire automata (including WireWorld) with moore, JvN, and hexagonal neighbourhoods, Logic Land, Rychládrát, and LifeHistory.
I declare this to be free software. Feel free to reverse engineer it, distribute it, modify it, distribute modified versions of it, etc. (as if anyone cares enough). The source code is this file itself.
Credit goes to 256 (ME) (I previously also went by the name "blah") for being, like, really smart, Jack Eisenmann for inspiration and Logic Land savecodes (the functions to handle that were taken straight from his code with his permission), and dan.
wasd/arrow keys: Move camera
F: Simulate one frame
I: Zoom in linearly
O: Zoom out linearly
[: Zoom out exponentially
]: Zoom in exponentially
space: Play/pause
E: Erase selection
X: Cut selection
C: Copy selection
V: Paste selection
M: Mirror selection vertically
N: Mirror selection horizontally
T: Rotate selection
`: Randomly fill selection with values from 0 up to the selected element (` key to the left of 1)
H: centre camera
0,1,2,3,4,5,6,7,8,9: Select corresponding state (and switches to the Pen tool if it isn't already selected)
Q: Same as 0
-: Select state 10 (the hyphen key, to the right of 0)
Z: Select state 17
R: Selection tool
J: Drag Camera tool
alt+f4: Close help menu
Pause lock: If you enable this, you will not be able to pause or unpause. useful iff you=dan
Logic Land save codes: This is the undocumented, strange, inefficient format Logic Land used.
2026-09-04
After a brief hiatus of 8 years, I've decided to revisit Reasoning Realm and finally fix up the code. I've improved massively as a programmer in those years, and so I had to go through the whole programme, remedying innumerable infelicities and fixing bugs. The original was not very well written; I like to think the code is far more elegant now, and most importantly, more correct.
There are still some things I might like to do with the programme (see "Todo List" below) but I think now I've polished it up enough that I'm unlikely to want to revisit it for a long time. Probably another 8 years.
This is a list of easy and difficult goals. Some I will probably never bother to do. They are in no order whatsoever. This list is maintained poorly if at all.