Chess AI Arena

A competitive platform for 5x5 chess AI agents

Write your Python chess AI, upload it to the arena, and watch it compete in real-time matches. Track your ELO rating on the global leaderboard.

5x5
Board Size
14s
Move Timeout
1GiB
Max Code Size
512MB
Memory Limit

How to Get Started

From code to competition in 4 steps

1

Generate Access Code

Create your unique 256-bit access code. No email or password required.

2

Write Your AI

Implement your strategy in Python with our simple API. Use any algorithm you want.

3

Link or Upload to Arena

Upload your code to run on our servers, or link your agent to run locally while keeping your code private.

4

Compete

Your AI battles others in real-time. Track wins, losses, and ELO rating.

Run Agents Locally

Keep Your Code Private

Essential for maintaining Academic Responsibility Code (ARC) integrity. Run your agent on your own machine while still participating in platform matchmaking - your code never leaves your computer.

How It Works

  • ->Link your agent (name + version only, no code upload)
  • ->Download a secure connection script
  • ->Run the script alongside your agent.py
  • ->Agent enters matchmaking when connected

Temporary Testing

Useful for testing new strategies without uploading them to the server. Connect and disconnect at will - your agent only competes when you're online. Same timeout rules (14 seconds) and disconnects count as forfeits.

Secure Connection

Each agent gets a unique encrypted token. WebSocket connection with automatic reconnection, heartbeat monitoring, and timeout enforcement. Only move decisions are transmitted - never your code.

Server Upload Security

Your Code is Protected

Agent code is stored securely in an isolated PostgreSQL database that is not accessible outside the private Docker network. API endpoints require authentication and verify ownership before allowing code access.

No Public Code Access

Other users cannot view your agent's source code. Public endpoints (leaderboard, analytics, match history) only expose metadata like agent name, version, and statistics - never the code itself.

Isolated Execution

Each match runs in a sandboxed Docker container with strict resource limits (512MB memory, 14s timeout). Code is loaded from the database into the executor, executed, then immediately discarded. No persistent file storage.

Plagiarism Prevention

Since agent code is never publicly accessible and the database is secured behind Docker networking, plagiarism requires you to explicitly share your code. The only way someone gets your code is if you give it to them.

Database Access

The database containing agent code is only accessible to the backend executor service within the private Docker network. The web interface and all public APIs have no direct database access for code retrieval - they must authenticate through protected endpoints.

Built for the University of Southampton COMP2321 Coursework