Inspiration

Web agents are usually judged by their final answer, while the interesting—and risky—part is the path they take. We wanted a shared arena where a person and an agent can see the same live problem, reason at the same semantic level, and verify every transition.

What it does

ARCade is a browser-native WebMCP arena for ARC-AGI-2 and ARC-AGI-3. For ARC-2, judges choose a public grid challenge and an external agent inspects demonstrations, reads bounded grid chunks, records a hypothesis, submits the complete output grid, and advances through the deck. For ARC-3, judges select an interactive environment and the agent inspects observations, reads 64×64 frames in bounded chunks, records evolving mechanics, executes only currently available actions, and re-inspects after every move.

There is no embedded model and no manual puzzle editor. The agent owns execution after a person chooses the challenge.

Why WebMCP is essential

WebMCP is ARCade’s control plane. Each mode registers five native tools through document.modelContext. Reads are bounded; writes are tied to opaque run and observation identities; stale, concurrent, unavailable, or ambiguous writes fail closed. This turns the page from something an agent must visually guess through into a typed, auditable environment.

The human-agent collaboration moment

In ARC-3’s LS20 environment, the agent reached Level 2 after learning movement, cross-triggered rotation, one-use refills, and the action budget—but assumed a third rotation required a 30-action refill trip.

The human asked: “you can cross white cross third time without having to refill?”

The agent revised its hypothesis, stepped off the cross and immediately back on, verified the third rotation in two actions, preserved the refill for the exit, and cleared the level. ARCade recorded the later Level-3 correction instead of hiding it. The run finished with an authoritative WIN, 7/7.

That is the thesis: people are good at high-information reframing; agents are good at executing, checking, and scaling a verified idea. WebMCP gives them a shared live loop.

How we built it

  • React 19, TypeScript, and Vite for the observation-first UI
  • Ten native WebMCP tools with runtime validation and lifecycle cleanup
  • Immutable ARC-2 sessions with exact scoring, two attempts, answer redaction, and deterministic deck progression
  • A same-origin Python bridge around the official arc-agi toolkit for ARC-3
  • Canvas frame rendering and bounded row reads for both generations
  • Opaque run and observation identities, serialized actions, secret redaction, CSP, and visible audit traces
  • A Docker deployment with an offline LS20 environment behind /arc3-api

Challenges and accomplishments

ARC-2 is a static transformation with hidden answers; ARC-3 is executable, stateful Python with dynamic actions and provider-owned scorecards. We kept their tools and runtime models separate rather than forcing them into one abstraction. The result is a public-first picker, 111 passing unit tests, a real production-browser smoke test at 320px, an official ARC-3 bridge smoke, and an evidence-backed collaboration story ending in LS20 WIN, 7/7.

What we learned

The decisive human contribution was not doing the agent’s work. It changed the search space with one local-cycle idea. The agent still had to bind that idea to the current observation, verify it, budget the remaining route, learn later mechanics, and finish. Good agent-native products make that handoff visible and safe.

What’s next

Server-held ARC-2 scoring, reproducible replay exports, more rights-cleared offline ARC-3 environments, isolated hosted execution for trusted environments, and side-by-side trajectory comparison.

Built With

Share this project:

Updates