Write tiny assembly into a grid of CPUs that hand values to their neighbors, turning the input stream into the target without deadlocking.
Was this fun?
How to play
You program a grid of very small computers. Each node runs its own short list of instructions and can only talk to the neighbours directly beside it, passing values through ports — so a number that needs to cross the grid has to be relayed by hand, node by node.
Each node has an accumulator and a handful of instructions: move a value, add, subtract, jump.
A node can read from or write to the neighbour above, below, left or right, or to the input and output streams.
Ports block. A node writing to the right simply waits until the node on its right reads from its left.
That means two nodes have to agree in time, not just in value.
If a whole cycle passes with nobody making progress and somebody still waiting, the grid is deadlocked.
The puzzle is solved when the output stream matches the target the level asks for.
Controls
Desktop: type code into each node's text box, pick a level from the dropdown, then press Run
Phone & tablet: works, but an external keyboard is strongly recommended for writing the code
Game modes
Daily: one shared puzzle seeded from today's date
Practice: cycle through fresh randomized inputs with the New button
Tips & strategy
Design the route before the arithmetic. Most failures are values that cannot get where they need to be, not sums that come out wrong.
Two nodes waiting on each other is the classic deadlock. If both write toward each other before either reads, neither ever moves.
Keep the traffic flowing one way where you can. A grid with a consistent direction is far easier to reason about than one with values crossing.
Use a node as a pure relay when you need to. Doing nothing but passing a value along is a legitimate and often necessary job.
Read the blocked node, not the wrong answer. When output stalls, the informative thing is which node is waiting and for whom.
What you'll learn
Node Network is a parallel-programming puzzle about message passing and avoiding deadlock across a mesh of processors.
Skills: parallel and concurrent programming, message passing, deadlock avoidance
Best for: roughly grades 9–12 (ages 14+)
For parents & teachers: concurrency and deadlock, hands-on.
Origins
A grid of very small computers, each running its own short instruction list and able to talk only to the neighbours directly beside it, is TIS-100 — Zachtronics, July 2015 — which set its puzzles on a fictional, corrupted 1970s machine.
The constraint being taught is real and central to parallel computing: without shared memory, a value that needs to cross the grid must be relayed by hand, node by node, through message passing.
And relaying by hand is how you meet deadlock — two nodes each waiting on the other, both stopped forever. It is a bug that cannot really be explained on a whiteboard, because the whole difficulty is that each node is individually behaving correctly.
About Node Network
Node Network is a parallel-programming puzzle about message passing and avoiding deadlock across a mesh of processors. It is an original, free browser game built in-house for PlayPendium.
A free, original browser game on PlayPendium. No download, no install.