Crosshatch Automata

Instead of squares, our cells are lines in 4 different orientations; horizontal, vertical, diagonally descending and diagonally ascending. To each of these 4 orientations, we assign one CA rule.

Square cells and line cells.

Just like a square is drawn depending on its three neighboring squares above, each line is drawn depending on three neighboring lines. For each of the orientations, these are the neighbors in question.

Neighbors used as input to rules.

A selection of the resulting line patterns.

Rules [H200-V129–D33–A227], [H244–V60–D84–A121], [H61–V225–D209–A161], [H45–V147–D195–A228], [H247–V149–D176–A21] and [H15–V43–D30–A85]

Using the lines as dividers, we can fill these patterns with color. Each cell will now contain 8 pieces of data: The presence of each of the four dividers and the color of each of the 4 quarters of the cell.

The 4 colors of a given cell will be determined by its dividers and its adjacent colors — the southern color of the northern cell and the eastern color of the western cell.

With 4 dividers being either present or not, a cell can be in a total of 16 different “divider states”. We handle the coloring of each of these explicitly.

Filling each cell variant with color from adjacent cells.

If some part of the cell is left unfilled by the flow of adjacent colors (N and W), we fill them with random colors (1–4).

Filling empty spaces with random color.

The same selection of patterns as earlier, but filled with colors using the above process.

We can even remove the dividers altogether.

… and some more …

Still intrigued? Generate your own pattern here:

Thank you for your time!



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store