GEOMETRY → WEIGHTS → MOTION
Spectral playground
Move a point on the circle. Change the world inside the diamond.
Scroll / pinch to zoom · drag to pan · double-click to fit
Run settings
Changing the engine or seed resets the tiling. The CPU fallback runs in a worker. GPU speed depends on your device.
THE MODEL
A circle of parameters.
A diamond of possibilities.
The four families stay in cyclic order α+ → β+ → α− → β−. Each potential domino crosses two train tracks with labels a and b. In genus zero its weight is |a − b|; in higher genus we use the prime form divided by the two adjacent face theta factors. We use an equivalent rational coordinate on the circle to calculate the same probabilities.
Inside a flippable 2×2 block, let H and V be the products of the two horizontal and two vertical weights. The update chooses vertical with probability V / (H + V). Each step chooses one of four disjoint block classes, so its flips can run in parallel.
Applying weights keeps the current tiling and pauses the run. Press Play to equilibrate again. Many flips alone do not certify mixing.
Based on Bobenko & Bobenko, §§2, 3 and 8 ↗. Higher genus uses Schottky sums, theta functions and a discrete Abel map on every face. Truncation diagnostics are estimates, not certified error bounds. Large or close circles may be rejected.