{"approach": "A 56-16-3 ReLU MLP (963 float32 weights; Gather of the current 56-number frame, Gemm, Relu, Gemm; 4,592-byte ONNX) evolved from a random start (seed 1) by OpenAI-style evolution strategies: antithetic population 48, sigma 0.05, Adam lr 0.01, centred-rank fitness, 32 matches per candidate per generation on common random-spawn seeds. Per-match fitness = 100 x (kill - death) + 4 x (own HP - opponent HP) + 10 x (1 - time to kill / 90 s), so kills come first, HP second, time third. The pool grew: it started with the weakest built-in (Chaser), and each 60-generation stage added its best (the mean weights) as an opponent, plus the next built-in (Dogfighter, Ace, Brawler) and then Starter. Half of each generation's matches were against the fixed pool and half against the last six champions. From stage 36 the current entry also took a quarter of the matches (on training seeds only). The final model is the stage-38 champion (2,200 generations, about 40 minutes of matches on 8 cores), picked on fresh held-out seeds. All measurements are on seeds never used in training. It beats Starter and the built-ins, but loses every match to the current hand-built entry.", "blocked": null, "current_vs_starter": 0.9906666666666667, "records": {"starter": {"matches": 3000, "score": 0.9926666666666667}, "builtins": {"matches": 800, "score": 0.9765625}, "current": {"matches": 1000, "wins": 0, "losses": 1000, "draws": 0, "score": 0}, "exploiter": {"matches": 500, "score": 0, "how": "Same ES (population 48, sigma 0.05, Adam lr 0.01, 32 matches per candidate), started from the final model's own weights and trained only against the final model for 570 s (1,880 generations). It flat-lined at 0.50 (mirror draws/trades) for about 280 s, then broke through: 1.000 on held-out seeds from 333 s. Scored with the best-held-out stage over 500 fresh matches, half from each side."}}, "entry": "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", "entry_sha256": "a46108bb5a7ea764ec609f873f045490c0390bd0aa4ce53a60f6ae208a89ee32", "entry_bytes": 4592, "ops": ["Gather", "Gemm", "Relu"], "tried": ["Harness check: the current entry vs Starter, 3,000 random-spawn matches, seeds 1-1500 both sides: 0.9906666666666667 (2972 wins, 28 losses); its seat had 0.9933333333333333.", "Smoke run, 10-generation stages, 16 matches per candidate: Starter beaten 0.81 by generation 50, then it fell back to 0.23-0.69 as cheap self-champions flooded the pool. Built-ins stayed near 0. Fix: 32 matches per candidate, 60-generation stages, half of the matches against the fixed pool.", "Main league run, stages 1-4 (Chaser only, then +Dogfighter, +Ace): held-out average across the 4 built-ins and Starter, 0.05-0.06. Stage 5 (Starter joins): 0.45. Stage 7: Starter 0.968. Stage 15: Dogfighter 0.953, Ace 0.970, Brawler still 0.435 (timeouts).", "Stages 29-35: Brawler went from 0.44 to 0.95. Stage 35 held-out average 0.9835 (100 matches per opponent). Against the current entry: 0 of 400.", "Added the current entry as a quarter of the training matches (stages 36-42, about 18 minutes, roughly 7x slower per generation because its graph runs in ORT): still 0.000 against it on held-out seeds at every stage; the built-ins held at 0.86-1.0.", "Choosing the final model on fresh seeds (400 per opponent): stage 35 avg 0.978, stage 41 0.975, stage 42 0.975 (Starter 0.9375), stage 38 0.982 (Starter 0.99, Brawler 0.9425, Ace 0.993, Dogfighter 0.994, Chaser 0.989).", "BEST, stage 38 as ONNX (ORT gives the same results as the native Rust MLP on the same seeds): vs Starter 0.9926666666666667 over 3,000 (2960 wins, 4 losses, 36 draws); built-ins 0.9765625 over 800 (chaser 0.99625, dogfighter 0.97875, ace 0.985, brawler 0.94625); vs the current entry 0 over 1,000; vs a 10-minute exploiter 0 over 500."], "next": "A small net evolved from scratch reaches the level of the current rule against Starter (0.9927 vs 0.9907 on this harness) and the built-ins in about 40 minutes, but it is brittle: it loses 1,000 of 1,000 to the hand-built rule, and an exploiter started from its own weights beats it 100% in under 6 minutes. Do not upload it. Next seats on this method should: (1) put the current rule and its exploiters in the pool from the start, rather than only after the built-ins are solved; (2) give the net the previous frames too (224 inputs) and a bigger hidden layer, so it can lead its aim; (3) keep every exploiter as a permanent pool member (a double-oracle loop), since the mirror pool here plateaued at mutual draws; (4) consider distilling the current rule into the MLP first and then evolving from that, instead of starting from random."}