LIBRARY
Library · 5. Models and Tools · mark ACFL

The board instrument

Claim

A working board: size from 1 to 12, both orientations, live legality and room checking, and SVG out.

Construction

The board draws a 2N × 2N lattice of alternating circle and diamond cells and lets tiles be placed on it, each tile covering one circle and one adjacent diamond. Pointing at a cell shows a ghost of the tile that would be placed; the direction comes from which cell edge the pointer is nearest. Clicking a placed tile lifts it.

The controls are a size slider from 1 to 12, a frame toggle between upright and 45°, and four display switches: wave lines, lattice, coordinates and frame. Four colour swatches, then Fill, Undo, Clear and Save SVG. Coordinates are drawn only up to size 6, where they still fit.

Its geometry is stated in a header comment rather than left implicit: 100 units to a cell, circle radius r = P/√2, lattice pitch p = r√2, and a frame margin of ½ + 1/√2 cells, which leaves exactly r of solid material at the frame's thinnest point.

s = r√2
Fig. 1 — the lattice the board draws, at pitch s = r√2.

What it establishes

One thing is live and one is quoted, and the difference matters. Room left is computed on every move: a real maximum bipartite matching over the free cells, circles against diamonds, found by augmenting paths, so the board knows whether what remains can still be filled and flags the readout when it cannot. That is the matching argument of Claim O made operational.

Full boards and all states are a hard-coded table, carried for sizes 1 to 8 and annotated in the file as verified by transfer-matrix count. The full-board column is the published domino-tiling sequence: 2, 36, 6728, 12988816 and on to 2,444,888,770,250,892,795,802,079,170,816 at size 8, and those eight values were re-derived independently during this pass. The all-states column was not, and nothing outside the file supports it. Above size 8 the panel says plainly that it has not been counted.

Every curve is an arc. The tile, the diamond, the field boundary and the wave are all emitted as arc commands, and the field boundary's own comment states the rule: each edge cell contributes one 90° arc, convex over a circle and concave over a diamond.

Where it sits on the parity question

This file is one of the four sources in the parity dispute of Claim G, and it is the one that is executable. It hard-codes circles on odd cells: const isCircle = (u,v) => ((u+v) & 1) === 1;

Whatever convention the library settles on, this line is either the standard or the thing to change.

Note

This is the tool you actually used to look at boards. Worth saying what it changed about how you think about them.

Open questions

  • The slider runs to 12 and the counts stop at 8. Either extend the table or cap the slider.
  • Changing size wipes the board rather than rescaling it, which is defensible but undocumented in the interface.
  • Nothing persists: no saved boards, no URL state. A board is a session.
  • The “all states” column has no outside check, unlike the full-board column.

Checks

WhatHowSource
Full-board counts2, 36, 6728, 12988816 … to size 8, matching the published sequenceOEIS A004003
Counts as carriedA hard-coded COUNTS table, annotated “verified by transfer-matrix count” for both columnsnuna-board (2).html
Full-board column, re-derivedAll eight values reproduced by an independent dynamic-programming count during this pass—
All-states columnNot independently checked. No outside source exists for it—
Room leftMaximum bipartite matching over free cells, recomputed on every movenuna-board (2).html
Exact arcsnunaPath, diamondPath, fieldBoundary and wavePath emit arc commands onlynuna-board (2).html
Frame margin½ + 1/√2 cells, leaving r of material at the thinnest pointnuna-board (2).html
Parity conventionCircles on odd cells, hard-codednuna-board (2).html