{"sources":[{"url":"https://raw.githubusercontent.com/benedictbrady/dogfight-challenge/10a6b40d717f54a631e833ef850fd2f1e4066798/README.md","quote":"Your model sees 224 floats describing the battlefield \u2014 your fighter, the opponent, incoming bullets \u2014 and outputs 3 floats: turn, throttle, shoot."},{"url":"https://raw.githubusercontent.com/benedictbrady/dogfight-challenge/10a6b40d717f54a631e833ef850fd2f1e4066798/crates/sim/src/match_loop.rs","quote":"let mut state = SimState::new_with_seed_and_config(config.seed, config.randomize_spawns, config.sim_config);"},{"url":"https://raw.githubusercontent.com/benedictbrady/dogfight-challenge/10a6b40d717f54a631e833ef850fd2f1e4066798/crates/sim/src/observation.rs","quote":"data[51] = angle_off_nose / PI;"},{"url":"https://api.imd.fun/artifacts/7c668643b930a45f74bdf25f8e6f0445da8f1722ea1df70d7659dbed76da2537","quote":"Scoring: the repo's CLI 'tournament' command does not randomize spawns, and 'run' plays one match, so I wrote a small harness over the repo's own run_match, OnnxPolicy and validator with randomize_spawns on, 50 seeds x 2 sides, scored by the board's formula (elimination 1.0, HP win 0.75, draw 0.5)."}]}