Public · Apache-2.0 · Tesseract Hackathon 2026, Track 02

A wing designed as if it were rigid lands 16.2 % worse, and four cheap ways to see that coming all fail.

A flexible wing twists under the lift it makes, and the twist changes the lift. Designing one from the rigid wing's gradient is normal practice and usually fine. This measures where it stops being fine, and asks whether anything cheap can tell you in advance.

Design space
17 × 17 = 289 wings
Result
Negative
The coupled optimiser's own wing. Dashed is the shape it is built with; solid is the shape it holds in the air at the design condition. The air gives back four fifths of the tip washout, and that is the whole reason a rigid gradient is answering a different question.
01

What is being designed, and what is allowed to move

The object

One wing, held at a fixed trimmed lift. Six numbers set its built-in twist and its torsional stiffness along the span, and the objective is induced drag plus a structural mass proxy. Nothing else about the wing changes.

Two knobs, 289 wings

The sweep varies two of the six: tip geometric twist from −0.10 to +0.06 rad, and a uniform stiffness multiplier from 10+0.6 down to 10−1.0 times the design value, seventeen values each. One cell of the map further down is one wing, solved to convergence, with both gradients computed at it.

What makes a design bad

Two things, and only one of them is a hard stop. Torsional stiffness has a lower box bound, and both optimisation runs drive straight into it. Below that bound sits divergence, the dynamic pressure at which the aerodynamic stiffness cancels the structural stiffness and the twist grows without limit; the design condition here sits at 74.7 % of it, against 37.1 % at the starting design. A box bound stops the optimiser, not a stability constraint.

Why coupling is the whole difficulty

The lift twists the wing, and the twist changes the lift. Solving it means running the aerodynamics and the structure against each other until they agree, then transposing that whole loop to get a derivative. The rigid gradient skips it: it is the exact derivative of the rigid wing's objective, it is correct in the limit of vanishing dynamic pressure, and it costs a fraction as much. Using it on a flexible wing is a bet, and the next four chapters are that bet settled on one wing.

The two knobs the map sweeps. The planform is rectangular and is drawn thicker than sixteen to one so the marks fit. In planform a twist is invisible, being a rotation about the span axis, so it is drawn at the tip section edge-on; the angle is at four times scale and says so, and the numbers beside it are the real ones.
Why the wing twists up and not down. The lift acts at the aerodynamic centre, which on this model sits 0.15 chords ahead of the elastic axis the section rotates about. More lift is therefore more nose-up moment, which is more incidence, which is more lift. Beyond a dynamic pressure that loop no longer closes, and that pressure is the divergence pressure the stiffness bound is spending.

The optimiser driven by the rigid gradient did not merely converge slowly. of the steps it took made the true objective worse, and at its worst the two gradients sat at : not merely disagreeing but very nearly exactly opposed. It was walking away.

Both arms end at the same stiffness bound, the same trimmed lift and the same mass proxy, so the entire difference is aerodynamic: more induced drag for the same lift. The spanwise load distribution in chapter 03 is where that comes from.

02

One round trip at a time

The coupling, run in the open

The aerodynamics hands the structure a torque. The structure hands back a twist. The twist changes the incidence, so the torque changes, and it goes round again. Below is that exchange on the coupled design, one frame per round trip, starting from an undeformed wing.

round trip 1

What is happening

01 Before the air acts

The first frame is the wing as drawn, before the air has acted on it: zero elastic twist everywhere. Each frame after it is one complete exchange between the two solvers.

02 One exchange at a time

The first exchange is the largest. The tip picks up 0.97 degrees, about a fifth of the twist it will finish with, and no later pass moves it that far again. Watch the tip. It overshoots nothing and approaches its final value from below, each pass leaving a fixed fraction of what is left. That fraction is the contraction factor of the loop, and it is not a free parameter: measured here it is , so about a quarter of the remaining gap closes per pass, against a dynamic pressure of of this design's divergence pressure. By the twelfth pass the tip is within 0.15 degrees of where it settles, and each pass from here closes about a quarter of what is left. The loop converges as slowly as the wing is close to diverging.

03 Where it stops

Thirty-four frames in, the tip holds against the the direct coupled solve gives, a difference of of a degree. The partitioned exchange drawn here and the single linear system the repository solves are the same answer. Which is the awkward part of the result. The designs where the cheap gradient fails are also the designs where the accurate one costs most.

A block diagram: design variables feeding an optimiser at the top, two solver boxes labelled aero A1 Tesseract and struct S1 Tesseract feeding a coupled objective, a coupled C1 check-gradients box highlighted in red at the bottom, and a legend separating physics from qualification.
2026 The two solvers and the two ways they are coupled, with the gradient check that runs once at the side. This is the diagram the round trip above traverses; the red box is the only part of it that exists to disagree with the rest.
03

One wing, optimised twice

The trap, in four numbers

Take the wing from chapter 01 and optimise it two ways from a common start, both to convergence: once with the coupled gradient, once with the rigid one. Then score both answers with the coupled model, because that is the only score a real wing gets.

The four numbers below are the whole result. Read the table by row and the cheap run looks like a tie. Read it by column and it is 16 % worse. The failure is invisible from inside the component that caused it.

Two designs, two ways of scoring them
the wingscored by its own model scored by both solvers together
Both wings carry exactly the same total lift. The rigid-designed one puts more of it near the tip, and an outboard-loaded wing of the same span makes more induced drag. That is the 19.9 %.

Two numbers come out of that pair and they are not the same number. At the same trimmed lift and the same structure the rigid-designed wing makes 19.9 % more induced drag, which is the aerodynamic penalty. Scored on the coupled objective the optimiser was actually minimising, the same wing lands 16.2 % worse. The second is the one that matters to a designer, because it is the number their own optimiser would have reported if it had been told the truth, and the run that produced it converged normally and declared success against its own model the whole way.

The same wing, both ways, as the study drew it

The native panels above rebuild the comparison from the run records. These are the figures the study itself produced.

A two-panel figure titled 'At the design condition, the air simulator alone costs 20 percent more induced drag': left, built-in twist against span for flight and as-built cases with a shaded region between them; right, percent induced drag over the same span with an air-simulator-only curve rising to the tip. A table beneath reports both models passing their own checks and the crossed pairing failing.
2026 The study's own figure. Note the table: each model passes against itself, thousands of checks each, and the crossed objective-gradient pairing fails 462 of 540. A model can be right about itself and still be the wrong model to hand to an optimiser.
A three-panel figure: built-in twist against span for aerodynamic-gradient-only and coupled-gradient designs, an objective comparison bar region, and a lower panel showing the two designs scored against each other with a shaded red band marking where the cheap gradient loses.
2026 The two designs scored against each other. The line that matters is the last one: each design wins on its own scoring and loses on the other, which is what it means for the substitution to be invalid rather than merely inaccurate.
04

Where the substitution fails

289 wings

One design point is an anecdote. The map is the measurement: at every one of the 289 wings, both gradients are computed, a step is taken along the cheap one, and the fraction of the promised improvement it actually delivers is recorded. That fraction is r̂. The field beside this is r̂ everywhere, and a wing is counted against the cheap gradient when r̂ < 0.01.

The 31 that fail sit in one corner and it is a physically sensible one: the three most washed-out tip twists, −5.7°, −5.2° and −4.6°, and only in the softer eleven of the seventeen stiffness rows, which is dynamic pressure from 37 % of divergence up past it. Nothing fails at the stiff end. In 30 of the 31 the step does not merely buy nothing, it makes the wing worse.

That shape is the repository's own account of the mechanism, and it is geometric. A wing with a lot of built-in washout, soft enough that the air twists it back, ends up flying with its geometric twist nearly cancelled. Elastic washin against geometric washout: the same picture as the figure at the top of the page, taken to the point where it dominates.

The deeper reason is in one column of the record, and it is the sharper half of the result. At fixed lift the rigid objective contains no dynamic pressure at all, so the rigid gradient returns the same vector at every flight condition the aircraft will ever see: norm 3.7250, spread exactly zero. Its error is a fixed quantity, while the coupled gradient shrinks as the design approaches the coupled optimum. A fixed error dominates a shrinking signal, and the place where that happens is the last neighbourhood an optimiser visits.

    05

    Four cheap ways to guess, scored

    The negative result

    Four warning signs were declared before scoring, each with its threshold fixed in advance: dynamic pressure against divergence, maximum elastic twist, a twist-cancellation ratio, and how much load has moved inboard. Each is the kind of number a designer already has.

    The bar they have to clear is low. Only 31 of the 289 designs fail, a base rate of 10.7 %, so a warning sign that simply says "no" every time is right 89.3 % of the time. The best of the four reaches a Matthews correlation of 0.10 against that, and the one drawn from this study's own account of the mechanism scores worst of all. Accuracy is the wrong column to read; the two error columns beside it are the ones that carry the result.

    Each comparator against the map, at its predeclared threshold
    warning signtrue posfalse pos missedaccuracy

    Every one of them is monotone in flexibility, so every one of them fires at the soft end of the sweep. The median position of their positives sits at column 8, 9, 9 and 10 of seventeen; the failures sit at column 1. They are not weak detectors of the boundary. They are looking in the other half of the design space, which is why all four land below a rule that simply predicts "no" every time.

    All four read operating-point state, while the governing ratio has a design-space quantity in its denominator that operating-point state cannot observe. That accounts for these four scores without ruling out a better indicator.

    Two panels titled 'Neither factor alone inverts the cheap gradient's advice, the boundary needs both': left, a measure against dynamic pressure as a fraction of divergence pressure with a step down and a shaded region; right, the same measure against gap proximity, both with the optimised design and a generic design marked.
    2026 Where the substitution stops being safe, as a boundary in two variables rather than a single threshold. The point the title makes is the useful one: neither dynamic pressure nor gap proximity alone predicts the inversion, so a rule of thumb in either variable would be wrong on its own.

    What a negative result is worth

    The useful result here is the negative one. It does not say the rigid-wing gradient is unsafe: for most of this design space it is fine. It says that on this wing, the cheap proxies a designer would reach for do not locate the boundary, so the options are to compute the coupled gradient or to accept that you do not know which side you are on. The map, the comparators and their thresholds are all in a public repository, so the result can be disagreed with in the only way that counts.

    What this does not establish

    06

    Four minutes of the tool being driven

    Demo and access

    Everything above is a still argument about a moving system. This is the system moving: four minutes of the tool being driven end to end.

    Demo, 4:05. Every number shown comes from the committed records in the repository.

    The repository is public under Apache-2.0, at github.com/MasonShopperly/misFit. It holds the committed records every number here is drawn from, a replay that reads them in under a second, and the full route to re-run the sweep and both optimisations on a CPU. Nothing here needs a GPU or a licence to check.

    It was built for Track 02, multi-physics and coupled systems, of the Tesseract Hackathon 2026 run by Pasteur Labs.