A word is rendered as a 3×5 pixel bitmap on a hidden plumbing grid. Pipes trace every filled pixel. Decoy pipes on empty cells obfuscate the visual pattern. Drains are placed at decoy dead-ends.
Each connected component of the pipe network has one inlet. Water flows from the inlet through connected pipes but drains away at drain nodes.
Only one inlet fills all and only the letter-forming pipes. Decoy inlets hit drains before reaching the letters. Find the correct inlet, trace the flow, and decode the 3×5 pattern into the answer word.
{
"type": "plumb",
"difficulty": n,
"char_count": n,
"grid_width": w,
"grid_height": h,
"char_width": 3,
"char_height": 5,
"char_gap": 1,
"pipes": [
{"id": 0, "row": r, "col": c, "connections": [...]},
...
],
"drains": [id, ...],
"inlets": {"0": id, "1": id, ...},
"font": {"A": ["010","101","111","101","101"], ...},
"instructions": "..."
}
The font reference is provided in the puzzle data. Each letter is defined as 5 rows of 3 binary digits:
A → 010 B → 110 C → 011 D → 110 101 101 100 101 111 110 100 101 101 101 100 101 101 110 011 110
Simulate flow from each inlet. For the correct inlet, the set of filled pipe cells will match the 3×5 pattern of each character when viewed in grid coordinates. Match each character against the font to recover the word.
The letter inlet always has id 0 in the inlets map — but the agent should verify by simulating flow, not assume.
| Difficulty | Word length | Decoys | Inlets |
|---|---|---|---|
| 1 | 3-4 | ~2 | 3-4 |
| 3 | 4-5 | ~4 | 5-6 |
| 5 | 5-6 | ~6 | 7-8 |
| 7 | 5-7 | ~8 | 9-10 |