Smolder

From Esolang
Jump to navigation Jump to search

Smolder is a cellular automaton invented by User:Aadenboy created from a failed attempt at recreating Burn.

Structure

Smolder is held on a 2D space of cells. Each cell has three channels, blue, green, and red, however the red channel can be left empty. Channels can range from 0 to 3. Cells with a value in the red channel are immutable.

Each step, cells that aren't 00 without a red channel and next to any other cell with a red channel follow these rules:

  • Keep track of running totals , and .
  • Check all four of your orthogonally adjacent neighbors. If they have a red component greater than zero, add each of their channels to the total, modulo 4.
  • Store the difference between the total and the cell.
  • Update the channels of the cell according to these formulas:

Single-cell example

As an example, consider this setup:

101
10

The rightmost cell, 10, calculates this:

The board updates to this state:

101
101

This is a basic example of flood-fill.

Multi-cell example

In this example:

112
112
01
112
01

The middle cell adds all the cells neighboring it together, modulo 4. With the total, it computes:

112
112
203
112
01

State network

For this section, a "transformation" is one cell turning into another via interaction with a single cell, and a "combination" is one cell turning into another via interaction with two cells.

The rules provided make it impossible for certain states to turn into any other, even when attempting to use combinations. If we create a map of these states, where nodes are connected through directed edges defined by transformations and combinations (which will be solid and dashed respectively). When doing this for every cell, it reveals that there are eight distinct clusters of states, which are mostly independent of one another.

The network of states.
Each cluster in the network is only able to travel within itself through transformations. Combinations allow clusters to step down to the next group, however there is no way to go back. Doing this enough times (at most twice) will lead you to the bottom cluster composed of cells
311
,
313
,
222
,
002
,
133
, and
131
.
The self-contained cluster.

This cluster is the only one where both transformations and combinations allow traversal within it, making it optimal for computations.

Interactions

Decay

Certain wires when flood-filling can undergo decay, where the red channel slowly decreases.

103
11
11
11
11

In this scenario, the difference between either channel equates in a total difference of 1, leading to the red channel decreasing by one each step.

103
012
101
010
11

Oscillation

Similarly, certain wires may oscillate between a set of values.

202
11
11
11
11

In this scenario, the total difference is zero, allowing the red channel to remain unaffected.

202
022
202
022
202

Logic

NAND

Where X and Y are either 202 or 00.

Initial state
X
20
Y
202
20
20
20
20
20
0 NAND 0
00
202
00
202
202
202
202
202
202
1 NAND 0
202
202
00
202
202
202
202
202
202
1 NAND 1
202
222
202
202
202
202
000
20
20

Computational class

Without infinite tiling and arbitrary modification after tiling the grid, Smolder is Total, since performing any useful computation (ex: NAND gate) must irreversibly turn some of the mutable cells used in it immutable, making any kind of loop impossible.

The computational class of unbounded Smolder with arbitrary modification after tiling the grid is unknown.

Interpreter