Vectress: the rules
Generated from the engine's piece tables by packages/engine/scripts/rulebook.ts. Do not edit by hand; change the tables or the generator.
Vectress is a two-player game of magnets on a 9 x 9 board. Every piece is a magnet: its shape says how it moves and which of its faces are red (+) and which are blue (-). Like poles push, unlike poles bond. Moving one piece can set off a chain of pushes across the board, and a piece pushed or dragged over the edge is gone. You win by knocking the enemy Core off the board, or by knocking off 5 enemy pieces.
1. Board and setup
Columns are A to I from left to right, rows 1 to 9 from White's side to Black's. White sits behind row 1 and faces row 9; Black sits behind row 9 and faces row 1. White moves first.
Black's setup is White's rotated by 180 degrees, so both players see exactly the same picture from their own seat (this is also how poles work, see section 2).
9 . S R . . . R S .
8 . T . . . . . T .
7 . . . T O T . . .
6 . . . . . . . . .
5 . . . . . . . . .
4 . . . . . . . . .
3 . . . t o t . . .
2 . t . . . . . t .
1 . s r . . . r s .
A B C D E F G H I
Lower-case letters are White, upper-case Black: t triangle, s square, r rhombus, o octagon. White's pieces: octagon E3, square B1, square H1, rhombus C1, rhombus G1, triangle B2, triangle H2, triangle D3, triangle F3.
2. Pieces
Poles are given in the piece's own frame: "front" means toward the opponent, "right" means the owner's right hand. Because Black's pieces face the other way, a Black piece is the White piece rotated 180 degrees on the board. Fronts are red, backs are blue, so two pieces facing each other head-on always push apart, and a piece following another of its own colour attracts it.
Each piece has eight directions. Where the piece has a true edge (shown in brackets below) it presents that edge's pole. Where it has a corner it presents the pole of its two neighbouring edges if they agree, and is neutral (o) if they disagree, with one documented exception: the triangle's left and right corners present + so that it can shove sideways.
Triangle (working name: Wedge)
[+] + [+]
+ # +
o [-] o
Moves: front-left, front-right, back, 1 or 2 cells.
| Direction | Face | Pole |
|---|---|---|
| front | corner | + (red) |
| front-right | edge | + (red) |
| right | corner | + (red) |
| back-right | corner | neutral |
| back | edge | - (blue) |
| back-left | corner | neutral |
| left | corner | + (red) |
| front-left | edge | + (red) |
Square (working name: Block)
o [+] +
[-] # [+]
- [-] o
Moves: front, back, left, right, 1 or 2 cells.
| Direction | Face | Pole |
|---|---|---|
| front | edge | + (red) |
| front-right | corner | + (red) |
| right | edge | + (red) |
| back-right | corner | neutral |
| back | edge | - (blue) |
| back-left | corner | - (blue) |
| left | edge | - (blue) |
| front-left | corner | neutral |
Rhombus (working name: Kite)
[+] + [+]
o # o
[-] - [-]
Moves: front-left, front-right, back-left, back-right, 1 or 2 cells.
| Direction | Face | Pole |
|---|---|---|
| front | corner | + (red) |
| front-right | edge | + (red) |
| right | corner | neutral |
| back-right | edge | - (blue) |
| back | corner | - (blue) |
| back-left | edge | - (blue) |
| left | corner | neutral |
| front-left | edge | + (red) |
Octagon (working name: Core)
[+][+][+]
[-] # [+]
[-][-][-]
Moves: front, front-right, right, back-right, back, back-left, left, front-left, 1 or 2 cells.
| Direction | Face | Pole |
|---|---|---|
| front | edge | + (red) |
| front-right | edge | + (red) |
| right | edge | + (red) |
| back-right | edge | - (blue) |
| back | edge | - (blue) |
| back-left | edge | - (blue) |
| left | edge | - (blue) |
| front-left | edge | + (red) |
The octagon is the Core. Lose it and you lose the game.
3. Your turn
Choose one of your pieces and move it 1 or 2 cells in one of its directions. Every cell it passes through and lands on must be empty. Then the magnets act (section 4).
Bodies. Pieces that have bonded (section 5) form a rigid body. When you move a piece that is in a body you have two options:
- Move the body. The whole body slides together, by the pattern of the piece you chose. Every member's path must be clear (other members do not count as obstacles). The piece you chose must stay on the board; any other member that would leave the board falls off and is lost. Either owner may move a body through one of their own pieces in it, enemy members and all.
- Pull the piece free. The piece moves alone and every bond it had breaks. Its path must be clear. It may bond again immediately if it comes to rest against an unlike pole.
A move is not allowed if it would recreate the board exactly as it stood before your opponent's last move (section 6). If you have no legal move you pass.
4. Magnets
Magnets act only when pieces come to rest, never in passing. After your move, the pieces that moved are the actors. Resolution happens in waves, each read from the board exactly as it stands at the start of that wave:
- Contact. Each actor is compared with each of its eight neighbours that are not in its own body. A contact counts only if at least one of the two presents a true edge toward the other; corner against corner does nothing. Then the two poles are read from the tables. A neutral corner does nothing. Like poles: the neighbour's body is pushed one cell directly away. Unlike poles: the two are bond candidates. A resting piece never pushes an actor, so in the first wave the pieces you moved stay where you put them (your hand is still on them). Two actors that meet with like poles push each other apart, which is why a shoved piece and its shover fly apart in the wave after the shove, like a cradle.
- Forces add. All pushes on one body add as vectors, at most one cell along each axis, so a body pushed north and east moves north-east, and a body pushed north and south does not move.
- Shoving. A moving body that runs into a body with like poles at the point of contact shoves it along in the same direction, and that body may shove the next, and so on. A body that is already being moved by magnets is not deflected by a shove. A body shoved from two different directions jams and does not move.
- Blocking. A body stays still if any cell it needs is occupied by something that is not moving the same way, if two bodies want the same empty cell, or if something it shoves stays still. Nothing may slip into a cell just because another body is leaving it in a different direction. Everything that is allowed to move then moves at once. Pieces that leave the board are lost.
- Bonds. Bond candidates that end the wave adjacent, with unlike poles at their contact, bond.
- Everything that moved is an actor in the next wave. Resolution ends when nothing moves.
Because every wave is read from one fixed board, the outcome never depends on the order in which pieces are considered, and two players (or two phones) will always agree on it.
5. Bonds
Bonded pieces form one rigid body and move together, whoever moves them. Bonds are between adjacent pieces only, and they hold until one of the pieces is pulled free (section 3) or leaves the board. Bonding to an enemy piece is a weapon: you can drag it, and a body that contains an enemy Core can be dragged toward the edge. It is also a risk, because the enemy can drag you.
6. Winning and ending
- You win at once when the enemy Core leaves the board, or when 5 enemy pieces have left the board, however that happened. If both sides cross the line in the same chain reaction, the side with more pieces on the board wins; equal is a draw.
- Ko. A move may not recreate the board exactly as it stood before your opponent's last move. This is what stops two bodies shoving each other back and forth forever.
- Repetition. If the same position (pieces, bonds and side to move) occurs for the third time, the game ends.
- Cap. The game ends after 200 moves in total (100 each).
- Passes. A player with no legal move passes. Two passes in a row end the game.
- When the game ends by repetition, the cap or passes, the side with more pieces on the board wins; equal is a draw.
7. Notes for the curious: what changed from the v2 prototype
| Decision | Rule |
|---|---|
| D1 | Poles are player-relative only. Black is White rotated 180 degrees; the board-fixed option is gone. |
| D2 | Win by removing the enemy Core or 5 enemy pieces. Annihilation is gone. |
| D3 | Ko, threefold repetition and a 200-ply cap, all decided on material. |
| D4 | Bonds break when a member is pulled free; bodies are a choice, not a trap. |
| D5 | Your own pieces push and bond with each other like anyone else's. |
| D6 | Each wave is resolved from one fixed board; the result is independent of piece numbering. |
| D7 | One corner gate everywhere: corner against corner never interacts, in moves and collisions alike. |
| D8 | A starting layout in which no first move by either side pushes or drops the mover's own pieces, no edge piece presents + toward the edge, and the Core is off the edge. Friendly bonds on move one are allowed: with D4 they are breakable and a bonded pair is also a body that moves together. (Layouts with no friendly bonds on move one exist only by leaving most pieces unable to move; see packages/sim/RESULTS.md.) |
Engine notes from the review: E1 (corner gate mismatch) is closed by D7; E2 (id-order dependence) by D6; E3 (the mover is never pushed back) and E4 (two-cell moves interact only where they stop) are now stated rules; E5 (the wave cutoff) is a safety cap the tests assert is never reached; E6 (text versus tables) is closed by generating this file from the tables.
Board size 9 x 9; White = side 0. Generated 2026-09-03.