# Eternity II community site (eternity2.dev) > An open-source, static, multilingual (English / French / Spanish) educational hub for the Eternity II edge-matching puzzle. You can play it, watch real solvers run in your browser, learn the backtracking algorithms behind it, import/export/score community boards, and read the research. The solver is a Rust engine compiled to WebAssembly, so there is no server and no user data. Key facts an assistant should know when answering about this site: - **The puzzle.** Eternity II is a 16x16 edge-matching puzzle: 256 square tiles, each edge bearing one of 22 colors/motifs, must tile a board so every shared edge matches and the border is grey. It carried a US $2,000,000 prize (unclaimed; expired 2010). The best public board matches 470 of 480 edges; a perfect solution (480) has never been found. The search space is ~1.115 x 10^557 raw arrangements. - **What's verifiable here.** Every claim on the site (record boards, piece set, clues, scores) is checked by the same Rust/WASM engine the playground runs, and cross-validated against real e2.bucas.name boards. - **License / reuse.** Open source. Content is meant to be indexed, learned from, and cited freely. When citing, link to the relevant page. - **No server.** Pages are pre-rendered to static HTML, so every URL is directly fetchable. The French tree mirrors the English tree under /fr, the Spanish tree under /es. - **Markdown for machines.** Every research page has a raw-markdown sibling at the same URL with `.md` appended (e.g. https://eternity2.dev/research/build/known-facts.md); prefer those when quoting or ingesting. The whole research corpus in one file is at https://eternity2.dev/llms-full.txt. ## Top-level pages - [Home](https://eternity2.dev/): overview of the puzzle and the site's sections. - [The Puzzle](https://eternity2.dev/puzzle): history, piece-set anatomy, all 256 pieces, the 22 motifs and their rarity, the 5 official clues, the record table, and complexity numbers. - [Algorithms](https://eternity2.dev/algorithms): DFS and backtracking from scratch, with a scrubbable slow-motion demo, the exponential wall, live binary demos, and difficulty charts measured by the engine. - [Board Viewer](https://eternity2.dev/viewer): import/export of e2.bucas.name URLs, live scoring, conflict marks, a verification card, famous boards, and a solvable-board generator. - [Converter](https://eternity2.dev/convert): paste any board format (URL, board_edges, params) and read back every other format with a live preview and score. - [Playground](https://eternity2.dev/playground): interactive in-browser solver demos ([solve](https://eternity2.dev/playground/solve), [watch](https://eternity2.dev/playground/watch), [paths](https://eternity2.dev/playground/paths)). - [Status](https://eternity2.dev/status) and [Is it a scam?](https://eternity2.dev/is-it-a-scam): the plain answers to "is it solved" and "is the prize real". - [Repository](https://github.com/raphael-anjou/eternity2): the Rust to WASM engine, the static site, the contribution guide. ## Research: why the puzzle is hard - [Why it's hard](https://eternity2.dev/research/why/) (md: https://eternity2.dev/research/why.md): Why Eternity II is hard by design: a puzzle tuned to resist cleverness, with Selby and Riordan hired to vet out statistical shortcuts. The measurable structural walls (rigidity, entropy, forbidden patterns) explain the gap between the best known 470/480 board and a full solution. - [The border balance](https://eternity2.dev/research/why/border-balance/) (md: https://eternity2.dev/research/why/border-balance.md): Eternity II's border balance: every colour the border shows the interior, the interior shows back — an exact multiset equality. A deficit Δ>0 proves a board can never be completed; Δ=0 proves nothing, as swaps and interior errors slip past. A cheap late-search pruner cutting 10–28% of dead-ends. - [Complex theory: counting the search before you run it](https://eternity2.dev/research/why/complex-theory/) (md: https://eternity2.dev/research/why/complex-theory.md): Brendan Owen's complex theory estimates how wide the Eternity II search tree is at every depth, and how many solutions exist at all. It reveals the funnel: a vast plateau where backtrackers spend 99% of their time, and shows why scan order, not raw speed, decides a solve. - [Designed to be unsolvable: the recipe](https://eternity2.dev/research/why/design-recipe/) (md: https://eternity2.dev/research/why/design-recipe.md): Eternity II's difficulty is engineered by recipe: a compact 16x16 board, 256 unique pieces with no symmetries or duplicates, a split 17+5 palette, flat color frequencies, and one expected solution. Brendan Owen and the community reverse-engineered every ingredient within weeks of the 2007 launch. - [Entropy and the area law](https://eternity2.dev/research/why/entropy-area-law/) (md: https://eternity2.dev/research/why/entropy-area-law.md): Eternity II has two rules — edges must match, and each piece is used once — and all the difficulty lives in the second. An entropy area law, measured via Shannon entropy and Fekete's subadditivity lemma, shows the use-once constraint, not edge-matching, is what makes the puzzle hard. - [Forbidden patterns](https://eternity2.dev/research/why/forbidden-patterns/) (md: https://eternity2.dev/research/why/forbidden-patterns.md): Almost every small patch of Eternity II pieces is impossible: for a 2×2 square, 99.72% of the ways to place four pieces can never be made to match. This proven forbidden-pattern density is what arc-consistency exploits, and why local moves so rarely lead anywhere. - [Where you place the hints beats how many](https://eternity2.dev/research/why/hint-geometry/) (md: https://eternity2.dev/research/why/hint-geometry.md): On a 16×16 puzzle built to Eternity II's exact colour recipe, hint position beats hint count: 18 scattered hints solve it in minutes, while 80+ piled into contiguous rows barely match, because 99% of the search happens past depth 132 of 256. The hints that count are the ones reaching the endgame. - [Is this instance NP-complete, and how do I encode it?](https://eternity2.dev/research/why/how-hard-is-this-instance/) (md: https://eternity2.dev/research/why/how-hard-is-this-instance.md): Edge matching is NP-complete as a family, but one fixed 16×16 board is a constant, not a problem, so complexity theory says nothing about it directly. Real hardness is the family worst case plus E2 empirical difficulty over a ~10^557 space, with SAT, exact-cover DLX, and ILP encodings. - [Where the mismatches live](https://eternity2.dev/research/why/mismatch-geometry/) (md: https://eternity2.dev/research/why/mismatch-geometry.md): A near-perfect Eternity II board doesn't scatter its few errors; it packs all of them into one band of five rows, set by the direction the search filled the board. McGavin's 469 hides its eleven mismatches up top; KEYRING and GAUNTLET pile theirs at the bottom, the same picture mirrored. - [No forced moves](https://eternity2.dev/research/why/no-forced-moves/) (md: https://eternity2.dev/research/why/no-forced-moves.md): Eternity II has no forced moves: every one of its 196 interior pieces has 73 to 137 possible right-hand neighbours and is never pinned to a single option, so the usual logic lever is gone. That freedom is the flip side of forbidden patterns — lots of local slack, almost no global consistency. - [Tuned to the hardness peak](https://eternity2.dev/research/why/phase-transition/) (md: https://eternity2.dev/research/why/phase-transition.md): Eternity II's 22 colors split 17 interior to 5 frame-only, and that count of 17 sits exactly at the phase transition where edge-matching puzzles are hardest. Brendan Owen derived the 17+5 design to be maximally hard; later SAT/CSP hardness research confirmed the peak. - [Piece theft, where solvers die](https://eternity2.dev/research/why/piece-theft/) (md: https://eternity2.dev/research/why/piece-theft.md): Why Eternity II solvers fill a few rows for free, then die in the middle of the board: a scarce piece was spent in the wrong place rows earlier, starving a later cell. The mechanism is piece theft, and Régin's all-different reasoning predicts exactly where the starvation strikes. - [Why a faster computer doesn't help](https://eternity2.dev/research/why/prune-vs-speed/) (md: https://eternity2.dev/research/why/prune-vs-speed.md): Why a faster computer doesn't help on Eternity II: shrinking the search space beats searching faster by an exponential margin, while a speedup is just a constant divisor. E2 is tuned so almost nothing local can be pruned, which is why even legal pruning rarely pays and no engine has reached 480. - [The rare colors live on the frame](https://eternity2.dev/research/why/rare-color-geography/) (md: https://eternity2.dev/research/why/rare-color-geography.md): Five of Eternity II's 22 colours appear only on the border ring, each on exactly 24 edges, never once in the interior. This structural split leaves the 14x14 interior to seventeen common colours with no rare, tightly-constraining signal, which is a big part of why interior search barely grips. - [The rigidity wall](https://eternity2.dev/research/why/rigidity-wall/) (md: https://eternity2.dev/research/why/rigidity-wall.md): Every Eternity II record board is frozen in place: you cannot nudge your way from a great board to a perfect one. MIP proofs of halo-optimality across several record basins, out to a multi-cell halo, show the core is locally rigid — which is why polishing a strong board never lifts its score. - [Why basin-hopping looks impossible](https://eternity2.dev/research/why/sigma-cycles/) (md: https://eternity2.dev/research/why/sigma-cycles.md): If polishing a great Eternity II board can't improve it, maybe you can jump to a different great board — but on every record pair tested, you can't. The sigma-cycle structure between strong boards shows why basin-hopping looks impossible, computed against McGavin's 469 record. - [Which wall stops which method](https://eternity2.dev/research/why/walls-and-methods/) (md: https://eternity2.dev/research/why/walls-and-methods.md): A map pairing every method against the four structural walls that make Eternity II hard: no forced moves, the hardness peak, the area law, rigidity. PALIMPSEST, PRIOR, KEYRING, GAUNTLET and more, each at the wall it attacks and the score where it stalls below the 470 ceiling and the 480 solution. ## Research: how to build a solver - [Build a solver](https://eternity2.dev/research/build/) (md: https://eternity2.dev/research/build.md): Build an Eternity II solver: validation data to check your edge-matching and constraint code, a one-page map of every known approach, the technique shelf, the record timeline from Verhaard's 467 to Blackwood's 470, the proven dead ends, and how to run this project's own code. - [Analysis](https://eternity2.dev/research/build/analysis/) (md: https://eternity2.dev/research/build/analysis.md): Analysis methods that measure Eternity II rather than solve it: parity arguments, solution counting, and other tools for locating the search's hard walls. Each technique is covered in turn — what it is, what it reached on the real 16×16 board, where it stops, and the labs behind it. - [Parity arguments](https://eternity2.dev/research/build/analysis/parity-arguments/) (md: https://eternity2.dev/research/build/analysis/parity-arguments.md): Parity arguments count an edge-matching board from both sides, so any disagreement is a one-pass impossibility proof, no search needed. The Eternity II 479 story: kubzpa's claim, psykowally's 478, and Verhaard's refutation through 60 unscored grey border edges, where such proofs quietly leak. - [Solution counting: measuring what you cannot find](https://eternity2.dev/research/build/analysis/solution-counting/) (md: https://eternity2.dev/research/build/analysis/solution-counting.md): How the Eternity II community learned to count solutions no one has ever found: exact censuses on small boards, a first-moment expectation formula converging on 14,702, and culled searches trusted only when four independent runs agreed. Design, difficulty and verification, from the 2007 list. - [A map of every known approach](https://eternity2.dev/research/build/approaches-map/) (md: https://eternity2.dev/research/build/approaches-map.md): A survey of every family of attack tried on Eternity II: systematic backtracking, SAT/CSP and ILP encodings, local search and ALNS, learning from strong boards, and hardware roads. What each reached on the 16×16 board, where it walls out, and the one insight running through them all. - [Backtracking](https://eternity2.dev/research/build/backtracking/) (md: https://eternity2.dev/research/build/backtracking.md): Depth-first search for Eternity II done seriously: the order a solver visits cells moves tree size by orders of magnitude, and restarts turn a heavy-tailed runtime into a portfolio. A guide to the backtracking family behind every record 16×16 board, technique by technique with real measurements. - [Fill orders](https://eternity2.dev/research/build/backtracking/fill-order/) (md: https://eternity2.dev/research/build/backtracking/fill-order.md): How the order a backtracker visits Eternity II's 256 cells moves search-tree size by orders of magnitude — the highest-leverage free choice in the solver. Fixed vs dynamic, why scanline wins on the balanced 5/17 design, the magic 10×16 square, border-first as a trap, and Verhaard's comb search. - [Restarts and heavy tails](https://eternity2.dev/research/build/backtracking/restarts/) (md: https://eternity2.dev/research/build/backtracking/restarts.md): Why Eternity II backtrackers show heavy-tailed runtimes that vary by powers of ten, and why cut-off-and-restart portfolios beat plain search. The community measured it in 2007; Gomes, Selman and Kautz named it; the record solvers of Blackwood, McGavin and Verhaard are built on it. - [The community's benchmarks](https://eternity2.dev/research/build/benchmarks/) (md: https://eternity2.dev/research/build/benchmarks.md): How the Eternity II community built a shared test culture despite a copyright ban on sharing the pieces: derived-count census protocols, the Txibilis and beginner suites, node-count duels, full enumerations from the 6×6 to hints.20.3, and the one 10×10 benchmark still standing open today. - [The four clue puzzles](https://eternity2.dev/research/build/clue-puzzles/) (md: https://eternity2.dev/research/build/clue-puzzles.md): Tomy's four Eternity II clue puzzles: solve and submit one to reveal one prize-board piece's exact square and rotation. The broken online checker that accepted a wrong answer, the eBay grey market, why puzzles 5 and 6 never shipped, and a second life as complex-theory test cases and donor sets. - [Build boards up](https://eternity2.dev/research/build/construct/) (md: https://eternity2.dev/research/build/construct.md): Building a high-scoring Eternity II board from an empty grid instead of digging with backtracking: beam search keeps the best partial boards alive and grows them cell by cell — the workhorse behind this project's from-scratch builders, and why breadth alone stalls deep in the interior. - [Beam search](https://eternity2.dev/research/build/construct/beam-search/) (md: https://eternity2.dev/research/build/construct/beam-search.md): Beam search keeps the K best partial Eternity II boards alive and grows them cell by cell — this project's from-scratch builder. Linear in K, it climbs to boards in the mid-450s of 480, then stalls at the piece-theft depth wall that only destroy-and-repair polish can pass. - [The dataset](https://eternity2.dev/research/build/dataset/) (md: https://eternity2.dev/research/build/dataset.md): A public CC0 Eternity II dataset in two parts: 14 benchmark instances to solve and a corpus of 7,658 distinct strong boards scoring 400 to 470 to learn from. Every score is recomputed from the board's edges rather than trusted, and the corpus is verified to be genuinely diverse. - [Dead ends](https://eternity2.dev/research/build/dead-ends/) (md: https://eternity2.dev/research/build/dead-ends.md): Eternity II approaches that look promising but don't move the score, documented so you don't repeat them: probability propagation that fades two cells out, macro-tiles that speed search without shrinking the domain, border-supply pruning that ran 8% slower for a 0.0014% gain. - [Exact methods](https://eternity2.dev/research/build/exact/) (md: https://eternity2.dev/research/build/exact.md): Complete Eternity II solvers that can prove things: SAT and CSP encodings, ILP relaxations, exact-cover (DLX), meet-in-the-middle, and iterated projection maps. These exact methods stall on the full 16×16 board, but their verdicts earn their keep as impossibility proofs on sub-boards. - [Exact cover and dancing links](https://eternity2.dev/research/build/exact/exact-cover-dlx/) (md: https://eternity2.dev/research/build/exact/exact-cover-dlx.md): Eternity II as exact cover: Knuth's Algorithm X and dancing links (DLX) encode it faithfully via XCC with colours. Where DLX shines — exhaustive counts, uniqueness proofs, small boards — and the two structural walls that stop it cracking the 16×16: a tree it never shrinks, and no partial credit. - [Iterated maps and divide-and-concur](https://eternity2.dev/research/build/exact/iterated-maps/) (md: https://eternity2.dev/research/build/exact/iterated-maps.md): The physicist's attack on Eternity II: Veit Elser's difference map and divide-and-concur recast constraint satisfaction as geometry, a point bouncing between two projections whose fixed points are solutions. Famed on the PNAS cover, tied to Douglas-Rachford, tested once and never on the full puzzle. - [LP and ILP relaxations: half a piece everywhere](https://eternity2.dev/research/build/exact/lp-relaxations/) (md: https://eternity2.dev/research/build/exact/lp-relaxations.md): Eternity II as an integer program: relax the integrality and LP hits zero error in seconds on a board of fractional pieces, but whole pieces collapse the score onto a 420-440 edge plateau, with an ILP wall at 8x8. The ~478 LP bound stays too loose to certify; assignment subproblems still pay off. - [Meet in the middle](https://eternity2.dev/research/build/exact/meet-in-the-middle/) (md: https://eternity2.dev/research/build/exact/meet-in-the-middle.md): Meet-in-the-middle on Eternity II: the Horowitz-Sahni trick trading memory for a halved exponent, enumerating two board halves and joining them on a shared seam. Its cost, the disjoint-pool accounting E2 forces, and what the BANDSAW experiment measured, plus the one-sided method that beat it. - [SAT and CSP encodings](https://eternity2.dev/research/build/exact/sat-csp-encodings/) (md: https://eternity2.dev/research/build/exact/sat-csp-encodings.md): Encoding Eternity II as SAT/CSP clauses for industrial solvers: why complete CDCL search stalls on the full 16×16 board despite Heule's compact seam encoding. The instances load fine but never solve, yet their sub-second UNSAT verdicts prove local impossibility. - [Go faster](https://eternity2.dev/research/build/faster/) (md: https://eternity2.dev/research/build/faster.md): Raw Eternity II throughput: the engineering craft below the algorithm — lookup tables, cache-sized structs, generated code — and spreading work across many machines. It sets whether a node costs 26 cycles or 2,600, yet the pages here show speed alone never moves the wall. - [Distributed solving: swarms, syndicates, and core farms](https://eternity2.dev/research/build/faster/distributed-solving/) (md: https://eternity2.dev/research/build/faster/distributed-solving.md): Fifteen years of distributed Eternity II solving: BOINC swarms, prize syndicates, PlayStation clusters and scavenged core farms. Why 10^19 operations dented nothing on the full puzzle, how a DFS partitions into prefix bands, first-row lists and sweeps, and how owned fleets hit finite targets. - [Solver engineering: the craft below the algorithm](https://eternity2.dev/research/build/faster/solver-engineering/) (md: https://eternity2.dev/research/build/faster/solver-engineering.md): Eternity II solver engineering, technique by technique: candidate lookup tables, minimal perfect hashing, cache-sized structs, code generation and compiler tricks that decide whether a placement node costs 26 cycles or 2,600. Twenty years of the community's engineering ledger. - [Board & puzzle formats, written down](https://eternity2.dev/research/build/formats/) (md: https://eternity2.dev/research/build/formats.md): The byte-level spec for every Eternity II board and puzzle format: board_edges, the hints clue list, e2pieces.txt, Puzzle CSV, site Puzzle JSON, the BoardDoc output and the viewer URL. How each encodes the grey border, and why the edges alone recover piece identity and rotation. - [GPU & hardware](https://eternity2.dev/research/build/hardware/) (md: https://eternity2.dev/research/build/hardware.md): Throwing silicon at Eternity II: GPU ports, FPGA pipelines, distributed sweeps and the quantum proposal, with a ledger of what each actually delivered on the real 16x16 board. Technique by technique, where each stalls, and why the wall it meets is memory and structure, not arithmetic. - [FPGA solving: mapped but never driven](https://eternity2.dev/research/build/hardware/fpga-solving/) (md: https://eternity2.dev/research/build/hardware/fpga-solving.md): FPGA solving for Eternity II: Michael Field's 2014 design put the lookup tables in on-chip block RAM and projected 5 billion tile placements per second per chip. He built a hyper-pipelined prototype on real silicon, then the road stopped: no full-puzzle run, BRAM caps instances, a fun dead end. - [GPU solving: the wall is memory, not arithmetic](https://eternity2.dev/research/build/hardware/gpu-solving/) (md: https://eternity2.dev/research/build/hardware/gpu-solving.md): GPU solving for Eternity II: eighteen years of community attempts showed divergent branching and per-thread state defeat the parallel promise, since the placement loop was already memory-bound on CPUs. But GPUs do shine at exhaustive verification and enumeration. - [Quantum approaches: two speedups at their true price](https://eternity2.dev/research/build/hardware/quantum/) (md: https://eternity2.dev/research/build/hardware/quantum.md): Quantum computing versus Eternity II: Grover's quadratic speedup and QUBO annealing on D-Wave, priced against the puzzle's real numbers. Grover's square root of the ~10^45 tree still needs ~10^22 sequential steps; the QUBO is far too large to embed. Nineteen years of talk, zero runs. - [Known facts & numbers](https://eternity2.dev/research/build/known-facts/) (md: https://eternity2.dev/research/build/known-facts.md): The Eternity II numbers researchers keep re-deriving, each with provenance: the 256-piece definition, five clue placements, scoring on 480 edges, and the record table. Plus search-space sizes (~10^557), the 470/480 canonical ceiling, Riotte's strict 464, symmetry and colour counts. - [Learn from strong boards](https://eternity2.dev/research/build/learning/) (md: https://eternity2.dev/research/build/learning.md): Learning from strong Eternity II boards: rather than search from scratch, this family mines the corpus of already-found boards for structure and feeds it back as a search bias. Covers position priors, learned move-ordering, anti-pattern mining, record decoding, and where the signal collapses. - [Anti-pattern mining](https://eternity2.dev/research/build/learning/anti-pattern-mining/) (md: https://eternity2.dev/research/build/learning/anti-pattern-mining.md): Anti-pattern mining for Eternity II: two frequencies separate the real structure strong boards share from the consensus trap that caps every search just short of the top, then steer an ALNS search to break the trap patterns. PALIMPSEST used this to reach 463; banning traps outright fails. - [Corpus priors](https://eternity2.dev/research/build/learning/corpus-priors/) (md: https://eternity2.dev/research/build/learning/corpus-priors.md): Corpus priors for Eternity II: tally where pieces sit in strong boards, or how often a piece serves a scarce demand, then use that count as a tiny tiebreak in beam-search construction. PRIOR reaches 460 from an empty grid; raise the weight past a tiebreak and the score collapses. - [Decoding records](https://eternity2.dev/research/build/learning/decoding-records/) (md: https://eternity2.dev/research/build/learning/decoding-records.md): Decoding record Eternity II boards: rebuild a known record exactly, piece for piece, until your search reproduces it; the ingredient that lets it is what your search was missing. REPLAY did this on the strict-460 witnesses, exposing a one-break-per-cell cap; raising it to two lifted 457/458 to 460. - [Learned move-ordering](https://eternity2.dev/research/build/learning/learned-value-ordering/) (md: https://eternity2.dev/research/build/learning/learned-value-ordering.md): Learned move-ordering for Eternity II: rank candidate placements by several signals mined from strong boards and let them vote, not one fixed rule that dead-ends every run. The KEYRING experiment weighs piece-in-position, adjacency and a 2x2 patch prior, reaching 460. - [When learning collapses](https://eternity2.dev/research/build/learning/when-learning-collapses/) (md: https://eternity2.dev/research/build/learning/when-learning-collapses.md): Where learning from strong Eternity II boards stops: used as a tiebreak a learned signal reliably reaches the top of a search's own range, but never raises the ceiling. Over-trust it and the search collapses; LODESTONE, PRIOR, KEYRING and PALIMPSEST all hit the same rigidity wall. - [Local search](https://eternity2.dev/research/build/local-search/) (md: https://eternity2.dev/research/build/local-search.md): Local search for Eternity II: start from a full, imperfect board and improve it by moves — destroy-and-repair, simulated annealing, tempering, evolutionary recombination. The most reliable polishers, and the clearest demonstrations of the rigidity wall, where every one stalls at the same height. - [Evolutionary and genetic approaches](https://eternity2.dev/research/build/local-search/evolutionary/) (md: https://eternity2.dev/research/build/local-search/evolutionary.md): Evolutionary and genetic approaches to Eternity II: why crossover fights the puzzle's permutation structure head-on, and every one stalls in the low 400s. The complete record of what the community bred, measured and abandoned, from Chapple's launch-week GA to antminder's 462/480 hybrid. - [Local search and ALNS](https://eternity2.dev/research/build/local-search/local-search-alns/) (md: https://eternity2.dev/research/build/local-search/local-search-alns.md): Adaptive large-neighborhood search (ALNS) on Eternity II: destroy part of a board, rebuild the hole smarter, and let the algorithm learn which demolitions pay. This project's most reliable polisher — it lifts beam builds to record-class boards — yet it hits a hard wall it can never cross. - [Simulated annealing and parallel tempering](https://eternity2.dev/research/build/local-search/parallel-tempering/) (md: https://eternity2.dev/research/build/local-search/parallel-tempering.md): Simulated annealing and parallel tempering on Eternity II: mismatches as energy, temperature as tolerance for worse moves. Annealing built Verhaard's long-standing 467/480 record; the replica ladder crosses barriers a lone cold chain cannot, yet iso-score plateaus make both hit the same wall. - [Reduce the search](https://eternity2.dev/research/build/reduce/) (md: https://eternity2.dev/research/build/reduce.md): Reducing the Eternity II search means throwing away hopeless states before you waste time on them: propagation to a fixed point, the all-different matching filter, learned no-goods, and the edge-slipping invariant. Each page measures how far that reaches on the full 16×16, and where it fades. - [All-different, Régin's matching filter](https://eternity2.dev/research/build/reduce/alldiff-regin/) (md: https://eternity2.dev/research/build/reduce/alldiff-regin.md): Eternity II's 256 cells must hold 256 distinct pieces: one global all-different. Jean-Charles Régin's 1994 bipartite-matching filter prunes it completely in polynomial time, and its per-colour cousin is the strongest propagator measured on this engine, lifting a backtracker to 449 of 480 edges. - [Arc consistency, from AC-3 up](https://eternity2.dev/research/build/reduce/arc-consistency/) (md: https://eternity2.dev/research/build/reduce/arc-consistency.md): Arc consistency on Eternity II: Mackworth's AC-3 and its optimal successors like AC-2001 shrink each cell's candidate list until every neighbour supports it. Watch AC-3 settle to a fixed point, see why path consistency costs more than it saves, and where AC turns unsound under mismatch budgets. - [Edge slipping](https://eternity2.dev/research/build/reduce/edge-slipping/) (md: https://eternity2.dev/research/build/reduce/edge-slipping.md): Louis Verhaard's edge slipping: let the backtracker place mismatched pieces at chosen depths late in the search, each slip costing one point but multiplying reachable target boards by orders of magnitude. His 467 recurred 50+ times; the same depth-gated schedule, retuned, drives Blackwood's 470. - [No-good learning: remembering why you failed](https://eternity2.dev/research/build/reduce/nogood-learning/) (md: https://eternity2.dev/research/build/reduce/nogood-learning.md): No-good learning on Eternity II: a failed subtree is a theorem this partial state can never extend, so store it and never re-enter. The community tried both flavours, transposition tables over the search frontier and mined constraints about the puzzle, and measured where memory truly pays. - [Run it yourself](https://eternity2.dev/research/build/run-it-yourself/) (md: https://eternity2.dev/research/build/run-it-yourself.md): Run the whole Eternity II research wiki, the Rust engine and every result from one GitHub repository. Clone it, rebuild the engine to WebAssembly with wasm-pack, launch the site, and reproduce each research result: deterministic runs come back byte-for-byte, longer ones ship the board they found. - [How the record solvers search](https://eternity2.dev/research/build/solvers/) (md: https://eternity2.dev/research/build/solvers.md): How the record Eternity II solvers actually search: all are depth-first backtrackers at heart, set apart by three choices — the cell fill order, the heuristics picking which piece goes first, and how they schedule late edge mismatches to bend the endgame. Blackwood, Verhaard, McGavin decoded. - [The techniques](https://eternity2.dev/research/build/techniques/) (md: https://eternity2.dev/research/build/techniques.md): The Eternity II technique shelf: the algorithms and pruning ideas behind every serious solver, each with what it is, what it costs, and what it actually bought on this puzzle. Not inventions but constraint programming, combinatorics and cryptanalysis, each measured or marked unmeasured. - [The community's toolbox, 2007–2026](https://eternity2.dev/research/build/tooling/) (md: https://eternity2.dev/research/build/tooling.md): Nineteen years of Eternity II community software, catalogued: manual-placement GUIs, board editors, public solvers, generators and viewers. Plus the quieter layer that let tools interoperate without shipping the copyrighted pieces: e2pieces.txt, CRC-16 checksums, the board-in-a-URL format. - [The builder's toolkit](https://eternity2.dev/research/build/toolkit/) (md: https://eternity2.dev/research/build/toolkit.md): A ready-to-use Eternity II starter kit: a Rust workspace with scoring, board generation (real colour balance), batch generation with pinned clues, format conversion, and a solve→sweep→compare loop. You write only the Solver; set it up in your coding agent with one line. - [The variants and the claims that live there](https://eternity2.dev/research/build/variants/) (md: https://eternity2.dev/research/build/variants.md): Every Eternity II that isn't the real 256-piece puzzle: the TopCoder Marathon variant, Takahashi's unverified 468, McGavin's unframed 480/480 that isn't a solution, mixed donor-set boards, and the no-starter $1000 challenge, all held in a claim quarantine, out of the records table. ## Research: the lab notebook (findings & experiments) - [The lab](https://eternity2.dev/research/lab/) (md: https://eternity2.dev/research/lab.md): The wiki's open notebook: original Eternity II structural findings and named search experiments, each credited to the researcher who ran it and reproducible from source. Original ideas and faithful reimplementations of community techniques, published to one editorial standard and open for your own. - [Experiments](https://eternity2.dev/research/lab/experiments/) (md: https://eternity2.dev/research/lab/experiments.md): The lab's named Eternity II search experiments, one section per researcher: each a real run with its idea, best board and open questions. Some are original ideas, some faithful reimplementations of a known technique; every result is reproducible, and each run states its hardware and core-hours. - [Joshua Blackwood's solver](https://eternity2.dev/research/lab/experiments/joshua-blackwood/) (md: https://eternity2.dev/research/lab/experiments/joshua-blackwood.md): Joshua Blackwood's open-source C# solver, the program that found the 470 record that still stands. Built and run here exactly as he published it, measured single-core, then tested against the real five-clue Eternity II puzzle to see what its speed actually buys. His code, his algorithm. - [Blackwood's solver, decoded and run here](https://eternity2.dev/research/lab/experiments/joshua-blackwood/solver/) (md: https://eternity2.dev/research/lab/experiments/joshua-blackwood/solver.md): Blackwood's record 470-class C# backtracker, decoded via Jef Bucas and run single-core on an Apple M1: as published it reaches 248/256 pieces (454/480 edges), yet stalls near 45/256 once the five official clues are pinned. Inside: the colour-quota schedule and why hand-tuning proved near-optimal. - [Louis Verhaard's eii](https://eternity2.dev/research/lab/experiments/louis-verhaard/) (md: https://eternity2.dev/research/lab/experiments/louis-verhaard.md): Louis Verhaard's eii found the 467 and won Eternity II's only prize, but it shipped as a source-less Win32 binary that will not run here. This page records his method and that gap, and points to a faithful reimplementation, bylined to Raphaël Anjou, that rebuilds it as a runnable engine. - [Verhaard's eii: the solver that won the only prize](https://eternity2.dev/research/lab/experiments/louis-verhaard/eii/) (md: https://eternity2.dev/research/lab/experiments/louis-verhaard/eii.md): Louis Verhaard's eii: the depth-first backtracker behind the 467/480 that won Eternity II's only prize, the $10,000 runner-up. Reconstructed from his posts: forward pruning, comb-search fill orders, depth-gated edge slipping, a Markov-tuned slip schedule, and why his Win32 binary won't run here. - [Verhaard reimplementation](https://eternity2.dev/research/lab/experiments/louis-verhaard/verhaard-reimpl/) (md: https://eternity2.dev/research/lab/experiments/louis-verhaard/verhaard-reimpl.md): A from-scratch reimplementation of Verhaard's eii method: set-composition swap-annealing under the 2×2-tiling metric, reaching 438/480 on the real five-clue puzzle, single core. Numeric constants recovered byte-exact from eii.exe; the run is committed and rerunnable, so 438 is checkable. - [How the lab publishes](https://eternity2.dev/research/lab/experiments/methodology/) (md: https://eternity2.dev/research/lab/experiments/methodology.md): The lab's editorial standard: how a piece of Eternity II research travels from unpublished work to a published page. Three axes classify every page — the contribution (solver, analysis, theory, negative result and more), the review tier, and the rigor and reproducibility behind its central claim. - [Peter McGavin's engine](https://eternity2.dev/research/lab/experiments/peter-mcgavin/) (md: https://eternity2.dev/research/lab/experiments/peter-mcgavin.md): Peter McGavin's own C backtracker, the fastest raw Eternity II solver the community has measured. Fetched from the mailing list, compiled on an Apple M1, and pointed at the real 256-piece puzzle. His algorithm and his code; the running, building, and numbers are documented and measured here. - [McGavin's C backtracker: the throughput story, built here](https://eternity2.dev/research/lab/experiments/peter-mcgavin/backtracker/) (md: https://eternity2.dev/research/lab/experiments/peter-mcgavin/backtracker.md): McGavin's C backtracker decoded and built on an Apple M1: a 2007 optimization recipe compounded for two decades through generated code, lookup tables and counter tricks. Single core, it reaches ~204/256 pieces at ~109M placements/s on the real 256-piece Eternity II. - [Raphaël Anjou's experiments](https://eternity2.dev/research/lab/experiments/raphael-anjou/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou.md): Raphael Anjou's Eternity II research notebook: shared engines, score-chasing combination pipelines, three single-paradigm studies (DFS, repair, learning), and exact meet-in-the-middle endgame solves. Every method and board is open and checkable; the best reaches 463 of 480 matched edges. - [The DFS study](https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study.md): A controlled study of depth-first backtrackers for Eternity II: what each fill order, look-ahead heuristic, and the depth-gated edge-break mechanism actually buys, measured on ten corner-pinned variants, one core, 60 seconds, with every board re-scored by one canonical scorer out of 480. - [What each idea buys](https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study/findings/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study/findings.md): The DFS study's findings: fill order, heuristics and breaks compared on Eternity II. Row-major wins; MRV rescues border-first; breaks smash the depth wall past depth 245 to the low 430s. On a pinned grid, McGavin and Blackwood collapse: node count is not score. - [How the study is built](https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study/method/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/dfs-study/method.md): The engine behind the DFS study: one composable depth-first backtracker where every variant is a single declared change over a parent. A shared IO layer, one canonical scorer that re-scores every board, and clear definitions of node throughput, max depth, breaks and backtracks. - [The reference engine behind this site](https://eternity2.dev/research/lab/experiments/raphael-anjou/engine/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/engine.md): This site's Rust-to-WebAssembly Eternity II backtracker: a reference engine, not a record machine, ported four times and parity-tested byte-for-byte. It powers every live demo, checks the node counts and scores the wiki quotes, and runs in your browser so you can re-run every claim. - [The engines](https://eternity2.dev/research/lab/experiments/raphael-anjou/engines/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/engines.md): The shared engines behind Raphael Anjou's Eternity II experiments: a CSP preset engine (arc-consistency, colour-graph matching, fill orders) and a from-scratch Verhaard reimplementation reaching 438 of 480 single core. The apparatus the studies run on; the beam and ALNS engines stay unpublished. - [Going fast: when a solver spends its budget on speed](https://eternity2.dev/research/lab/experiments/raphael-anjou/going-fast/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/going-fast.md): A field guide to speed-first Eternity II solvers: what raw throughput buys, the three distinct meanings of 'fast' (placements per second, matched edges out of 480, and swarm aggregate), and why the community's fastest engine still cannot solve the puzzle. - [The hint study](https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study.md): A controlled study of hint placement for Eternity II: the five official clue hints never help a chronological backtracker on these boards. They cost a compact sweep ~10 to 20 points and cripple a hint-seeking order by ~345, because a pinned piece is a constraint the fixed fill order must satisfy. - [What the study found](https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study/findings/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study/findings.md): The hint study's findings: on generated Eternity II boards, the five official clue hints never help a chronological backtracker, costing a compact sweep ~10 to 20 points and crippling a hint-seeking order by ~345, because a pinned piece is a hard constraint a fixed fill order must satisfy. - [How the study is built](https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study/method/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/hint-study/method.md): The apparatus behind the hint study: a size-parametric Eternity II board generator, a family of fill-path backtrackers, one canonical scorer, and the pinned-seam floor that keeps a hint-count comparison meaningful. With the census-balance and frontier-branching arithmetic in full. - [The JIT backtracker: portable Rust that ties hand-tuned C on hard boards](https://eternity2.dev/research/lab/experiments/raphael-anjou/jit-backtracker/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/jit-backtracker.md): A portable Rust Eternity II backtracker that compiles per-puzzle Rust at runtime, taken from 43 to 123 million search-nodes/s single core. Measured headless against McGavin's hand-tuned C on the same Apple M1: a tie on hard deep boards, ~44% of its speed on easy ones. - [Learning from strong boards](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning.md): Five experiments in learning from strong Eternity II boards: PRIOR, KEYRING, LODESTONE, PALIMPSEST and REPLAY read a CC0 corpus of 7,658 boards for structure and feed it back into a search as a bias. Each reaches the top of its own range fast, and all five hit the same rigidity wall. - [KEYRING](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/keyring/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/keyring.md): KEYRING builds an Eternity II board from scratch, ranking each next piece by three signals learned from past strong boards. It reached 460 of 480 in a board family no earlier search had cracked — an experiment in turning corpus knowledge into a construction heuristic. - [LODESTONE](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/lodestone/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/lodestone.md): LODESTONE nudges an Eternity II from-scratch beam search to commit rare pieces early, via a scarce-demand prior used only as a tiebreak. It does not raise the ceiling but reliably reaches the top of its range: median 449 to 451, spread tightening to 450-451; over-weighting it collapses the build. - [PALIMPSEST](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/palimpsest/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/palimpsest.md): PALIMPSEST reads every strong Eternity II board to find the habits that quietly hold a board back, then breaks them. It produced this project's best board — 463 of 480 — by mining anti-patterns from the corpus and steering the search away from them. - [PRIOR](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/prior/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/prior.md): PRIOR builds an Eternity II board from nothing, breaking ties by where pieces tend to sit in the strong boards we already have. It reaches 460 of 480 with no starting board to copy — a test of whether a positional corpus prior alone can steer construction. - [REPLAY](https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/replay/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/learning/replay.md): REPLAY rebuilds the community's strict 460 Eternity II boards exactly, and in doing so reveals the move ordinary solvers can't make: paying two mismatches at a single cell. A reconstruction that decodes how the record boards were actually reached, not just their final score. - [Meet in the middle](https://eternity2.dev/research/lab/experiments/raphael-anjou/meet-in-the-middle/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/meet-in-the-middle.md): Meet-in-the-middle endgame experiments for Eternity II: enumerate a small region from two ends and join on the seam where colours agree and piece sets don't overlap, returning the exact best completion with a proof. Not a run at the score, but a measure of where exact methods stop being affordable. - [BANDSAW](https://eternity2.dev/research/lab/experiments/raphael-anjou/meet-in-the-middle/bandsaw/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/meet-in-the-middle/bandsaw.md): BANDSAW solves a band of Eternity II rows exactly by meeting in the middle, to find the true best ending and to measure how far ahead an endgame can be decided. An analysis using bidirectional exact search to probe the board's endgame structure rather than to set a record. - [Combination pipelines](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines.md): Raphael Anjou's Eternity II combination pipelines: named search experiments that chain several engines to push the score, building a board with one and lifting or finishing it with another. Each records its idea, best board and open questions, ordered by what it taught, not by score. - [CLOISTER](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/cloister/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/cloister.md): CLOISTER fixes a perfect Eternity II border, then searches the interior with the border's edges treated as hard constraints from the very first cell. This border-first pipeline reached 453 of 480 — a test of how much a locked, matching frame helps or hurts the interior search. - [GAUNTLET](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/gauntlet/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/gauntlet.md): GAUNTLET runs one beam search across nine scan orders (row, zigzag, spiral, diagonal…) so it samples different regions instead of converging to one: the zigzag order, lifted with ALNS, reached a new 458 board in an unseen corner family — proof that scan order beats the random seed for diversity. - [LADDER](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/ladder/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/ladder.md): LADDER throws hundreds of cheap short searches at the Eternity II board, keeps only the deepest starts, and promotes the survivors through longer and longer rounds. This tournament-style restart pipeline reached 451 of 480, spending compute on the openings that reach furthest. - [MIDDEN](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/midden/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/midden.md): MIDDEN decides in advance not when an Eternity II board may break, but where: it confines every mismatch to a chosen shape of cells, then searches for the best shape. This break-placement pipeline reached 452 of 480 by treating the location of flaws as the thing to optimize. - [MOSAIC](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/mosaic/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/mosaic.md): MOSAIC tiles the Eternity II board into sixteen 4×4 blocks and solves each to a proven MaxSAT optimum with core-guided RC2, seams handled as soft clauses so a block never fails. Reserving the ~8% scarcest pieces against piece theft, a 16-level backtracking search reaches 448 of 480 from scratch. - [STAGED](https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/staged/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/pipelines/staged.md): STAGED builds the whole Eternity II board from scratch with no pre-set frame, in stages, letting the border emerge last from whatever pieces are left. This experiment reached 436 of 480, testing whether deferring the frame instead of fixing it first helps or hurts the search. - [The repair study](https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study.md): A single-core study of destroy-and-repair local search for Eternity II: what each decision in the loop is worth, measured one change at a time on ten corner-pinned variants in 60 s. Where to destroy, how to rebuild, when to accept, when to restart, and which starting board wins. - [What each decision buys](https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study/findings/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study/findings.md): The repair study's five head-to-head comparisons: blind random destroy beats every conflict-targeting operator, and construction sets the score, not repair. Simulated annealing is the strongest acceptance rule, while exact refill and restarts buy nothing at a sixty-second, single-core budget. - [How the study is built](https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study/method/) (md: https://eternity2.dev/research/lab/experiments/raphael-anjou/repair-study/method.md): The engine behind the repair study: one composable destroy-and-repair loop where a variant is a declared change over a parent, on an incrementally-maintained mismatch map. It shares the canonical scorer and e2-core / e2-io library with the DFS study, and defines every statistic the results raise. - [Single-core benchmark](https://eternity2.dev/research/lab/experiments/single-core-benchmark/) (md: https://eternity2.dev/research/lab/experiments/single-core-benchmark.md): Fifteen Eternity II solvers on ten corner-pinned variants, single core, 60 seconds each. The finding: node count is not score. Our Verhaard- and Blackwood-style backtrackers reach a mean near 440, naive DFS 365, the best CSP preset 183; every board canonically re-scored against the 464 record. - [CSP presets, measured](https://eternity2.dev/research/lab/experiments/single-core-benchmark/csp-presets/) (md: https://eternity2.dev/research/lab/experiments/single-core-benchmark/csp-presets.md): One arc-consistency CSP engine run under a dozen ordering and propagator presets on ten corner-pinned Eternity II variants: what each classic knob is worth in points, why border-first tops the sweep near 183, and why every preset stays below half a contender score. ## Research: history & community - [History & community](https://eternity2.dev/research/community/) (md: https://eternity2.dev/research/community.md): Two decades of Eternity II told as a story: how the record climbed to 470/480, the record boards, the record-holders and theorists, and the academic papers. Plus how to contribute, and the ~300 MB groups.io archive of decades of solvers, proofs, and databases. - [The notable boards](https://eternity2.dev/research/community/boards/) (md: https://eternity2.dev/research/community/boards.md): The notable Eternity II boards: Verhaard's prize 467, the Blackwood-solver line from 468 through McGavin's 469 to the 470/480 ceiling, and the strict five-clue record from Gauthier's 460 to Riotte's 464. Who found each and when, and every bundled board opens in the viewer to re-score edge by edge. - [The hunt, a history (part I: 2000–2009)](https://eternity2.dev/research/community/hunt/) (md: https://eternity2.dev/research/community/hunt.md): Eternity II history, part I (2000-2009), told from the community's mailing-list archive: a group founded before the puzzle existed, the 256-piece launch, the theory race that reverse-engineered the 17+5 design, and the $10,000 scrutiny prize won for 467/480 under a borrowed name. - [The hunt, a history, part II: 2009–2026](https://eternity2.dev/research/community/hunt-part-2/) (md: https://eternity2.dev/research/community/hunt-part-2.md): Eternity II history, 2009-2026: the $2,000,000 contest dies with its solution locked in a safe, and 467 stands for a decade. Then Reddit outsider Joshua Blackwood rewrites the record book, reaching 470/480, while McGavin solves Owen's 10x10 and the archive survives Yahoo's shutdown by days. ## Optional - [French home](https://eternity2.dev/fr): the whole site mirrored under /fr; skip unless answering in French. - [Spanish home](https://eternity2.dev/es): the whole site mirrored under /es; skip unless answering in Spanish. - [Sitemap](https://eternity2.dev/sitemap.xml): machine-readable list of every page.