A 22-yard free kick. A 5-man wall stands between the ball and the goal; the keeper covers the centre. The optimiser tunes aim, power, loft, and curve (Magnus spin) to find the trajectory that clears the wall, beats the keeper, and finds the net.
Take the kick yourself โ drag the sliders, hit it, see if you can curl one home.
Each row is the best single kick a given algorithm found.
| Algorithm | Score | Kicks used | Best params (aimยฐ / loftยฐ / pow / curve) |
|---|---|---|---|
| โ no runs yet โ | |||
A 2.5-D ball-flight simulator. The ball leaves the kick spot with chosen (aim, loft, power, curve). Gravity pulls it down; air drag slows it; the Magnus force from the spin curves the flight sideways. The simulator tracks the ball until it reaches the goal line, the ground, or runs out of time.
Score is 100 for a goal, with a small bonus for placement away from the keeper's reach. The wall blocks any ball that crosses its line below ~1.8 m. The keeper covers a circular reach zone around their starting position โ so the scoring region sits in the top corners and the far-side post, threaded by curve around the wall.
The objective surface is sharply discontinuous (wall block, post, keeper save are all step functions), so gradient methods are at a disadvantage. Population methods that sample broadly tend to find the curved-around-the-wall trajectories first.
Custom 2.5-D ball simulator โ no rigid-body physics needed. Gravity + drag + Magnus is enough for the soccer trick-shot regime.
If your hyper-parameter searches are heating the Earth, drop this in Cursor or Claude:
Read https://raw.githubusercontent.com/microprediction/humpday/main/SKILL.md and create a project skill from it.