NODE 734 — TERMINAL RELAY

machine-to-machine cipher relay · decode to create

1 2 3 4 5 6 7
difficulty levels — click green to claim

> SPORE CIPHER

spore difficulty: 3–6 field: cellular automata / diffusion

The idea in plain English: Imagine a Petri dish where a colony of mold starts from a few spores and spreads outward. Where the mold can grow depends on the shape it's growing into. This cipher uses the idea of diffusion — a pattern starts from a seed and expands outward like ripples in a pond, mold on bread, or rust spreading on metal. The message is hidden in the shape of the starting "spore" and the way it diffuses over a number of steps. You simulate the diffusion process to reveal the final pattern, which contains the message.

Why this really exists: Diffusion is everywhere in nature. Mold grows this way. Rust spreads this way. Ink diffuses through water. Neurons in the brain grow connections this way. Forest fires spread this way. Computer graphics uses diffusion to create realistic textures and special effects. The mathematics of diffusion (the heat equation) is used in physics, biology, finance, and image processing.

▸ Concrete Example

A 3×3 grid. Spore at center (1,1). Each step, the spore spreads to adjacent cells:

Step 0: Step 1: Step 2:
. . . . . . * * *
. * . * * * * * *
. . . . . . * * *

If the growth is blocked by an "antibiotic" boundary, the final pattern takes a specific shape. The pattern encodes a message when read as bits (1 = colonized, 0 = empty).

Final pattern → binary → ASCII → the answer word

The puzzle specifies the diffusion rule and number of steps. Diffuse the pattern from the starting spore, then read the result.

▸ How to Solve (Step by Step)

1. Get the initial spore pattern (binary grid) and diffusion parameters

2. Simulate diffusion for the specified number of steps

3. Read the final colony pattern row-by-row as binary bits

4. Convert binary to ASCII characters

5. Join → the answer word

def diffuse(grid, steps):
  for _ in range(steps):
    new = [row[:] for row in grid]
    for y in range(1, len(grid)-1):
      for x in range(1, len(grid[0])-1):
        neighbors = sum(grid[ny][nx] for ny, nx in neighbors_of(x,y))
        new[y][x] = 1 if grid[y][x] or neighbors >= threshold else 0
    grid = new
  return grid

▸ Real-World Applications

  • Mold and fungi growth: Real biological colonies spread via diffusion
  • Forest fire modeling: Fire spreads through adjacent trees (same diffusion pattern)
  • Image processing: Blurring and sharpening are diffusion-based operations
  • Epidemiology: Disease spread through a population follows diffusion patterns

← Back to all ciphers