# Go on three surfaces — experimental rules v1

These games use the same Go rules on three different adjacency graphs: a Möbius strip, a Klein bottle and the orientable genus-two surface $T^2\#T^2$. Black starts on an empty board. Players alternate placing a stone or passing.

The rules are complete, but strategic balance has not been established. White receives **0.5 point by default**, an experimental tie-break rather than an estimate of the correct compensation for moving second. Komi may be changed before starting a game; it remains fixed thereafter.

## Boards and coordinates

Each marked cell center is one playable point. Two points are adjacent when their cells share a side, including a side identified across a seam. Diagonal contact does not connect stones. A seam is an adjacency, not a gap or another point.

Files are **a–i**, including i, and ranks increase upward. Genus two uses **I:a1** and **II:a1** for distinct points in its two charts. Chart labels do not denote players or separate territories.

| Surface | Playable points | Adjacency at the chart edges |
| --- | ---: | --- |
| Möbius | 9 × 11 = 99 | Side crossings send rank $r$ to $12-r$. Top and bottom are physical boundaries. |
| Klein | 9 × 18 = 162 | Side crossings send rank $r$ to $19-r$. Top and bottom also wrap without reflection. |
| Genus two | Two 9 × 9 charts = 162 | Each chart wraps, with the staircase side identifications below replacing ordinary edges. |

The Möbius top and bottom form **one physical boundary**. Eighteen points have three neighbors; the other 81 have four. There are no two-neighbor corners. Both closed boards have four neighbors at every point. Stones have no facing: a seam crossing changes connectivity, never a stone's color.

The nine-column charts keep the display compact. The Klein and genus-two boards have the same point count and degree; Möbius provides a smaller board with a physical boundary. These are practical starting dimensions, not optimized or proven balanced choices. Comparisons between the 99-point and 162-point boards mix size, boundary and topology effects.

### Genus-two staircase

The following northward adjacencies replace ordinary ones. Ranges denote a matching pair for each file; every adjacency works in reverse as well.

| Northward from | Adjacent point |
| --- | --- |
| I:a4–d4 | II:a4–d4 |
| II:a3–d3 | I:a5–d5 |
| I:e5 | II:e5 |
| II:e4 | I:e6 |
| I:f6–i6 | II:f6–i6 |
| II:f5–i5 | I:f7–i7 |

| Eastward from | Adjacent point |
| --- | --- |
| I:d5 | II:e4 |
| II:d4 | I:e5 |
| I:e6 | II:f5 |
| II:e5 | I:f6 |

Other adjacent sides stay in their own chart, wrapping at its outer edges. The underlying square complex has 162 faces, 324 edges and 160 vertices. Every vertex link is a circle, the surface is orientable and closed, and its Euler characteristic is −2. Two mesh vertices have eight square corners meeting at them. Go is played at the **162 cell centers**, not those 160 mesh vertices.

The cell-center adjacency graph has 158 quadrilateral faces and two octagonal faces. An octagon is an empty part of the drawing, **not an extra playable point or an eye**. Four neighbors per point does not make every local pattern an ordinary square-grid pattern.

## Chains, liberties and placement

A **chain** is a maximal connected set of stones of one color. Its **liberties** are the distinct empty points adjacent to it. A point touching several stones of the same chain counts once.

To place a stone:

1. Choose an empty playable point.
2. Place your stone provisionally.
3. Remove every opposing chain with no liberties, simultaneously.
4. Reject the placement if your resulting chain has no liberties. **Suicide is prohibited.**
5. Reject the placement if its complete resulting board coloring has occurred earlier in this game. This is **positional superko**.
6. Otherwise accept it, switch players and reset the consecutive-pass count to zero.

Captures happen **before** the suicide check. A placement with no immediately empty neighbor can be legal when it captures opponents and thereby creates liberties. Invalid attempts make no change to the board, turn, pass count or history.

Superko compares every physical point after all captures. The initial empty coloring is included. Player to move is not part of the coloring comparison. The history is the full history, not just the preceding move. Immediate recapture in a snapback can be legal if it produces a different complete coloring; longer cycles can be illegal even when they are not ordinary single-stone ko.

A winding or one-sided chain is captured when it has no liberties, just like any other chain. Topology grants no special protection.

## Passing, finishing and scoring

A pass is always legal before the game ends. It changes the player and increments the consecutive-pass count, while leaving the board and superko history unchanged. Passes are exempt from superko. **Two consecutive passes end the game immediately.** Resignation ends the game with a loss for the resigning player.

Score the board actually left after those passes:

- Each of your stones counts one point.
- Each connected empty region touching only your stones counts one point per empty point.
- Empty regions touching both colors, or neither color, are neutral.
- White adds the komi fixed before play. Higher score wins; an exact tie is a draw.

Captured stones do not add points. An exclusive eye beside seki counts under these area rules. The whole empty board is neutral, so two opening passes give White the default half-point win.

**There is no automatic dead-stone removal.** Stones still on the board count even if they could be captured next turn. Play out uncertain groups before passing twice. A visual enclosure is not enough to assign territory: empty-point connectivity and all neighboring colors decide ownership, including across seams.

Before a game ends, an area display means “the score of this board if both players finish now,” not a prediction of secure territory or the final winner. An ended game cannot be resumed as the same official result; further study belongs in a separate analysis branch.

### Eyes and mutual life

Two distinct empty points, each adjacent only to the **same connected chain**, give a simple sufficient two-eye certificate: the opponent cannot fill either while the other remains a liberty. Two liberties alone do not prove life. A point surrounded by stones of one color can be a false eye when part of its wall is a separate chain that can be captured.

Seki is mutual life arising from the capture sequence. It is not a special rule forbidding moves into shared liberties: such a move can be legal but losing. These games do not use a complete automatic life-and-death classifier for either play or scoring.

## Relationship to other Go rules

This is **graph-area Go with no suicide and positional superko**, inspired by the [Tromp–Taylor logical rules](https://tromp.github.io/go.html). Tromp–Taylor permits self-capture; this variant rejects it. The optional agreed-removal extension on that page is not selected. These variants also do not adopt AGA pass-stone accounting or negotiated settlement, or Japanese territory/seki exceptions. The [BGA's AGA rules overview](https://www.britgo.org/rules/aga.html) describes a different rules package.

No strong Go computer opponent is supplied. The provisional komi should be reassessed using purposeful playtesting with colors exchanged; ordinary-board komi and weak random play do not establish balance here.

## Position editor and studies

The editor may temporarily contain an unfinished diagram. Before starting a study, every chain must have a liberty and the next player must be selected. A study begun from a diagram has its own history starting at that diagram and is clearly labelled:

**Study: earlier history unknown; repetitions counted from this setup.**

Placements, captures, suicide, superko and passes work as above within that study. A move might have been illegal under an unknown earlier history. The source game is never changed by creating a study, and the study is not an official empty-start game. Its area calculations and terminal outcomes remain labelled as study results, including after saving and loading.

Two passes end a study branch. Copying its diagram into another study creates a new branch; it does not resume the old one. Undo or replay within a known game retains the exact earlier action prefix and its repetition history. Editing a diagram to start fresh must explicitly create a new study with unknown prior history.

The Study tab returns to an existing study without replacing its recorded history. **Begin new study** uses the edited diagram; replacing an existing study requires confirmation.

## State, replay and implementation contract

The graph IDs are `go-mobius-9x11-v1`, `go-klein-9x18-v1` and `go-genus2-staircase-9x9-v1`. The rule ID is `graph-area-no-suicide-psk-v1`.

Canonical indices are `9*y+x` on Möbius/Klein and `81*sheet+9*y+x` on genus two, with zero-based displayed coordinates. In the raw genus-two gluing coordinates, `rawY=(displayedY+sheet)%9`; the second chart's displayed row is its raw row minus one modulo nine.

A game state includes the exact graph/rules identity, board, next color, every historical coloring, consecutive passes, fixed komi and any terminal result. Two identical visible boards with the same next player and pass count can still permit different moves because their histories differ.

Komi is stored as an integer `komiHalfPoints`. The exact score difference is

$$D_{1/2}=2(A_B-A_W)-\mathrm{komiHalfPoints}.$$

The software accepts komi from minus the board's point count through plus that count, in half-point steps: ±99 points on Möbius and ±162 on the closed boards. This is a practical input range, not a change to the game's turn or termination rules. It keeps scoring exact without floating-point comparisons.

Saved game records contain the full action sequence, including passes and resignation, plus a checked state snapshot. Game import replays from empty and rejects discrepancies in board, history, turn, pass count or result. A board-only setup is not a saved legal game. Study records use a distinct format with the validated initial diagram and next player, and replay their own actions from that setup. Game and study importers do not accept each other's formats.

Analysis of a known game uses a separate analysis document containing its complete validated game prefix; it retains known repetition history and reopens in Study. Unfinished editor diagrams have their own format and reopen in Edit. Browser file imports are limited to 10 MB. This file-size limit does not impose a move limit on the rules.

Saving while reviewing an earlier move retains the complete line, including later moves. A `surface-go-replay` version 1 document wraps the underlying game, study or analysis document together with its viewed `cursor`. Import validates the complete underlying record and the cursor before restoring either. Endpoint records retain their existing formats, and older records remain readable.

Spatial symmetry may transform the entire state with **one common graph automorphism**; independently normalizing each historical board would change superko and is invalid.

Color exchange maps current and historical stones and the next player. It reverses the uncompensated area margin, but also maps the Black-first convention to White-first. Fixed White komi is not invariant under that exchange. These symmetries do not prove equal chances for first and second play.

### Pure JavaScript API

From the project root in a JavaScript module:

```js
import {
  createGoGame, applyGoAction, explainGoPlacement,
  scoreGoGame, exportGoGame, importGoGame,
} from './src/go-engine.js';

let game = createGoGame('mobius', {komiHalfPoints: 1});
const move = applyGoAction(game, {type: 'place', at: 49});
if (move.ok) game = move.state;
const explanation = explainGoPlacement(game, 49); // occupied
const provisionalArea = scoreGoGame(game);
const saved = JSON.stringify(exportGoGame(game));
const restored = importGoGame(JSON.parse(saved));
```

`applyGoAction` also accepts `{type:'pass'}` and `{type:'resign'}`. Invalid actions return the original state and a reason such as `occupied`, `suicide`, `superko` or `ended`. States, adjacency lists and query results are immutable. `getGoGroups` returns chains with distinct liberty sets; `getGoLegalPlacements` returns all currently legal points. Colors are `0` empty, `1` Black and `2` White.

`createGoStudy(variant, board, {turn, komiHalfPoints})` begins an explicitly labelled study from a stable numeric board array. Use `exportGoStudy` and `importGoStudy` for its distinct replay format. `inspectGoBoard(variant, board)` reports groups and stability while editing, without creating any history. `cardinalGoNeighbor(variant, point, direction)` accepts `N`, `E`, `S` or `W` and returns an adjacent point, or `null` at a Möbius boundary.

The test fixtures cover every adjacency, seam-connected chains, repeated contacts to one liberty, simultaneous capture, suicide, genuine and false eyes, seki, snapback, ordinary and triple ko, history-dependent legality after save/load, passes, actual-board area and both exceptional genus-two faces. Each tactical setup includes a legal empty-start replay prefix. These checks establish conformance for the stated examples; they do not measure strategic balance.

## Why play terminates

Captures are well defined: separate opposing chains are not adjacent to each other, and removing stones only creates liberties. A newly captured chain had the played point as its last liberty. After capture and the suicide check, every surviving chain therefore has a liberty.

Every placement creates a board coloring absent from the finite history. On $N$ points there are at most $3^N$ colorings, hence fewer than $3^N$ accepted placements. No two passes can occur without ending the game, so the total number of accepted turns is at most $2\cdot3^N$. This establishes finiteness, not a useful estimate of typical game length.
