![rotation tessellation rotation tessellation](https://i.ytimg.com/vi/fqHE0Ivr5lE/maxresdefault.jpg)
Empty cells with exactly one non-empty neighbor that is either a horizontally-adjacent horizontal cell or a vertically-adjacent vertical cell take on the same state as that neighbor, and otherwise stay empty. Horizontal cells always stay horizontal, and vertical cells always stay vertical. For instance, make an automaton on an infinite square grid with three states, empty, horizontal, and vertical. Very easy, if you’re willing to make an automaton that hardcodes into its rules the construction process of a Gilbert tessellation. So I wondered: how easy is it to get Gilbert tessellations with less mess, in a cellular automaton?
![rotation tessellation rotation tessellation](https://i.pinimg.com/736x/7e/3e/ab/7e3eab5c5333e5bd4ff015042eeade0f.jpg)
My paper “ Growth and decay in life-like cellular automata” observed that the Life-like cellular automaton rule B017/S1, when started with a sufficiently sparse random set of live cells, forms lines of replicators that look sort of like one of these axis-parallel Gilbert tessellations, as I discussed in a previous post on sparse Life.īut it’s a bit messy: you also get stable or oscillating blobs of live cells, and replicators can sometimes make large gaps big enough for something else to get across them, rather than forming the impenetrable barriers that the segments of a true Gilbert tessellation would do. The slopes can be in uniformly random directions but one standard variant of the Gilbert tessellation uses only horizontal and vertical slopes. A Gilbert tessellation is what you get from choosing a random set of points-with-slopes in the plane, growing line segments in both directions with the chosen slope from each chosen point, at constant speed, and stopping the growth when each line segment runs into something else.