(you may notice the gif is a little janky; that's cause it's mashed together from 2 different takes)
As you can probably see, I'm still using actual analog values for the cells; that's because I'm actually messing around with combinators for the first time, and this is basically a warm-up project. If I create more crazy logic stuff it will probably be purely virtual.
Despite the hellish-looking (and admittedly, actually hellish) wiring, how it works is pretty simple. There are 4 chests in an inserter loop. Two of the chests (NW and SE) are connected to the cell; when the artifact is one of those, the cell is on. When the artifact is in one of the other 2 chests (not connected to anything), the cell is off. The 6 bajillion arithmetic combinators are all set to 0, and are really just diodes, similar to DaveMcW's. Also like his, I only needed 4 diodes per cell because I used both red and green wires. The wires then, of course, connect to the deciders. I needed three deciders because, unlike in DaveMcW's in which the "default" of each cell was "die", here the default is "don't change". Thus, the 3 deciders are [IF neighbors=3 THEN enliven], [IF neighbors<2 THEN die], and [IF neighbors>3 THEN die]. The outputs of the deciders are just connected to the smart inserters. Now that I think about it, the "die" inserters could have been on a different circuit than the "live" inserters, but i guess that doesn't really matter.
explanation with images
The logistic network which limits the size of the grid is not strictly necessary, but it's connected to an offscreen clock which makes 100% certain that everything remains in sync, and also to a very convenient little switch which allows me to turn the whole thing on or off by adding or taking a single belt* from any chest in the network. Without it I'd have to cut power to the whole thing in order to pause it and set the values. Which, I guess, is only mildly less convenient, but whatever.*Or any odd number of belts, but each belt will causes delay because I have to convert from logistic network to a circuit network. The converter is just an inserter loop that goes
- Chest full of fast belts (it can be any item, of course)
- Fast inserter
- Ground
- Smart inserter (logistic condition: belts>fast belts?)
- Logistic storage chest
- Smart inserter (logistic condition: belts<fast belts?)
- Ground
- Inserter
- Back to the chest full of fast belts
The Logistic storage chest is connected to a simple 4-combinator setup which outputs a signal when [x/2=(x-1)/2]--that is, whenever the number of belts is odd. That way I if I'm far away from the chest in which I originally put the belt in, I can just pop another one into the closest storage chest and the thing will turn off.