Agent #237Agent #341Agent #760Agent #1405Agent #1801Agent #225Agent #596Agent #210Agent #1219Agent #1759Agent #99Agent #733building, built, reopenedAgent #1813building, built, reopenedAgent #354building, built, reopenedAgent #1558building, built, reopenedAgent #591building, built, reopenedAgent #1571building, built, reopenedAgent #391building, built, reopenedAgent #585building, built, reopenedAgent #1894building, built, reopenedAgent #847building, built, reopenedAgent #869building, built, reopenedAgent #970building, built, reopenedAgent #1967building, built, reopenedAgent #625building, built, reopenedAgent #1010building, built, reopenedAgent #174building, built, reopenedAgent #734building, built, reopenedAgent #204building, built, reopenedAgent #1082building, built, reopenedAgent #1202building, built, reopenedAgent #985building, built, reopenedAgent #29building, built, reopenedAgent #831building, built, reopenedAgent #835building, built, reopenedAgent #495building, built, reopenedAgent #253building, built, reopenedAgent #1173building, built, reopenedAgent #723building, built, reopenedAgent #426building, built, reopenedAgent #786building, built, reopenedAgent #1528building, built, reopenedAgent #623building, built, reopenedAgent #575building, built, reopenedAgent #1522building, built, reopenedAgent #1471building, built, reopenedAgent #1639building, built, reopenedAgent #1739building, built, reopenedAgent #1309building, built, reopened49 agents, 11 answers so far, 38 working

The challenge (https://www.paradigm.xyz/puzzles/dogfight, repository https://github.com/benedictbrady/dogfight-challenge): an ONNX model reads a 224-number observation and returns 3 continuous actions each tick, in one-on-one aerial combat. An upload plays about 60 matches against other players' entries. A kill counts 1, a win on hit points 0.75, a draw 0.5.

Where it stands on 2026-11-06. This network is 5th of 36 with the entry "IMD seat 798": 53 kills and 7 losses in 60 matches. Third place has 59 kills and a draw; the top player has won every match. The board's rating, fitted from its public numbers: -6121.625 + 400 x log10(s / (1 - s)), where s is the score per match, capped at 0.999. So third place needs 59 of 60. The board keeps a player's latest upload, not their best, so the next upload must be clearly stronger than the one it replaces. Nothing is uploaded from a task: the network's operator does that by hand, so do not look for a key.

The current entry is a public JSON file: https://api.imd.fun/artifacts/7c668643b930a45f74bdf25f8e6f0445da8f1722ea1df70d7659dbed76da2537. Its "entry" is the ONNX model in base64. Its "setup", "tried", "width" and "next" say how its seat built the simulator inside a task (Rust by rustup under .cache/, OpenSSL headers without root, the repository's own run_match with random spawns, about 770 matches a second), what worked (fly slowly because turn rate falls with speed, lead the aim, dodge and break after a shot) and what failed (a rule that beat every earlier version lost 27 percent to a neural opponent trained in 24 seconds). It is a hand-built rule, and it beats the repository's Starter in 2,980 of 3,000 matches.

What nobody here knows is how the other players' entries fly: they are not public, and the seven losses were to them. The top player's entry is named for self-play and distillation. The best stand-in is a hard, varied set of opponents built inside the task.

Fifty seats work at once and cannot see each other, so each has its own direction or its own run of a method. Every seat reports the same four records so the results can be compared: against Starter over 3,000 matches with random spawns; against the four built-in opponents over 800; against the current entry over 1,000 matches, half from each side; and against the strongest opponent it can train against its own final model in ten minutes. A later round flies the best models against each other and one is uploaded.

The answer so far

11 answers in. The report comes last.

The swarm

livelast answer Items, page by page →
  1. Items11 of 50 back

    The plane split the request into 50 items. Started 5 min after the job was posted.

  2. Working38 agents, 8 silent for over 10 min
    1. sp-curriculum-2Agent #1010The latest retained checkpoint scores 0.8908 against the current model, 0.985 against Starter, and 1.0 against the built-ins on validation. That is an improvement over the earlier retained checkpoints, though the current-stage 95% win gate is still unmet.Squinting at it…
      1. Generation 60 produced a retained checkpoint: current score 0.8358 over 600 matches, Starter score 0.990625 over 800, and built-ins 1.0 over 400. I’ll refresh the provisional result and continue the current-stage search.
      2. The scalar rule is still short of the current-stage gate. I’m now testing a 32-unit ReLU selector—the second size choice, after 16—to choose between the original and adapted rules. It adds little to the file size and uses operators already present in Starter.
      3. The neural selector produced a candidate scoring 0.8992 against the current rule on 600 new matches. It has not passed retention, so it remains unselected. The short test of the adversary-training script also completed; the final diagnostic will use the full ten-minute budget.
      4. The 0.90 candidate won 783 of 800 Starter matches and cleared the built-ins, so it passes the brief’s 95% retention gate. I’m continuing from it under that gate; my extra 0.99 Starter-score filter was preventing this progress. The final report will show the tradeoff explicitly.
      5. The first retained neural checkpoint scored 0.8783 against the current entry, 0.979375 against Starter, and 1.0 against the built-ins on fresh validation sets. It still falls short of 95% wins against the current entry, so training remains at that stage.
      6. The latest retained checkpoint scores 0.8908 against the current model, 0.985 against Starter, and 1.0 against the built-ins on validation. That is an improvement over the earlier retained checkpoints, though the current-stage 95% win gate is still unmet.
    2. sp-evolution-5Agent #1202Stage two’s selection score has improved to 0.5015625, with about 28% elimination wins. Training is continuing with whole-network and layer-specific perturbations. The stronger survival result has not yet become reliable shooting.Connecting dots…
      1. The best checkpoint is stable after about 2.6 million logged training and selection matches. I’m refreshing its benchmark report now; those results will remain separate from the untouched seeds reserved for the final model.
      2. The refreshed checkpoint scores 0.2865 against Starter, 0.395625 against the built-ins, and 0.1645 against the current entry. All its points against the current entry came from draws. It has learned to avoid some defeats, but it still lacks reliable kills and remains well below the live entry’s reliability.
      3. Training has passed 3.1 million logged matches. Starter will enter the next stage’s pool alongside the retained champions, shifting more of the search toward the weak benchmark result.
      4. Stage two is running with nine opponents, including Starter, the current entry, and retained neural champions. Its initial selection score is 0.45625. Scores between stages are not directly comparable because the opponent pool changes.
      5. The search is at roughly 3.34 million logged matches. The current stage has reached about 27.5% elimination wins on its selection set; the final model remains unchosen.
      6. Stage two’s selection score has improved to 0.5015625, with about 28% elimination wins. Training is continuing with whole-network and layer-specific perturbations. The stronger survival result has not yet become reliable shooting.
    3. rule-constantsAgent #1471The independent 1,000-match check supports the improvement: the expanded candidate scored **0.5835 against current** and **0.995 against Starter**. On those same seed sets, the baseline scored 0.5 and 0.989. I’m preserving that exact candidate for final selection.Connecting dots…
      1. The ten-minute adversarial test is ready. Once the final model is fixed, it will search both rule constants and neural output heads against that model, then choose the stronger exploiter for a separate 500-match test.
      2. The evaluation script is ready to test the serialized ONNX file with run_match. It will report the requested 3,000/800/1,000/500-match records, with the current-entry comparison split evenly between sides.
      3. The model contains additional behavioral thresholds beyond the fifteen core tuning constants. I’ve started a bounded search over those too, including wrap-around and speed thresholds, to test whether they explain the remaining tradeoff. The final comparison will check whether those extra changes help.
      4. The expanded search accepted an early candidate with a 0.637 score against current and no Starter losses on its small acceptance set. I’ll retain it for the larger comparison before drawing a conclusion.
      5. The expanded search is finding more candidates with the same promising pattern: better current-entry scores while retaining Starter performance. I’m starting a larger independent check of the latest candidates.
      6. The independent 1,000-match check supports the improvement: the expanded candidate scored **0.5835 against current** and **0.995 against Starter**. On those same seed sets, the baseline scored 0.5 and 0.989. I’m preserving that exact candidate for final selection.
    4. sp-gradient-5Agent #847Training continues with the same settings. The next archive comparison includes the latest lower-noise checkpoints; the saved full-report candidate remains unchanged.Brewing…
      1. The high-noise family has regressed further against Starter, so it is unlikely to be selected. No tracked files have been modified outside the requested deliverable area.
      2. Checkpoint 340 now leads archive validation at **0.6455 against current** and **1.0 against Starter** over 512 matches each. I’m testing it over the full report sizes while the first response-policy run finishes.
      3. Checkpoint 340’s full test scored **0.643 against current**, **0.9973333333333333 against Starter**, and **1.0 against the built-ins**. The ten-minute response run against checkpoint 170 is nearly finished; its held-out tests so far remain close to even.
      4. The first response run completed ten minutes and about 4.6 million transitions. Checkpoint 430 now leads archive validation at **0.6836 against current** and **0.9941 against Starter**. I’ll test the saved candidates against the trained response to see how they handle that different opponent.
      5. Against the ten-minute response policy, checkpoint 170 scored **0.537**, checkpoint 340 scored **0.616**, and the latest archive leader scored **0.617**, each over 500 matches. The newer policies held up better against this opponent.
      6. Training continues with the same settings. The next archive comparison includes the latest lower-noise checkpoints; the saved full-report candidate remains unchanged.
    5. sp-league-2Agent #831The pool has grown to 79 opponents, including targeted responses to the correction network. This makes the smaller-pool results less reliable for selection. I’ll screen against the expanded pool, then use larger fresh match sets to compare the finalists.Drafting…
      1. The reinforcement-trained network has started winning some held-out fights against the current entry, but its scores are still low. The Starter-head search is also weak so far. Both need more training before they can provide a demanding test of the league leaders.
      2. The pure network is learning slowly. I’ve started a second reinforcement-learning run that learns small corrections to the accurate rule, preserving its aiming behavior at initialization. Both runs will be judged on match scores from fresh spawns.
      3. The correction-based network is already competitive: early held-out scores were roughly **0.47–0.57 against the current rule**. I’ve added its best saved versions to the league so the other policies can train against them.
      4. The correction network reached **0.485 against a league leader** on a 200-match validation block. A targeted response then scored about **0.72 against a frozen correction-network snapshot**. I’m adding that response to the pool to test whether the broader league can counter it.
      5. The targeted response search is finding useful counterexamples, while the pure-network runs remain much weaker. I’m retaining the counterexamples and keeping the original entry in every validation pool. The final selection will compare archived candidates across the whole pool.
      6. The pool has grown to 79 opponents, including targeted responses to the correction network. This makes the smaller-pool results less reliable for selection. I’ll screen against the expanded pool, then use larger fresh match sets to compare the finalists.
  3. Publishedafter verification

50 agents at most, 0 of 2 merges

Outputs

22 files accepted