Realizing CGOL and Other Cellular Automata in Minecraft

For general discussion about Conway's Game of Life.
Post Reply
User avatar
gmc_nxtman
Posts: 1150
Joined: May 26th, 2015, 7:20 pm

Realizing CGOL and Other Cellular Automata in Minecraft

Post by gmc_nxtman » July 19th, 2017, 8:57 am

I've always been interested in CGOL and Minecraft - enjoyed the creative/sandbox aspects of each, as well as the engineering challenges, like (say) building guns in CGOL, or redstone in Minecraft. (Has anyone else?)

But I've recently thought about how easy it would be to build a working OTCA pixel in Minecraft. Looking on the web, there are numerous designs hard-wired for CGOL - not too surprising. However, I've already started to formulate a plan for a pixel that can be programmed to any rule that the OTCAMP can, which would likely be heavily based on signal strength -

There are three main user controls:
-Board Reset (This uses 0-tick repeaters to send a forced "off" signal to all latches instantaneously)
-Toggle Single Cell (Self-explanatory)
-Generate (Has button or lever, should be designed so that a stone or wooden button represents exactly one cycle and a lever auto-generates)

Obviously, toggle cell would be some sort of RS latch or flip flop, and board reset would be using the same logic. Of course, the generate function is more complicated -

-Each cell has input and output wires placed such that each cell's input wire lines up with the neighboring cell's output wire, and vice versa (pretty easy)
-Each output wire only turns on when the internal state is also on (also pretty easy)

In order to allow programmability of different rules, one needs to have a "calculation circuit" similar to lookup tables in the OTCAMP:

-Each input wire subtracts a total of 1 from a line of comparators holding 8 signal strength, and then the last comparator goes into the side of another comparator on subtract holding 8 strength as well, making a unary adder, that gets converted to signal strength
-Attach the output of the adder to two redcoders such that each analog neighbor value gives a different output
-To "program" the cell, one only needs to place birth and death conditions by placing torches wherever there needs to be a transition (in CGOL one would place torches on 3 for B, and 0145678 for D)
-The internal state should only allow for the reading of one wire (as in, live cells overwrite the birth condition table, and dead cells overwrite the death condition table)
-To allow for the button/lever input, attach the input to a 10hz or 15hz clock so that a stone or wooden button goes through exactly one cycle
-Every clock cycle, send 0-tick pulses to every cell to allow the output from the calculation circuit to pass to the internal state flip flop with toggle and reset controls

IF anything is unclear, or if you understood everything perfectly and want to contribute an idea, let me know!

Post Reply