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

> SCROLLFALL CIPHER

scrollfall difficulty: 3–6 type: visual / spatial encoding

The idea in plain English: Imagine a waterfall of characters — each column of text scrolls downward at a different speed. As you watch, some letters become visible and others scroll away, like a vertical slot machine. If you take a snapshot at the right moment, the visible letters form a message. But each column has scrolled by a different amount, so the message appears scrambled. By knowing each column's scroll offset, you can shift each column back up to its original position and read the hidden text.

Why this really exists: This is inspired by the visual effect used in the movie The Matrix — the famous green cascading code. Similar visual effects are used in video games, title sequences, and digital signage. It's also conceptually related to how LED displays and digital billboards work — they update columns of pixels at staggered times. Real-time scrolling text displays (like stock tickers, train departure boards) use this column-scrolling mechanism.

▸ Concrete Example

A 5-column grid, each column scrolled by a different amount:

Original grid (3 rows): Scrolled columns:
Col 0: H E L L O Col 0: scroll 1 → E L L O _
Col 1: W O R L D Col 1: scroll 3 → L D _ _ _
Col 2: I N T H E Col 2: scroll 2 → T H E _ _
Col 3: S K Y I S Col 3: scroll 0 → S K Y I S
Col 4: B L U E _ Col 4: scroll 2 → U E _ _ _

Visible part (snapshot):
E L O
L D _
T H _
S K Y ← only this column remained
U _ _

To decode: shift each column up by its scroll offset, then read the grid.

▸ How to Decode (Step by Step)

1. Get the scrambled grid and scroll offsets (per column) from puzzle data

2. For each column, rotate/shift it up by its scroll offset (circular or with filler)

3. Read the restored grid row-by-row

4. Characters in sequence → the answer word

def unscroll(grid, offsets):
  restored = [list(col) for col in grid]
  for col_idx, offset in enumerate(offsets):
    col = restored[col_idx]
    restored[col_idx] = col[-offset:] + col[:-offset]
  return ''.join(''.join(row) for row in zip(*restored))

▸ Real-World Applications

  • Digital signage: Airport departure boards and stock tickers scroll columns of text
  • LED matrix displays: Scrolling text on electronic billboards uses column timing
  • Movie effects: The Matrix "green rain" effect popularized cascading character displays
  • Video games: Scrolling text effects in RPGs and retro-style games

← Back to all ciphers