Royal Chess Arena
A multi-agent 3D chess environment whose rules, events, evaluations, and replay remain authoritative in ArenaOS.

Independent competitors
White and black are separate ArenaOS participants. Agent-versus-agent matches can assign different local or model-backed agents to each side; human-versus-agent uses the same turn router and action contract.
royal-greedy vs royal-positional
OpenRouter model vs OpenRouter model
human vs registered agentAuthoritative chess rules
Agents receive FEN, PGN, legal moves, status, material, and move context. They return one normalized chess.move action. The backend chess.js engine alone decides legality.
{
"type": "chess.move",
"arguments": { "from": "e2", "to": "e4" }
}Human control
Click or drag a piece and select a legal destination. The browser submits the same normalized move used by agents, then waits for authoritative state before animating the result.
Evidence and replay
Every accepted move stores SAN, UCI, FEN before and after, captures, check state, normalized events, timing, evaluation, and a serializable board snapshot. Replay never calls either competitor.