◧ MIRROR MAZE

A navigation benchmark

Can an AI find the real way
out of a mirror maze?

The ideal run reaches the exit without hitting a wall. One recorded run hit walls 33,607 times and still exhausted its planning budget.

Visual and text studies · November 2026

A corridor, or its reflection?
Recorded first-person maze view
Can the robot move straight ahead?

Recorded first-person observations. Review maps are for readers.

The benchmark

Three actions in a reflective world

A reflection can look like a corridor or duplicate the green goal beacon. The agent must enter the actual goal cell. Each planning round may contain a sequence of actions. A collision does not terminate a valid sequence.

↶leftRotate one heading
↑forwardAttempt one adjacent cell
↷rightRotate one heading

Square cells use 90° turns and hexagonal cells use 60°. The visual protocol supplies first-person images after each attempted action plus execution feedback. The text protocol supplies ordered action outcomes only during play. Agents receive no review map.

DifficultySquareHexagonalPlanning cap
EasySide 7 · 49 cellsSide 5 · 61 cells200
MediumSide 11 · 121 cellsSide 7 · 127 cells400
HardSide 15 · 225 cellsSide 9 · 217 cells800

Two deterministic maps per shape and difficulty, MIRROR-042 and MIRROR-043. Visual host observations use 1280 × 720 images and up to 10 mirror reflections. The benchmark prioritizes fewer planning calls. The analysis also reports primitive actions, physical wall hits, and coverage.

Visual study

What the completed runs show

GPT-6.1 Sol with Codex cleared all four Easy maps and both Hard square maps. The denominators below include measured outcomes only.

53scorable visual runs
4Flash Hard cases not evaluated
2API cases pending

The visual cohort has 64 scheduled cases, including four policy skips and one withdrawal. Four Sol Medium successes retain historical caps of 500, 500, 200, and 200. Each finished within the current 400-call target.

ModelNative clientEasyMediumHard
Green indicates success, gray indicates the planning cap, and amber indicates an infrastructure interruption. Select an available trial dot to open its replay.

Main findings

An exit tells only part of the story

Text cleared more goals under the planning cap. Vision cleared more goals within a small collision budget. The route, the number of wall hits, and coverage show how those outcomes were achieved.

The result changes with the budget

The 32 public pairs match the maze, initial cell and heading, and goal. Both protocols cleared 13 of those pairs, text alone cleared 10, and both reached the cap on nine.

ModelVisionText only
GPT-6.1 Sol8/88/8
Gemini 3.8 Flash3/87/8
DeepSeek V4.1 Flash1/85/8
Kimi K3.1 Pro1/83/8
Total13/3223/32
ConstraintVisionText only
Original planning caps13/3223/32
At most 20 wall hits8/320/32
At most 50 wall hits11/322/32
At most 800 actions11/329/32
At most 1,600 actions13/3215/32

The extra limits filter recorded trajectories. Running with a new budget could produce different plans. DeepSeek model routes, AGY versions and prompts, and four declared historical Sol budgets differ across parts of the comparison. The results compare complete systems.

Change the budget interactively ↗ · Explore the text trajectories ↗

How agents spend actions and hit walls

01

A planning call can buy a long sequence of probes.

Gemini 3.8 Flash cleared Easy Square MIRROR-042 in 9 text rounds with 268 wall hits, compared with 116 visual rounds and 40 hits. Sol cleared all eight maps in both arms. On Easy Hex MIRROR-042, vision took 315 actions with zero wall hits. Text took 8,846 actions with 3,823 hits. Across its eight maps, Sol’s median fell from 889.5 hits in text to 12 in vision.

02

When an agent repeats a hit matters.

On the first attempts at the cell and heading pairs they chose to probe, Sol hit walls on 9.1% of visual attempts and 56.7% of text attempts. Gemini showed 28.8% versus 54.1%. These are policy-selected poses.

When a hit had another action in the same submitted batch, the immediate next action hit the same face in 31.6% of text events and 21.8% of visual events. After a round-ending hit and fresh feedback, the next round’s first forward attempt hit the same face in 1.2% and 4.5%, respectively. DeepSeek accounted for 94 of 96 visual repeats.

On revisits to a previously hit pose after 21 or more rounds, 39.9% of text and 3.9% of visual plans started by moving into the wall. The policies revisit different poses at different times, so this motivates a controlled memory test.

03

Coverage reveals stalled or repetitive exploration.

Sol hit only 2 walls on Hard Hex MIRROR-043 and saw no new cell in its final 581 rounds. DeepSeek took 111,088 actions and 33,607 physical wall hits on Medium Hex MIRROR-043 and still visited only 69 of 127 cells.

04

Repeated images are a candidate explanation.

DeepSeek’s visual runs recorded roughly 49,000 delivered image entries, about 97% duplicates, and 744 rounds with image trimming. Repeated movement produces redundant views. Whether redundant views also impair planning calls for a controlled image-history comparison.

A blind policy can solve the original mazes

A fixed wall follower cleared 8/8 original loop-free mazes using only success or wall feedback. All canonical starts face their only opening. Across all initial headings it finished within budget on 36/40 trials. Random turns and forward probes with no feedback cleared 23/4,096 within 800 primitive actions.

Adding 12 passages to each map reduced fixed wall-following success within budget to 55.2%. Depth-first search with relative position memory still reached 98.0%. An ideal local wall sensor yields a separate collision-free reference of 31–153 passage decisions on the original maps.

In 16 mirror-versus-matte image pairs, some blocked directions showed the goal’s reflection only in the mirror image. The model pilot yielded no complete paired verdicts. The rendering effect is visible, while the rate of model misclassification remains open.

The hexagonal gap depends on the protocol

In Easy vision, square maps cleared 6/8 and hexagonal maps 2/8. In Easy text, both shapes reached 7/8. Sol cleared both Hard square maps and neither Hard hexagonal map even though they have 225 and 217 cells, respectively. Heading changes, local connectivity, rendering, and the two map seeds per shape all matter.

Interactive replay

Step through a recorded trajectory

Use the arrow buttons to advance one primitive action, one planning round, or one original image sample. Filter the record list below to find a run. The visual collection contains Easy and Medium traces plus the Hard Sol traces.

Experiment records

    Loading trajectory…

    The harness changes the outcome

    The table compares the same four Easy maps for each listed model in the visual study. Sol improved with Codex. DeepSeek performed better in its API runs, and Kimi was unchanged.

    ModelNative clientDirect API
    GPT-6.1 Sol4/4 · Codex1/4
    DeepSeek V4.1 Flash1/4 · Claude Code2/4
    Kimi K3.1 Pro1/4 · Claude Code1/4

    In the three failed Sol API runs, 868 of 970 wall hits came from the final planning batch. The earlier traces often rotated or stopped discovering new cells. Prompting, conversation management, and reasoning-state retention vary with the system. The Gemini API control uses a different model from the native Flash profile.

    How interrupted cases are counted

    Four Flash Hard trials remain not evaluated because provider quota notices interrupted their usable trajectories. Two Easy Gemini 4 Argon API trials remain paused. These cases, the four policy skips, and one withdrawal are outside measured-outcome denominators.

    Inspect and reproduce the evidence

    Inspect the score data, compare all eight paired case videos, or try the browser environment. Public replays contain action and pose data, with physical wall hits tracked separately from invalid-plan penalties.

    Cite this project · BibTeX
    @misc{kenny2026mirrormaze,
      author = {kenny},
      title  = {{Mirror Maze}: A Benchmark for Reflective Navigation},
      year   = {2026},
      url    = {https://kennymckormick.github.io/blog/mirror-maze/}
    }