# The engines

> The shared engines under Raphaël Anjou's experiments. The named experiments are studies that run on these; this is the apparatus they share. The CSP presets and the Verhaard reimplementation are documented here; the constructive engines are not yet published.

- Canonical page (with interactive figures/demos): https://eternity2.dev/research/lab/experiments/raphael-anjou/engines/
- Updated: 2026-07-15

---
The [experiments](/research/lab/experiments/raphael-anjou) are studies: each
one asks a question and reports the board it reached. But most of them are not
built from nothing. They run on a small set of shared engines, and the same
engine turns up under experiment after experiment. This page documents that
apparatus once, so the studies can point here instead of re-explaining the
machine each time.

<div className="not-prose grid gap-4 md:grid-cols-2">
  - [The CSP presets, measured](/research/lab/experiments/single-core-benchmark/csp-presets) — A single constraint-propagation engine with interchangeable orderings and propagators: arc-consistency, colour-graph matching, several fill orders. Faithful reimplementations of known community techniques, run under a dozen presets on the ten variants so the exact cost of each knob is on the leaderboard rather than argued about.
  - [The Verhaard reimplementation](/research/lab/experiments/louis-verhaard/verhaard-reimpl) — A from-scratch reimplementation of Louis Verhaard's eii method, since his own binary ships no source and will not run here. Set-composition swap-annealing under the 2×2-tiling metric; on the real five-clue puzzle it reaches 438 of 480, single core.
</div>

The two constructive engines these studies also lean on, the beam producer and
the ALNS polish stage, do not yet have their own write-ups here; those pages are
held back for now, and neither is on the benchmark leaderboard. Where an
experiment steers one of them, its own page says what that engine does at the
level the study needs, so nothing below depends on reading a page that is not
here yet. The two engines documented and measured in full are the CSP presets
and the Verhaard reimplementation.

## Why document the engines apart from the experiments

A study and its engine answer different questions. The engine answers *how the
search works*, the data structures, the fill order, the propagators, and it
is reused unchanged across many studies. The study answers *what happens when
you point that engine at a particular idea*: a learned prior, a fixed border, a
break mask. Keeping them apart means a reader who wants to understand PRIOR's
prior does not have to re-read how a beam works, and a reader who wants the
engine gets it in one place, current and complete.

Where these engines race head to head under a fixed budget, they appear on the
[single-core benchmark](/research/lab/experiments/single-core-benchmark). The
general theory behind each method lives in the
[build-a-solver](/research/build) section; these pages are the specific engines
as built and measured here.
