BRAINFREEZE

A two-dimensional esolang: instructions are carved into a grid, and the shape of the path — not a jump table — decides where control flow goes.

* no-op + incr → move E - decr → move W ! branch: 0→S, else→E . output cell

Program

Language reference
*No-op.
+Increment memory[dp], then move dp right (odd/scratch convention: pairs with a following - to net a clean BF-style +).
-Decrement memory[dp], then move dp left.
!DECISION. If memory[dp] == 0, the PC is forced South; otherwise it's forced East — regardless of which neighbouring cells exist.
.Output memory[dp] as an ASCII byte.

The PC starts on the first non-blank character scanning top-to-bottom, left-to-right, and always steps to whichever orthogonal neighbour has a character — excluding the cell it just came from. A non-DECISION cell with more than one such neighbour is an ambiguous path error; a cell with none halts the program. Memory is a large wrapping byte tape, Brainfuck-style. There's no input instruction — BrainFreeze programs are purely generative.

Visualizer

steps / tick 4
No program loaded.

Memory tape — centred on the data pointer

Output


      

Brainfuck source

BrainFreeze output

How the layout works

Each BF token expands to BrainFreeze instructions: ++-, --+, >-+++, <+---, .., [!. A loop's body runs East of its ! and curves back around to re-enter from the North; the exit path runs South. Every loop routes its body and return path through freshly-allocated rows and columns, so unrelated parts of the program never become accidentally adjacent. Generated grids are larger than a hand-optimised BrainFreeze program would be — correctness took priority over compactness.