Campaign Parameter-Sweep Orchestration
A sweep orchestrator generates comparable shot plans across a parameter grid, submits them by priority, and adapts the grid from results.
Systematic exploration
A breeder campaign explores how the machine behaves as parameters vary: fuelling, heating waveform, shape, and the tritium breeding ratio design lever across 1.1, 1.5, and 1.8. The sweep orchestrator turns a parameter specification into an ordered set of individual shot plans, each identical in structure so results are directly comparable, and submits them to the scheduler.
Grid to plans
grid = product(fuelling=[...], heating=[...], tbr_lever=[1.1,1.5,1.8])
for point in ordered(grid, by=RISK_ASCENDING): # safe points first
plan = shot_plan(base=campaign.base, overrides=point)
plan.priority = P2
scheduler.submit(plan) # each runs on the shot state machine
Safety-ordered execution
- Points are ordered so lower-risk operating points run before more aggressive ones.
- A new point at the frontier of the sweep is treated as a new operating point and may require higher approval authority.
- Every commanded point is still bounded by the envelope; the sweep cannot request an out-of-envelope point.
Adaptive sweeps
The sweep can be adaptive: results from completed shots (fed by the twin and diagnostics) reshape the remaining grid, concentrating shots where behavior is most informative or refining near a boundary. A copilot (L5) may propose the next point, but that proposal is gated exactly like any other action, so an adaptive sweep never escapes the safety discipline.
Rollup and reproducibility
Per-shot results roll up into the tritium campaign workflow accounting, and the entire sweep, its grid, ordering, and adaptations, is journalled so it is fully replayable. As an engineering program, sweeps are first executed against the twin, so the sweep logic and its safety ordering are proven before the breeder is built.