Margolus Critters layered snap-together tiles
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
A new set of tiles to implement Margolus Critters block cellular automata, which improve on usability in several ways.
- Ocena
- 0 / 5
- Polubienia
- 0
- Pobrania
- 8
- Wydruki
- 0
- Wyświetlenia
- 63
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Math
- Licencja
- Creative Commons — Attribution — Share Alike
Note: I have an older implementation of the same idea at https://www.printables.com/model/837487-snap-together-margolus-critters-reversible-cellula Some of the text here is from that Printable.
These tiles can be thought of as one of the slowest ever implementations of a cellular automata (CA), in this case, "Critters" a reversible block cellular automaton discovered by Tommaso Toffoli and Norman Margolus. See https://en.wikipedia.org/wiki/Critters_(cellular_automaton) for a detailed description.
Like Conway's Game of Life, Critters supports small moving objects ("critters") similar to gliders. Unlike Life, it is reversible, and thus it serves as a model of reversible computation. It is harder to define universal machines in this framework, but it is possible. Critters conserves the number of live cells, so you cannot do it starting with a finite pattern, but this can be overcome by starting with simple repeating backgrounds such as glider streams entering from infinity.
A block CA works by applying a transition function to the values in disjoint windows in each generation (so reversible mappings are possible) but alternating the diagonal position of the window for odd and even generations (so information can propagate on the grid). For more information, please read the Wikipedia page referenced above.
There are 16 possible assignments of 0s and 1s to a 2x2 window, but only 6 up to symmetry. Thus, the rules can be summarized as a set of 6 tiles as defined here.
The tiles are constructed with bumps in the corners that are either triangular (for 1) or semicircular (for 0). Each triangle has a small circle in the center for great distinguishability. In the center of the tiles are matching holes, sized to fit the bumps and hold with friction. When four tiles share a corner, their bumps align to match a tile that matches it when placed on top. Tiles fit together at a scale of 2cm on a side, but include a small gap to account for printing variability.
In addition to the 6 tiles, this printable includes several optional models.
- A thin cover can be placed over each tile, for less visual distraction when reading the state.
- A base tile can be used to hold together four tiles at a corner when laying out the first layer. It uses bumps that fit in either hole.
- An optional “thumb saver” tool is for snapping resistant tiles in place. It provides a smooth surface when pushing.
- Finally, all the tiles are duplicated with covers printed on them. These may save some effort in assemble, though the detachable covers provide greater flexibility, and have a very flat underside.
I have included a number of photos to show these tiles assembled. Here is a step by step view of the glider-like “critter” that the rule is named after. The active tiles are photos while the background is a simulated image.
I printed these tiles in two colors by switching the filament during printing. While this is unnecessary, it is worth the trouble for visual effect.
Step 0 of the critter. It consists of the 4 triangles with dots against a background of 0 (semicircle).

Step 1, after placing a layer on top. This inverts the background to 1 (dotted triangle), so the critter consists of the four semicircles without dots.

Step 2, where we have returned to the 0 (semicircle) background. The critter again consists of 4 dotted triangles.

Step 3. Again, the background is 1 (triangles) and the critter consists of four semicircles.

Step 4. Finally, we have restored the shape of the original critter, against the same background, but it is displaced vertical by one tile position (two cells).

So what good is such an implementation of something than can be done at least a million times faster on a computer? Well, I was initially curious if it was possible to do at all. It might also have some implications for nanotechnology. What if instead of tiles, these were molecules? Would they form spontaneous quasi-crystals?
But there is value in doing something very slowly if you want to understand it. I think these tiles may also be useful for building intuition about block CAs.