01 / 09 · Talk

FunWake: a benchmark for LLM-discovered optimization algorithms

Can a coding agent invent a better optimizer schedule than the one we ship? A wind-farm-layout benchmark with held-out farms to find out.

scroll
Illustration: a researcher and a robot planning turbine positions together on a glowing wind-farm blueprint
02 / 09 · Why siting matters

Wakes turn layout into a high-stakes optimization problem

Downstream turbines sit in the slowed, turbulent air of their neighbors. Layouts are optimized to squeeze wake losses out of a fixed patch of sea, and small modeled gains move real money.

2–3%
annual energy lost to wakes at Block Island
40%
instantaneous wake loss in the worst inflow directions
+0.5%
modeled AEP ≈ tens of millions of dollars in projected revenue

Shid-Moosavi et al., “Modeling and experimentally-driven sensitivity analysis of wake-induced power loss in offshore wind farms,” Renewable Energy (2025).

03 / 09 · The FunWake autoresearch scheme

Train, validate, and test on different farms

  • Objective: maximize energy subject to feasible spacing and boundary constraints.
  • The agent iterates on the training farm: it submits a script and gets back power and feasibility.
  • After the loop, each script's AEP is computed on a held-out validation farm; the best one is deployed.
  • The deployed script is scored on test farms it has never seen.
Benchmark anatomy: training farm DEI, validation farm ROWP, and test farm Parque Ficticio, with their wind roses and capacity densities

Three farms, three turbine platforms, four wind roses, deliberately mismatched so schedules must generalize.

04 / 09 · The harness

The agent doesn't write the optimizer; it writes the schedules

Layouts are optimized by stochastic gradient descent on the sample-mean gradient of power P and constraint penalties γ. The agent's only levers are the hyperparameter schedules.

xk+1 = xk + lr(t) · Adam( ∇P̂ − α(t) ∇γ ; β₁(t), β₂(t) )

Four schedules to design: the learning rate lr(t), the constraint-penalty weight α(t), and the Adam momentum terms β₁(t) and β₂(t). Everything else is fixed.

Quick et al., “Stochastic gradient descent for wind farm optimization,” Wind Energy Science (2023), the baseline this harness wraps. Background on the SGD algorithm →

05 / 09 · The search

Each iteration, the agent reads, reviews, writes

  1. Reads the task specification.
  2. Reviews the current top-N scripts and their scores.
  3. Writes a new candidate script against the API standard.
  4. Gets it evaluated on the training farm.
Scatter plots of train and validation AEP versus search attempt for Claude Code and Gemini CLI, both climbing past the 500-start baseline

Claude Code and Gemini CLI both climb past the 500-multistart baseline (dashed) on train and held-out validation AEP. Stars mark the deployed scripts.

06 / 09 · What they found

The agents found cool new schedules

Four panels comparing learning-rate, penalty-weight, and Adam beta schedules: baseline TopFarm, Claude Code iteration 192, and Gemini CLI iteration 118
Claude Code · iter 192
A U-shaped penalty: relax constraints mid-run, tighten at the end
Gemini CLI · iter 118
Cyclic warm restarts across every hyperparameter at once

Neither schedule family exists in the TopFarm baseline (dashed black).

07 / 09 · In action

Here they are, optimizing

Winning-seed trajectories over the rose-averaged flow field on the DEI training farm (N=80). Darker = wake; brighter = faster average inflow. Final AEP: baseline 8714 GWh · Gemini 8805 GWh · Claude 8821 GWh.

08 / 09 · Benchmarking the results

Claude's schedule generalizes across farms and roses

Twelve-panel matrix of best-feasible AEP per turbine versus turbine count, across three farms and four wind roses, comparing Claude, Gemini, and baselines

500-multistart comparison across 3 farms × 4 wind roses × turbine counts. The Claude schedule is generally better than or on par with Gemini and the baseline, including on farms and turbines it never trained on.

09 / 09 · Conclusions

Narrow the task, and the evaluation stays clean

  • Focusing the agent on scheduling hyperparameters, rather than writing the whole optimizer, makes evaluation clean and attributable.
  • Letting agents write entire scripts drags in timing, multistart, and budget confounds.
  • Next: memory scaffolding over the scientific literature, a Wind Energy Science article, an M.Sc./Ph.D. project, and an adversarial harness that switches wind-farm cases mid-search.

Claude · iter 192 · DEI, N=50

Gemini · iter 118 · DEI, N=50