ARC-AGI-3 scores a run by how few actions it spends against a per-level human baseline, so the score rewards clearing games and clearing them efficiently. OPINE-World reaches a mean score of 78.4 and wins 20 of 25 games.
Game transitions are recorded into a buffer Dt = {(s, a, s′)}. A goal-directed agent reads the log and picks the next action sequence. A world-model agent reads the same buffer and writes the dynamics as a Python program: o′ ≈ fτ(o, a, u), one rule per type τ in local context u. A candidate engine T̂ is admitted when
A rejected proposal's mispredicted transition becomes the counterexample for the next round. After the first level clear, a planner searches the verified program, validating planned steps against the live game.
A state is a tuple of objects O = (o1, …, on), and each object oi = (κi, τi, pi) carries a tracking key κi, an inferred type τi, and properties pi (position, pixel pattern). The extractor producing these is itself synthesized from the raw 64×64 grids. Under action a, the changed fields of oi form its delta Δi, and the observed effect keeps the shape of the change
The outcome alphabet E grows from observation: no_change · x · y · pixels · gone · born. A few transitions suffice to show that two objects respond alike, the signal the type layer uses.
Object-transitions are filed into rows keyed by type, action, and local context, j = (τ, a, u). Row counts cj(e) with a symmetric Dirichlet prior give a posterior over the row's effect distribution
A row that remains mixed after many samples indicates a conflated context: a piece both "stays" and "recolours" under one action because a hidden condition, its lit or unlit pixel state, was pooled away. Splitting on that context u separates the mixture into near-pure rows, implementable as per-type rules fτ. The Dirichlet form gives calibrated uncertainty from small counts without fitting.
Two normalized entropies measure what is unresolved: type uncertainty H(τi) / log K from the posterior Pr(τi | D) over K candidate types, and effect uncertainty H(qj) / log m, with m the number of observed effects. Both lie in [0, 1]. Ontology error combines them
Exploration is prioritized toward high-η rows, where the model mispredicts, rather than re-deriving known dynamics. Over a run the curve falls as posteriors sharpen, is perturbed during CEGIS repair, and declines once the engine replays the buffer. The annotated curve below is the ar25 run.
One line per run, rescaled to its own η range and trace span, so the graph shows trajectory shape. Hovering a game in the selector (tapping, on a touch screen) transitions the chart to absolute coordinates with level breakpoints, synthesis events, and the run's ending. Three runs (ar25, tr87, vc33) recorded η from a late-engaging extractor onward, after the ontology had settled, and are drawn faded.
Each card replays the scored run, including intermediate animation frames. The Reasoning tab follows the playhead and shows the move set the acting agent chose at that step, with its rationale. The Engine tab shows the synthesized world model as of that step. Diamonds on the timeline mark synthesis rounds, and added lines are highlighted against the previous round.
Levels cleared against cumulative actions, as on the official task pages. Black is OPINE-World, gray the human reference, light gray baseline1. A flat tail is budget spent on an uncleared level. Clicking a game opens its replay.
Both agents ran Opus 4.8 at high, the third of five reasoning-effort tiers. With xhigh and max efforts, gains are expected. We show this against the measured scores for the recent frontiers, as unfortunately, we are unable to report our results for higher-effort tiers due to financial constraints.
@misc{courtis2026opineworldprogrammaticworldmodeling,
title={OPINE-World: Programmatic World Modeling with
Ontology-error-Prioritized Interactive Exploration for ARC-AGI-3},
author={David Courtis and Wenhao Li and Scott Sanner},
year={2026},
eprint={2607.01531},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2607.01531},
}