The idea in plain English: Imagine a piece of graph paper with letters placed at specific (x, y) coordinates. A is at (0,0), B is at (1,0), C at (2,0)... like a spreadsheet where row 0 is A-Z, row 1 is another set of symbols, etc. To encode a message, look up each letter's coordinate. To decode, do the reverse — given coordinates, find the letter at that position. Like reading a map with a grid reference.
Why this really exists: Coordinate-based encoding is everywhere. QR codes use a grid of black and white squares — your phone reads the grid to decode the URL. Barcodes are one-dimensional coordinates (width of stripes). GPS coordinates work the same way: latitude and longitude tell you your position on Earth. The lattice cipher is the simplest version of a spatial encoding — representing information by position.
A 3×3 grid with letters arranged in rows:
The grid can be any size, and letters can be in any order (not necessarily A-Z). The puzzle data tells you the coordinate mapping.
1. Get the coordinate grid (a map of (x,y) → character)
2. Get the ciphertext coordinates (list of x,y pairs)
3. For each (x,y), look up the character at that position
4. Join the characters in order → the decoded message!
💡 Higher difficulty levels use larger grids with non-sequential letter arrangements, making it harder to guess missing positions. But the decoding algorithm is always the same — look up coordinates in the grid.