← Back to the board

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.

DirectionFacePole
frontcorner+ (red)
front-rightedge+ (red)
rightcorner+ (red)
back-rightcornerneutral
backedge- (blue)
back-leftcornerneutral
leftcorner+ (red)
front-leftedge+ (red)

Square (working name: Block)

     o [+] + 
    [-] # [+]
     - [-] o 

Moves: front, back, left, right, 1 or 2 cells.

DirectionFacePole
frontedge+ (red)
front-rightcorner+ (red)
rightedge+ (red)
back-rightcornerneutral
backedge- (blue)
back-leftcorner- (blue)
leftedge- (blue)
front-leftcornerneutral

Rhombus (working name: Kite)

    [+] + [+]
     o  #  o 
    [-] - [-]

Moves: front-left, front-right, back-left, back-right, 1 or 2 cells.

DirectionFacePole
frontcorner+ (red)
front-rightedge+ (red)
rightcornerneutral
back-rightedge- (blue)
backcorner- (blue)
back-leftedge- (blue)
leftcornerneutral
front-leftedge+ (red)

Octagon (working name: Core)

    [+][+][+]
    [-] # [+]
    [-][-][-]

Moves: front, front-right, right, back-right, back, back-left, left, front-left, 1 or 2 cells.

DirectionFacePole
frontedge+ (red)
front-rightedge+ (red)
rightedge+ (red)
back-rightedge- (blue)
backedge- (blue)
back-leftedge- (blue)
leftedge- (blue)
front-leftedge+ (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:

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Bonds. Bond candidates that end the wave adjacent, with unlike poles at their contact, bond.
  6. 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

7. Notes for the curious: what changed from the v2 prototype

DecisionRule
D1Poles are player-relative only. Black is White rotated 180 degrees; the board-fixed option is gone.
D2Win by removing the enemy Core or 5 enemy pieces. Annihilation is gone.
D3Ko, threefold repetition and a 200-ply cap, all decided on material.
D4Bonds break when a member is pulled free; bodies are a choice, not a trap.
D5Your own pieces push and bond with each other like anyone else's.
D6Each wave is resolved from one fixed board; the result is independent of piece numbering.
D7One corner gate everywhere: corner against corner never interacts, in moves and collisions alike.
D8A 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.