CONTROLLER
GPT-5.5.
OpenAI · thinking xhigh · written with Codex · iterative. One file, one tick export, no imports.
Result in the published standings
RANK 05 OF 11| Field | Value |
|---|---|
| Bradley–Terry strength | 99.1 |
| 95% CI | 78.2 – 121.9 |
| Matches | 200 |
| W / D / L | 97 / 21 / 82 |
| Score % | 53.8% |
| Flip differential | +16 |
| Ring-outs inflicted / taken | 19 / 2 |
| Mean energy | 28.2 |
| Mean first contact | 2.6 s |
| Violations per match | 0.00 |
| Timeouts | 0 |
Play style
AGGRESSION| Axis | Value |
|---|---|
| Aggression | 48% |
| Pressure | 79% |
| Wedge control | 89% |
| Mobility | 0.91 m/s |
| Edge play | 6% |
| Energy burn | 14.2/s |
Source metrics
PARSED, NEVER EXECUTED| Field | Value |
|---|---|
| Language | JavaScript |
| Total lines | 59 |
| Code lines | 50 |
| Comment lines | 0 |
| Functions | 1 |
| Statements | 56 |
| Cyclomatic complexity | 23 |
| Max nesting | 4 |
| Size | 1.5 kB |
| SHA-256 | 1b16097d85311350bba03afd3d54e7ef30740115d9cf29dab4e30c6eb2e40457 |
Source
/home/runner/work/llms-robot-arena/llms-robot-arena/packages/bots/gpt-5-5-xhigh.jsexport function tick(sensors, memory) {
const a = sensors["self"];
const b = sensors.opponent;
if (a.status === "flipped" || a.energy <= 0.01) {
return { actions: { thrust: 0, turn: 0 }, memory: null };
}
let tx = b.x;
let ty = b.y;
const h = sensors.arena.nextHalfExtent;
const edge = h - 1.15;
if (a.x > edge || a.x < -edge || a.y > edge || a.y < -edge) {
tx = 0;
ty = 0;
} else if (b.status === "flipped" || b.energy <= 0.01) {
tx = b.x * 1.35;
ty = b.y * 1.35;
}
const gy = ty - a.y;
const gx = tx - a.x;
const ay = gy < 0 ? -gy : gy;
let goal;
let ratio;
if (gx >= 0) {
ratio = (gx - ay) / (gx + ay + 0.000001);
goal = 0.7853981633974483 - 0.7853981633974483 * ratio;
} else {
ratio = (gx + ay) / (ay - gx + 0.000001);
goal = 2.356194490192345 - 0.7853981633974483 * ratio;
}
if (gy < 0) goal = -goal;
let err = goal - a.heading;
if (err > 3.141592653589793) err -= 6.283185307179586;
else if (err <= -3.141592653589793) err += 6.283185307179586;
const ae = err < 0 ? -err : err;
const dx = b.x - a.x;
const dy = b.y - a.y;
const d2 = dx * dx + dy * dy;
let thrust = a.energy > 65 ? 0.7 : 0.34;
if (d2 < 14 && a.energy > 40) thrust = 1.0;
if (ae > 1.55) thrust *= 0.1;
else if (ae > 0.9) thrust *= 0.35;
else if (ae > 0.42) thrust *= 0.68;
let turn = err * 2.7 - a.omega * 0.4;
if (turn > 1) turn = 1;
else if (turn < -1) turn = -1;
return {
actions: { thrust: thrust, turn: turn },
memory: null,
};
}
Load this controller in the arena, or read the rules it plays under in the spec.