Two views of the same solvers: first, 14 mechanisms in 6 families, each shown step by step; then 19 teams and systems, with their benchmark-specific scores and costs.
14
Techniques
6
Families
19
Teams & systems
87.5%
ARC-1 best (o3, 2024)
The lay of the land
Two questions split the whole field.
Every ARC solver answers two questions. What is the solution? — an explicit program you can read (induction), or the output grid predicted directly (transduction). And when do you learn? — is the model frozen, or does it adapt to the task in front of it at test time?
Those two axes organize the map and gallery below. The 2024 breakthroughs — test-time training, product-of-experts, o3's guided search — all sit on the adapt-at-test-time side. The program-synthesis lineage runs down the induction side, from a hand-built DSL to LLMs writing thousands of Python programs. A few outliers — pure compression, frozen pattern-completion — stake out the corners.
Read the mechanisms first, then follow them into the competition history below to see who used each one and how far it got, benchmark by benchmark.
Plate · The Method Genealogy
Where solver mechanisms recur and combine.
The map below answers where methods sit; this reading river shows combinations and family resemblances. Follow execution-filtered programsThe gate is cheap but leaky. Across BARC's runs about 9% of programs that satisfy every training pair still fail the held-out test; majority vote squashes only roughly half of those false positives. into refinement loopsThe iteration itself does real work, not just more samples. In Berman's genetic loop about 42% of wins came from generations 2–4, and deep evolution reached ~75% against ~70% for one large first generation., compare frozen pattern completion with test-time adaptation, and see how search reappears in interactive worlds.
Method genealogy: from programs to worlds that answer back
Equal-width lanes show combinations and methodological analogies, not causal descent, popularity, or citation volume.
Question answered: Which mechanisms recur or combine across ARC solver families?
A curated reading map of recurring mechanisms. Solid edges mark a combination; dashed edges mark a close methodological analogy. Neither establishes citation volume or causal descent.
DSL search → Hypothesis searchmoves the explicit rule into language + code
Hypothesis search → Program samplingscales execution-filtered sampling
Program sampling → Evolutionary synthesisadds iterative selection and repair
DSL search → BARC ensemblesupplies an explicit-program branch
Program sampling → BARC ensemblesupplies neural program induction
LLM patterning → TTTcontrasts frozen prediction with per-task adaptation
TTT → Product of Expertscombines adaptation with multi-view agreement
TTT → LPNmoves adaptation into a latent program
DreamCoder → CodeItshares a learn-from-search loop
CodeIt → Evolutionary synthesisturns candidate feedback into refinement
Program sampling → o3 guided searchreplaces broad sampling with a learned guide
o3 guided search → Graph explorationcompares search over traces with search over world states
Plate · The Technique Map
Every method, placed.
Each mark is a technique. Left–right: does it predict the grid or search for a program? Bottom–top: is the model frozen, or does it adapt at test timeNot a metaphor: the model literally rewrites a small slice of its own weights per task, then discards them. MIT's test-time training bought up to a 6× gain over a fine-tuned baseline, taking an 8B model to 53% on ARC-AGI-1.? Colour marks the family. Hover for detail; click to jump to its card. Positions are a reading aid, not a measurement.
SynthesisTest-timeEvolutionCompressSearchLLM
Plate · The Gallery
All 14, with the wiring shown.
Grouped by family in a curated order. Follow each numbered flow to see what the system does, then read where it succeeds and where it stallsMany meet the same verifier problem: replaying every demonstration proves consistency, not the intended rule, so false positives limit filtered search..
Program synthesis
6
T01
DSL + Brute-Force Search
~20%
Johan S. Wind ("icecuber") · 2020
SynthesisARC-AGI-11st, 2020 Kaggle (private)
A fully symbolic solver: hand-build a library of small grid operations and brute-force compositions of them until one reproduces every training pair.
The mechanism
1Seed a pool of "pieces" with the input grid(s)
2Greedily apply ~142 hand-crafted unary grid functions, growing a DAG of new pieces up to a bounded depth
3Search for a composition of pieces that reproduces every training output
4Keep only programs matching every pair (exact-match gate)
5Run a surviving program on the test input
Why it worksGrids are tiny (≤30×30, 10 colors), so a good hand-crafted library plus depth-limited search covers enough of the transformation space — and exact match on every pair is a clean, high-precision correctness gate.
Where it stopsPrimitives are authored by one human, so coverage caps near 20%; search explodes with depth (~70s at depth 2 → ~9h at depth 3). No learning, no cross-task transfer.
Prompt GPT-4o to write thousands of candidate Python transforms per task, keep only those that replay every training pair, and majority-vote the survivors.
The mechanism
1Pack the task into a ~30k-token prompt with grids in several redundant encodings
2Sample ~8,000 candidate Python transform functions from GPT-4o
3Execute each; keep only programs that reproduce every training output exactly
4Show the ~12 closest failures their wrong output and re-prompt for repairs (~3k samples → +13 pts)
5Run survivors on the test input; submit the top-3 by majority vote
Why it worksThe number of sampled programs is a near-monotone axis (~+3% per doubling): GPT-4o's program distribution places real mass near correct solutions, so execution filtering surfaces working programs where random search never would.
Where it stopsUses ~1000× more test-time compute than prior work (prize-ineligible), steep diminishing returns (~70% would need millions of draws), and false positives that fit train but fail test.
Train two matched neural models — one induces a Python program, one directly predicts the output — and ensemble them, because they solve strongly disjoint sets of tasks.
2An LLM remixes seeds into hundreds of thousands of synthetic tasks (ARC-Heavy, ARC-Potpourri)
3Fine-tune two Llama-3.1-8B models: an induction model and a transduction model
4Induction samples ~20k programs, keeps those satisfying f(train)=train-out; transduction decodes the output directly
5Ensemble: use a training-consistent program if one exists, else fall back to the transduction grid
Why it worksEven with matched data and base model, induction wins precise/compositional tasks while transduction wins fuzzy/perceptual ones — they fail on different tasks, so the union approaches average-human performance.
Where it stopsThe complementarity is empirical with no mechanism; induction has a ~9% false-positive rate that caps precision, and transduction can't verify itself. Best ensemble still trails the best humans (~98%).
Don't ask the LLM for the answer. Ask it for many natural-language rules, implement each as Python, and keep the program that replays every pair.
The mechanism
1Prompt the LLM for ~64 natural-language hypotheses of the rule
2Prune to ~8 (by LLM summarization or human selection)
3Generate K Python programs implementing each surviving hypothesis
4Execute against the training pairs; accept any program that reproduces all outputs
5On failure, run up to 3 rounds of execution-feedback repair
Why it worksSplitting reasoning into two levels — "what is the rule" (language, good at the gist) then "how to code it" (verifiable Python) — beats jumping straight to code; ablations show both levels help independently.
Where it stopsPerception is the ceiling: GPT-4 barely parses a 2-D grid from text. Hypothesis generation is the bottleneck — a correct rule was produced for only 49/100 tasks — and search is uninformed.
Butt, Manczak, Wiggers, Cohen et al. (Qualcomm AI) · 2024
SynthesisARC-AGI-1full ARC eval · SOTA at the time
A self-improving loop that turns a code model's failed attempts into dense supervision by relabeling each program's actual output as the goal it "solved."
The mechanism
1A 220M code model samples up to 24 DSL programs per task
2Execute each to get its actual output grid
3Hindsight-relabel: treat that output as the intended goal, store (goal, program)
4Fine-tune the policy on a prioritized replay buffer of these experiences
5Repeat sample-then-learn for 100 meta-iterations, bootstrapping the policy
Why it worksARC reward is almost always zero — a model never samples the exact target by chance — so ordinary RL has nothing to learn from. Relabeling manufactures a dense signal; ablations show it is the single most important component.
Where it stopsPlateaus at ~15%. It is not prior-free: it needs a hand-built DSL, an interpreter, and seed programs; reward is exact-match only, and most relabeled goals do not match the original task.
A wake-sleep loop that grows its own DSL of reusable abstractions and trains a neural network to search it — solving inductive tasks better with experience.
The mechanism
1Start from a small library of typed program primitives (a prior over programs)
2WAKE — search programs, guided by a neural recognition model, until one fits the examples
3SLEEP·abstract — compress solved programs into new named library functions
4SLEEP·dream — retrain the recognition model on replays plus sampled "fantasies"
5Iterate: the library gets richer and the search policy gets sharper (bootstrapping)
Why it worksFramed as Bayesian program learning: the library is a generative prior, solving is posterior inference, and the neural model is an amortized approximation that makes search tractable — so accuracy and search efficiency compound.
Where it stopsSearch cost grows with library richness; abstraction can't invent a concept never once used, risking local optima; fantasies may drift from the real task distribution.
wake-sleeprecognition modelabstraction by compressionBayesian program learning
Akyürek, Damani, Zweiger, Kim, Andreas (MIT) · 2024
Test-timeARC-AGI-18B model · 61.9% ensembled
Temporarily rewrite a model's own weights at inference on a loss built from each task's own demonstrations, predict, then throw the update away.
The mechanism
1Start from a base LM fine-tuned on ARC-like data
2For each task, build a leave-one-out training set from its demo pairs
3Multiply it with invertible augmentations (D8 symmetries + color permutations)
4Train a fresh LoRA adapter for a few steps, then discard it after the task
5Predict on every augmented view, un-transform, and vote by self-consistency
Why it worksIn-context learning plateaus on out-of-distribution tasks; letting the model briefly rewrite a small slice of its weights explicitly adapts it to the exact task in front of it. A per-instance adapter is a distinct axis of test-time compute.
Where it stopsA fresh adapter per task strains an offline budget; the augmentation trick assumes geometric/color symmetry and degrades on counting or relational rules; ARC-AGI-1 gains collapse to single digits on ARC-AGI-2.
Franzen, Disselhoff, Hartmann ("the ARChitects") · 2024
Test-timeARC-AGI-11st, ARC Prize 2024 · 71.6% public
Fine-tune an open LLM, adapt a per-task LoRA, then score each candidate grid under every symmetry of the task and multiply — only jointly-plausible answers survive.
The mechanism
1Fine-tune Mistral-NeMo-Minitron-8B on augmented ARC data
2Test-time training: fit a rank-32 LoRA per task (~51s on an RTX 4090)
3Generate candidates by depth-first search over output tokens, pruning low-probability branches
4Re-express each candidate under many invertible perspectives (D8, color, reordering) and score under each
5Multiply the per-perspective probabilities; submit the top-2
Why it worksEvery perspective is a semantics-preserving view of the same task, so multiplying probabilities enforces cross-view agreement and demotes answers that are only plausible from one angle — many partial readings combine into a strong solver.
Where it stopsNeeds a rich family of invertible perspectives; DFS assumes the answer sits in the high-probability region; ARC-AGI-1 dominance did not transfer to ARC-AGI-2 (low single digits).
product of expertsinvertible perspectivesDFS token samplerper-task LoRA
Learn a continuous latent space of implicit programs, then search it with gradient ascent at test time for the latent that best explains the task.
The mechanism
1An encoder maps each example pair to a distribution over a latent program space
2Train with a leave-one-out variational objective (reconstruct the held-out output)
3"Grad-k": bake gradient-search steps into training so the latent landscape is navigable
4At test, initialize the latent from the encoder over the training pairs
5Run gradient ascent on the latent, then decode the test input with the refined latent
Why it worksBecause the decoder is differentiable, test-time search over the latent is cheap gradient ascent instead of stochastic sampling — and training with that same search shapes a landscape that is actually searchable. Adaptation is built into the architecture.
Where it stopsAbsolute out-of-distribution performance stays low (~15%); gradient ascent finds only local optima; the latent program is not inspectable or verifiable like explicit code.
latent program spacevariational trainingtest-time gradient searchdifferentiable decoder
Turn LLM program synthesis into a genetic algorithm: breed a population of Python transforms, score them against the demos, keep the fittest, and refine across generations.
The mechanism
1Generate ~250 Python transforms from chain-of-thought prompts (Claude 3.5 Sonnet)
2Score each with two-tier fitness (exact grid solves, then per-cell correctness)
3Select the fittest as parents; re-prompt to breed improved children
4Run a pooled track that recombines functions solving different example subsets
5Repeat for up to 4 generations (~500 functions/task); run survivors on the test input
Why it worksThe model emits executable programs, so each candidate is auto-scored against the demos. Depth beats breadth — ~42% of wins came from generations 2–4 — showing iterated refinement, not just more samples, does real work.
Where it stopsFixed lineages waste compute, and per-cell fitness is a heuristic that admits false positives. The deeper "verifier problem": no below-AGI checker reliably confirms correctness, capping filtered evolution.
evolutionary test-time computetwo-tier fitnessmulti-parent recombinationverifier problem
Solve each puzzle with no pretraining, no data, and no search — train a tiny fresh network to compress the visible grids, and let the missing answer fall out of the shortest description.
The mechanism
1Initialize a fresh ~76K-parameter equivariant network per puzzle (answer removed)
2Sample a latent code and decode it into a color distribution for every cell
4Compression squeezes redundant bits toward zero, so the shortest regenerating model emerges
5Read the answer off the blank cells; submit two guesses by lowest bit-length
Why it worksThe Minimum Description Length principle operationalizes intelligence-as-compression: by Occam's razor the shortest description consistent with the visible grids tends to fill the unknown cells correctly — and lower-bit solutions empirically correlate with more accurate ones.
Where it stopsStructurally local: can't count, do arithmetic, extend long-range patterns, or reason about topology. ~4% on ARC-AGI-2, ~20 min/puzzle, and often contains but fails to rank the right answer.
Minimum Description Lengthequivariant architecturecompression-as-confidenceinference-time training
At test time, generate many candidate chains-of-thought — each a natural-language program for the task — and use a learned evaluator to search and select among them.
The mechanism
1Given a novel task, generate many candidate reasoning traces at test time
2Treat each chain-of-thought as a natural-language program for that specific task
3Score and search among candidates with a learned evaluator (AlphaZero-style loop)
4Spend more or less search compute (low-efficiency used ~172× more)
5Execute the selected trace to produce the output grid
Why it worksInstead of the standard "memorize, fetch, apply" loop, the chain-of-thought becomes the artifact of knowledge recombination — a program the model builds and runs for that task — so guided search gives genuine test-time adaptability, not just a bigger forward pass.
Where it stopsExtreme cost (~$20 to thousands per task vs ~$5 for a human); still fails some very easy tasks; projected under ~30% on ARC-AGI-2; proprietary and short of the open, cost-capped prize bar.
DL-guided program searchchain-of-thought as programtest-time computememorize-fetch-apply
A training-free agent for the interactive benchmark: build an explicit directed graph of the states and actions you've seen, and always head toward the nearest unexplored frontier.
The mechanism
1Segment each frame into connected components; mask the status bar
2Rank components into five visual-salience priority tiers
3Hash the frame to a state node; store each action as an edge with outcome + successor
4Pick a random untested action within the active priority threshold
5If none locally, path to the nearest state that has one; else relax the threshold and recurse
Why it worksA cheap deterministic explorer keeps explicit state-tracking, so it can spend the environment's full ~96,000-step budget productively and never re-tread known paths — where LLM agents stall at ~4,000 model-gated steps.
Where it stopsExploration cost grows with the reachable state space (intractable on large games); exact frame-hashing fragments under cosmetic change; it explores but never induces a rule — it records transitions, it doesn't model them.
visual-salience tiersdirected state graphfrontier-driven explorationinteraction-limited
Mirchandani, Xia, Florence, Zeng et al. (DeepMind) · 2023
LLMARC-AGI-1a non-trivial subset, no training
Treat a frozen off-the-shelf LLM as a general sequence pattern machine: serialize the grids as tokens and let the model complete the pattern — no task-specific training.
The mechanism
1Serialize each ARC grid into rows of number/character tokens (ASCII art)
2Concatenate the demonstration input→output pairs into the prompt
3Ask a frozen pretrained LLM to continue the sequence with the held-out output
4Read the answer off the model's continuation
5(Variant) permute the vocabulary so the model must rely on structure, not token meaning
Why it worksPerformance remains above chance after random token remapping, suggesting that structural pattern continuation contributes alongside learned token semantics.
Where it stopsToken-invariance is only partial; the solvable subset skews to local/geometric tasks; flattening a grid to 1-D discards 2-D adjacency; everything is bounded by context length and prompt format.
general pattern machinesequence transformationtoken-invariancesequence completion
The mechanisms above become a competition history here. After o3 reached 87.5% on ARC-AGI-1, ARC-AGI-2 reset the task distributionMethods near the top of ARC-AGI-1, including test-time training and the ARChitects' product of experts, fall to the low single digits on ARC-AGI-2's compositional tasks.; its 2025 winner reached 24%. ARC-AGI-3 then changed the protocol to interactive environments: the 2025 preview peaked at 12.58%, while 2026 milestones are reported by placement. Each line is a protocol-labeled frontier, not one shared leaderboard.
ARC-AGI-1ARC-AGI-2ARC-AGI-3Human ≈ 98–100%
ARC-AGI-1 · 2020 → 2024
Five years unbeaten, then a step-function.
The original benchmark ran two great competitions — the 2020 Kaggle challenge and the 2024 ARC Prize — and crept from ~0% to ~5% until, in one season, test-time adaptation drove the private record from 33% to 55.5% and OpenAI's o3 vaulted to 87.5%. Here's the record, in order. Full deep dive in Part Ⅴ.
The first public competition, in 2020, was won by a solo entrant with a hand-built search and no learning at all. It set a template — DSL + brute-force + exact-match verifier — that held for three years while large language models stalled below 5%.
2024 was the break. The ARC Prize's first big season found that per-task adaptation, not scale, was the lever: test-time training and LLM-guided program synthesis pushed the private state of the art from ~33% to 55.5%. Then o3, spending enormous test-time compute on guided search, cleared the mid-80s — and forced the benchmark's redesign.
Why it mattersFirst human-competitive score — at tens to thousands of dollars per task. Not a competition entry; a frontier-lab result that triggered ARC-AGI-2.
The 2025 ARC Prize was the first run against the harder, compositional ARC-AGI-2 — with efficiency as a first-class axis. ~1,455 teams entered; the top private score was just 24%, and the 85% grand prize went unclaimed. The winning pattern of the year was the refinement loop. Full deep dive in Part Ⅵ.
ARC-AGI-2 keeps the grid format but selects tasks that require multiple interacting rules, sequential steps, and in-context symbol definition. Every task is solved by at least two humans; the strongest reported machine results remain far lower.
The defining move of 2025 was the refinement loop: propose a candidate, verify it against the training pairs, turn the error into feedback, and iterate. It came in three flavors — evolutionary program synthesis, application-layer harnesses wrapping a commercial model with a verifier, and weight-space refinement of tiny from-scratch networks. And because cost is now scored, the cheap winners matter as much as the strong ones.
Figure · Score × reported cost
Selected ARC-AGI-2 score–cost frontiers
Systems nearer the upper-left deliver more score for less reported inference cost; each line is computed only among the shown systems in one evaluation class.
Question answered: Which selected ARC-AGI-2 systems buy more score for their reported inference cost?
Frontier status is computed only within the same declared evaluation class and only among the systems shown. Contest, commercial-model, and refinement results share axes for orientation but are not treated as one controlled evaluation.
2025 contest · private evalARC Prize verified · commercial modelsARC Prize verified · refinement harnessNon-dominated within shown evaluation class
Underlying score, cost, protocol, and frontier status.
ARC-AGI-3 is the interactive benchmark: an agent dropped into a game with no instructions or stated goal. Its 2025 preview rewarded informed search; the first 2026 milestone rewarded local vision-language policies with memory, structured actions, and executable tools. These are milestone winners, not a final podium.
The 2025 preview exposed an interaction bottleneck: a model call per step limited LLM agents to roughly 4,000 interactions while cheap deterministic explorers could spend far more of the available budget. The July 2026 winners attack that bottleneck with small local models, short action queues, context eviction, memory, and targeted heuristics.
The technical report still draws a hard harness boundary. A seen environment can move from 0% harness-free to 97.1% with custom scaffolding and still fail to transfer. The Milestone #1 entries were evaluated on a hidden holdout, but the public report does not yet establish a reusable dynamics model and goal representation that transfers across the whole private distribution.
The DuckTufa LabsCurrent milestone leader
Local LLM + Python REPL20261st · Milestone #1
Why it mattersThe only milestone winner centered on agent-written code. It is first at a mid-season checkpoint, not the final 2026 champion.
RekiGemma-4-31B vision policyCurrent milestone
Vision policy + reflection20262nd · Milestone #1
Why it mattersAblatable memory and exploration priors reduce wasted actions; transferable world modeling remains unproven.
Per-step LLM controller2025~0.1–0.5% · <1% at launch
Why it mattersSub-1% versus 100% human: failing at exploration, modeling, goal inference, and planning at once.
ARC-AGI-3 has a 2025 preview and a July 2026 milestone podium, but no final 2026 winner. The deep dive on every solution, the technical-report protocol, and the open questions lives in Part Ⅶ.
Five eras of solving, one idea underneath — and three lessons that hold across every mechanism above.
2020
Hand-built search
Icecuber
A solo DSL + brute-force search wins the first Kaggle. No learning; the template holds for 3 years.
2024
Test-time adaptation
MindsAI · MIT · ARChitects
Per-task fine-tuning and augmentation-ensembling drive the private record from 33% to 55.5%.
Dec 2024
The o3 break
OpenAI
Guided search over chains-of-thought clears 87.5% — near-human, but at thousands of dollars a task.
2025
The refinement loop
ARC-AGI-2 field
Propose → verify → feed back → iterate. Cheap small models beat costly big ones. Top score: 24%.
2025+
Agentic exploration
ARC-AGI-3 preview + 2026 milestones
Interactive worlds. Exploration progresses from state graphs to multimodal policies, memory, and executable tools; transferable world modeling and goal induction remain open.
No single technique owns ARC-AGI — the strongest results all combine. The clearest lesson of 2024 was that adaptation at test time, not raw scale, moves the needle: no frozen, no-adaptation method cleared ~11% on ARC-AGI-1, while per-task fine-tuning and augmentation-ensembling reached the mid-50s.
The second lesson is complementarity. Induction (search for a program) and transduction (predict the grid) fail on different tasks, so the best systems run both and reconcile them. Program search catches precise, compositional rules; neural prediction catches fuzzy, perceptual ones. Ensemble them and you reach average-human level.
The third is the verifier. Almost every method that works keeps only programs that exactly replay the demonstrations — an execution oracle. It is the engine behind sampling, evolution, and hypothesis search alike.