A Coordinate Format for Multi-Dimensional Boards
In the 1730s, Philip Stamma developed a system for identifying squares on a chessboard using file letters and rank numbers. His approach, refined over subsequent decades by players like Moses Hirschel, Johann Allgaier, and Aaron Alexandre, eventually became what we now call algebraic notation—despite the name having nothing to do with algebra.
Algebraic notation encompasses far more than coordinates. It includes piece identifiers, capture symbols, castling notation, check and checkmate markers, promotion syntax, disambiguation rules, and annotation symbols. The coordinate itself—"e4", "d7"—is just one component of a larger system designed specifically for recording Western chess games.
This article describes CELL (Coordinate Encoding for Layered Locations), a format that isolates and generalizes Stamma's coordinate principle to boards of arbitrary dimension, while remaining compatible with traditional two-dimensional coordinates.
What CELL preserves
A standard algebraic coordinate like "e4" is also a valid CELL coordinate. The format does not replace or modify the familiar notation; it extends the same structural principle. Lowercase letters identify one dimension, positive integers identify another. For two-dimensional boards, nothing changes.
This compatibility means that existing chess tools and databases can interpret CELL coordinates for standard positions without modification. The extension only becomes relevant when addressing squares beyond two dimensions.
How CELL extends the pattern
CELL uses a cyclical character system to encode additional dimensions:
- Dimension 1, 4, 7… — lowercase letters (
a–z) - Dimension 2, 5, 8… — positive integers (
1,2, …) - Dimension 3, 6, 9… — uppercase letters (
A–Z)
A coordinate may end after any complete dimension. Thus a is valid (1D), a1 is valid (2D), a1A is valid (3D), and a1Ab is valid (4D). The pattern can continue indefinitely.
For a 3D tic-tac-toe cube, a center square might be addressed as b2B. For a hypothetical 4D chess variant, coordinates like e4Cc become meaningful. The format imposes no upper limit on dimensionality.
What CELL does not define
CELL is deliberately minimal. It specifies which strings constitute valid coordinates, but it does not assign meaning to those coordinates. There is no notion of adjacency, distance, or direction built into the format. Whether a1 is "next to" a2 or b1 depends entirely on the game's geometry, not on CELL itself.
This separation keeps the coordinate format independent of any particular rule system. A shogi engine interpreting e5 and a chess engine interpreting the same string may attach different spatial semantics; CELL does not arbitrate between them.
Relation to algebraic notation
Algebraic notation, as standardized by FIDE, is a complete system for recording chess games. Beyond coordinates, it specifies:
- Piece identification —
K,Q,R,B,N, or figurine symbols - Captures — indicated by
x(e.g.,Bxe5) - Castling —
O-O(kingside) andO-O-O(queenside) - Check and checkmate —
+and# - Pawn promotion —
e8=Q - En passant — optionally marked
e.p. - Disambiguation — when multiple pieces can reach the same square
- Annotations —
!,?,!!,??, etc. - Game results —
1-0,0-1,½-½
CELL concerns itself solely with the coordinate portion—the "e4" in "Nxe4+". It makes no attempt to encode piece types, move semantics, game state, or evaluative commentary.
The long algebraic form used by the Universal Chess Interface (UCI)—where moves are written as e2e4 or e7e8q—comes closer to CELL's scope, though UCI notation still embeds promotion information that CELL does not address.
Availability
The full specification is published at sashite.dev/specs/cell/ under an open license (OWFa 1.0). Reference implementations exist for Ruby, Python, JavaScript, Elixir, Go, and Zig.