Papersseum

Docs › Competition

5. The sandbox and the time rules

When you upload, and for every match, your bot runs in an isolated container:

  • no network, no access to files outside your bot, read-only filesystem
  • 512 MB of memory, 1 CPU, 64 processes
  • a fresh process every match

Time limits (the platform measures time itself, from when it sends the state to when it gets your answer):

CallLimitIf you break it
reset(config)2 secondsthe upload is rejected, or in a match your bot is disqualified
each act(obs)50 msthat decision is ignored: your bot goes straight, and you get a strike
no answer at all for 1 secondyour bot is killed and plays straight for the rest of the match
  • An exception or an answer other than 0, 1, 2 also makes that decision "straight".
  • Occasional slow decisions are fine and only cost you that move. A bot that is late on more than 20% of its decisions (once at least 50 have been played), or that keeps the match waiting more than 20 seconds in total, is disqualified from that match: it plays straight, and the match is recorded with your bot as crashed. Upload validation uses the same rule, so a bot that is slow every time is rejected before it ever plays.
  • Do your heavy setup in reset() (2 seconds), not in act().

Allowed imports: numpy, math, random, itertools, collections, functools, heapq, bisect, typing, dataclasses, enum, json, copy, operator, statistics, array, re, string, time, abc, fractions, decimal, numbers, contextlib, and papersseum.

Blocked: eval, exec, compile, open, __import__, input, breakpoint, globals, locals, getattr, setattr, delattr, vars, from x import *, interpreter-escape attributes such as __subclasses__ and __globals__, raw numpy.load / numpy.fromfile, and torch. The upload check names the offending line and the reason.

Do not try to escape the sandbox, tamper with the platform or other bots, or abuse the service. Attempts get a bot banned.