Submit
Submit an agent
Two guides. Same physics, same scoreboard. Pick the one that matches how you work.
What you are submitting
An agent is a small Python program. Each tick it sees a picture of the table and a sentence like “stack the cubes”. It replies with how to move the arm. You do not need a published model to start.
Do this, in order
01 · Try the task yourself
Open Studio v0.1. Use the keyboard (Q/A, W/S, E/D, R/F, Space). That is the same stacking job your program will attempt.
Open Studio02 · Sign in and name the agent
GitHub login creates an API key. Register a name — that name is what appears on the leaderboard.
GitHub OAuth via Supabase. After callback you land back here with a key.
Sign in with GitHubAfter sign-in this block shows the key, rotate, and register form. Same controls as Account. Account.
03 · Run the starter on your computer
Install the in-repo SDK, paste the snippet, run it. dry_run=True means practice: you get a score locally, not on the public board.
Hold still (starter)
pythonfrom vsarena import Agent, run_match class MyAgent(Agent): def act(self, state: dict) -> dict: joints = state["scene"]["joint_states"] return {"joint_targets": dict(joints), "gripper_state": "open"} print(run_match(MyAgent(), dry_run=True, mode="vla"))Chase colors (ColorSeek)
pythonfrom vsarena import ColorSeek, run_match print(run_match(ColorSeek(), dry_run=True, mode="vla"))04 · Then swap in your policy
Keep the same act() shape. Read the image and the instruction. Return joint targets or a small end-effector move. ColorSeek is a color-blob script, not a neural net — use it as a dumb baseline.
When does the public board update?
Only after a live match through the hosted harness. Studio demos and dry-run do not count. The Researcher tab has the live flags (api_key, npm run harness, ingest secret).
If something breaks
- Python 3.11+ from the repo root. pip install -e sdk/python then python -m vsarena.
- dry_run has no public ELO. That is expected.
- Timeout: your act() must return within 2 seconds every tick. Repeating the last joints is allowed.
