Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Limits and budgets

These values describe the checked-in Ants registration and deployment configuration as of 19 September 2026. A deployed competition’s announced rules take precedence when its configuration differs. Byte units are binary: 1 KiB = 1,024 bytes and 1 MiB = 1,048,576 bytes.

Model and adapter

LimitCurrent valueApplies to
Maximum size metric64 MiBLargest eligible class; no season may set a class above it
ONNX opset range13–19 inclusiveAdmission policy
Manifest ABIorion:model@1.0.0manifest.json
Adapter operations1,000,000Each declared input’s adapter, per evaluation
Adapter boundary dtypesbool, i8, u8, i16, u16, i32, u32, i64, u64, f32, f64Tensors an adapter hands the graph
Probe inferences at admission5, at probe_dimsWhether the graph runs at all

The size metric is bytes(model.onnx) + bytes(manifest.json), uncompressed. The class table contains all five size boundaries; the format page lists configured ONNX operators. There is no per-class compute cap.

Ants matches

SettingCurrent value
Players on a board2 to 8, fixed by each board
A board’s sides24 to 124 squares each
Squares on a boardat most 14,880
Maximum turns1,000
Turn deadline, per seat, covering its adapters and its inference1,000 ms
View radius squared77
Attack radius squared5
Gathering radius squared1
Strikes before forfeit5 cumulative per match
Stalemate duration150 consecutive qualifying turns
Domination thresholdAt least 85% of living ants

The map table gives dimensions and generation inputs. Strikes are platform accounting; ordinary illegal movement into water simply stays in place under the game rules.

Admission and submissions

SettingCurrent value
In-flight candidate slots1 per model, covering testing and verified; a season may also cap the total across your models
Admission polling interval20 seconds
Admission batchUp to 4 candidates per run
Verification claim timeout180 seconds
Admission attemptsAt most 3 before timeout rejection
Reference probe deadline, for the whole set5,000 ms
Upload URL lifetime30 minutes, one-shot
Trial repair limit3 trial rows
Trials no runner could load the candidate for3, counted apart from the repair limit
Submission endpoint rate1 request/second, burst 5, per authenticated principal

Season quotas

These have no platform-wide value. Each is absent unless the season declares it, and absent means no limit — so the table below is what a season may set, not what any season does. GET /v1/games/{game}/submission reports your standing against every one of them, before you make a request.

RuleWhat it caps
entries.max_per_userhow many models you may hold in the season
entries.max_per_classhow many of them may sit in one weight class
entries.in_flight_maxhow many of your versions may be in admission at once
entries.versions_max_per_modelversions one model may enter
entries.versions_max_per_userversions you may enter across every model
entries.cooldown_sthe gap between one model’s submissions
classes.allowwhich weight classes may be entered at all
graph.params_maxa parameter ceiling, independent of the byte cap
graph.opset_min / opset_maxthe ONNX opset window
graph.op_allowlistthe operator set, narrowing the platform’s
unique_weights.scopewhether two entries may stand on the same weights

A rate limit does not override the one-candidate-per-model or unique-weights rules, nor any quota the season declares. The admission timeout is not a guarantee of total turnaround time, and its validation deadline is longer than the actual turn deadline.

Ratings and scheduling

SettingCurrent value
Initial rating mean25
Initial uncertainty8.333333333333334
Displayed ratingmu − 3 × sigma
Provisional uncertainty thresholdGreater than 3
Placement target / initial request cap8
Steady-state request cap2
Successor uncertainty multiplier2, capped at initial uncertainty
Requested cross-class fraction0.20, with pool-dependent fallback

These are policy settings, not per-competitor match-rate guarantees. Read Ranking before interpreting an idle or provisional entry.

Where values come from

Ants’ cartridge.json declares the limits every season’s board must fit (limits.boards, the three board rows above), turn limits, and the adapter budget. A season’s boards are its own, uploaded by an admin and listed at GET /v1/games/ants/seasons/{slug}/maps. The engine source implements geometry and game-ending rules. The season fixes the size boundaries and every quota in the table above, in the database; Soma’s admission clock judges against them. The Orion templates in Soma’s and Kalam’s docker/ configure opsets, trials, ratings, scheduling and the operation budget the node enforces. The repositories page identifies each owner.