workshop private

← all creations

Centering

mechanics · created 2026-09-13

A glider, a column of rising air you cannot see, and one instrument to find it with — which reports where you were rather than where you are, by about as many degrees of turn as you have degrees of bank.

physicssimulationgame-feelcanvas

There is no engine. There is a wing that sinks at 0.62 m/s on its best day and a sky with a handful of invisible columns in it going up at four or five, and the entire game is getting your circle onto one of those columns and keeping it there while the wind walks it downwind out from under you.

You get one instrument. It is a flask with a jet in it, it measures how fast the air in the flask is leaving, and it is a first-order low-pass filter with a two-and-a-half-second time constant. Everything below comes out of that one fact.

The needle is late, and it is late in degrees

Fly a steady circle offset from a core and there are two moments: the one where the glider is actually closest to the strongest lift, and the one where the needle reads highest. Here is how far apart they are.

bankturn rateone turnneedle peakswhich istrue peakindicated peak
25°11.6 °/s31.1 s2.20 s late25° of turn1.96 m/s1.75 m/s
30°14.0 °/s25.7 s2.20 s late31° of turn1.91 m/s1.76 m/s
35°16.5 °/s21.8 s2.18 s late36° of turn1.84 m/s1.75 m/s
40°19.2 °/s18.8 s2.12 s late41° of turn1.76 m/s1.73 m/s
45°21.9 °/s16.4 s2.04 s late45° of turn1.84 m/s1.81 m/s
50°24.9 °/s14.4 s1.90 s late47° of turn1.99 m/s1.90 m/s
55°28.2 °/s12.8 s1.80 s late51° of turn2.00 m/s1.84 m/s

Read the fifth column against the first. Up to about 45° of bank the needle is late by roughly your bank angle in degrees, which is a coincidence of this vario and this ship and nothing deeper — a 2.1 second lag and a turn rate that happens to run near a degree per second per degree of bank — but it is a coincidence you can fly with. Bank 40, and what the needle is telling you is 40 degrees of turn behind you.

Notice also what does not change much: the indicated peak is within a tenth or two of the true one, all the way down the table. The instrument is not lying about how strong the lift is. It is only lying about where. A reading you would call accurate on any bench is the whole problem, because the quantity you actually need out of it is a bearing, and a filter does not preserve those.

The lag itself is a design choice somebody made, and it is the right one — a vario with no damping in it is unreadable in rough air. Turn it down and the error goes with it:

vario lagpeak is late byin turn angle at 45°peak reads
0.0 s0.00 s1.84 m/s
0.5 s0.50 s11°1.84 m/s
1.0 s0.96 s21°1.83 m/s
2.0 s1.70 s37°1.82 m/s
2.6 s2.04 s45°1.81 m/s
4.0 s2.58 s57°1.79 m/s
6.0 s3.02 s66°1.78 m/s

Press v in the demo to fly with the 0.15 s version. It is a different game, and a much easier one.

Five ways to centre, and the instinct is one of the bad ones

Start the same way every time — circle centre 110 m off a 115 m core, 42° of bank — and let a different rule work on it for five minutes.

strategyheight in 5 minclimb ratecentred afterfinal offset
never correct99 m0.33 m/snever110 m
steer at the needle-252 m-0.84 m/snever299 m
tighten in rising lift-275 m-0.92 m/snever256 m
widen in rising lift470 m1.57 m/s43 s35 m
the 270° rule341 m1.14 m/snever53 m
the 270° rule, minus the lag399 m1.33 m/s45 s33 m

Two of these give away three hundred and fifty metres against doing nothing at all, and one of them — tighten when the lift comes up — is the thing a hand does without being asked. It is the natural reading of a rising needle and it is worth minus 1.25 m/s against not touching the stick.

The reason is phase, and it is worth being precise about because it is not the vario’s fault. Going round a circle whose centre is off the core, the lift you fly through rises for half the turn and falls for the other half. The rising half is the part where you are flying toward the core; the peak is the closest approach, and after it you are flying away. To slide the circle over onto the core you want the shallow, straight-ish bit of your path to happen on the half where the nose is pointed at it — the rising half. Tightening then does the exact opposite: it bends the path away on the one quarter where it was aimed right, and lets it run wide on the quarter where it was aimed wrong, and the circle walks off downhill. The sign is the whole rule and it is the sign nobody’s hand picks.

This one is not about the lag. Turn the vario down to nothing and it stays backwards:

vario lagtighten in rising liftwiden in rising lift
0.0 s-0.811.59
1.0 s-0.921.57
2.6 s-0.921.57
4.0 s-0.911.47
6.0 s-0.891.34

Where the lag does bite: the rule with a bearing in it

The rule people are taught has a bearing in it. Note where the needle peaked; keep turning three quarters of a circle; straighten for a couple of seconds. The 270° is there because you want to be flying at the core when you straighten, and heading at the core is a quarter turn before closest approach — so, three quarters of a turn after it.

After it. Not after the needle says so. Subtract the lag and:

vario lagthe 270° ruleminus the lagwhat the correction bought
0.0 s1.361.36+0.00 m/s
0.5 s1.231.28+0.05 m/s
1.0 s1.111.23+0.12 m/s
2.0 s1.231.33+0.10 m/s
2.6 s1.141.33+0.19 m/s
4.0 s0.871.33+0.47 m/s
6.0 s0.311.32+1.01 m/s

The lag-corrected version is flat across the whole column — 1.32 to 1.36 m/s whatever instrument you hand it — and the uncompensated one falls off a cliff. At six seconds of damping the textbook rule has been reduced to a quarter of its own climb rate while the corrected one has not noticed. That is the shape you want from a correction: it should be worth exactly the error it corrects and nothing else.

How tight to turn, and which way to be wrong

Sink goes up with bank because lift has to rise to n·W and the induced term goes as the square of it: 0.62 m/s wings-level, 1.05 at 45°, 1.76 at 60°. Bank buys you a smaller circle, and a smaller circle sits deeper in the core. Those two trade, and the trade lands somewhere different for every core.

bankradiusR=60 mR=80 mR=100 mR=120 mR=160 mR=220 m
20°138 m-1.24-1.12-0.72-0.210.721.62
25°112 m-1.23-0.79-0.150.441.312.03
30°95 m-1.08-0.380.340.921.682.25
35°83 m-0.86-0.010.711.241.892.35
40°74 m-0.640.280.961.441.992.38
45°67 m-0.470.461.101.532.012.34
50°62 m-0.370.551.141.521.952.24
55°58 m-0.380.511.071.421.802.05
60°55 m-0.520.340.861.181.531.75

Climb rate in m/s, perfectly centred, 4.6 m/s core, 0.3 m/s of ambient sink. The optimum walks from 50° in a narrow core to 40° in a fat one, which is the advice every club gives and it is nice to watch it fall out of a polar.

The part worth taking away is the asymmetry. Compare the two ends of each column — 20° of bank against 60°:

core radius20° of bank60° of bankwhich error is survivable
60 m-1.24-0.52steep, by 0.72 m/s
80 m-1.120.34steep, by 1.46 m/s
100 m-0.720.86steep, by 1.58 m/s
120 m-0.211.18steep, by 1.39 m/s
160 m0.721.53steep, by 0.81 m/s
220 m1.621.75steep, by 0.13 m/s

Every row. Being too steep costs you a fraction in a wide thermal; being too shallow puts you outside a narrow one entirely, in the ring of compensating sink, going down in air that would have carried you up at a metre a second. If you are going to be wrong about the bank, be wrong steep — which, for whatever it is worth, is the same verdict Skipstone reached about the angle you hold a stone at, for entirely unrelated reasons.

There is also a hard floor. Turn radius is V²/(g·tan φ) and V has to climb with the square root of the load factor, so the circle stops shrinking: 67 m at 45°, 55 m at 60°, and about 50 m at 70°, after which more bank buys nothing but sink. A core narrower than that is a core this ship cannot get inside, however well it is flown. The table’s R=60 column is entirely negative and that is why.

What missing it costs

Same thermal, same 42° of bank, circle centre moved off the core:

circle centre is off byclimbof the centred climb
0 m1.39 m/s100%
20 m1.33 m/s96%
40 m1.16 m/s84%
60 m0.90 m/s65%
80 m0.58 m/s42%
100 m0.21 m/s15%
140 m-0.51 m/sgoing down
180 m-1.06 m/sgoing down

Twenty metres is free. Eighty costs you more than half the thermal. A hundred and forty — forty metres further out, under three wingspans — and you are descending in a thermal, which is the condition the whole piece exists to describe: everything looks right, the needle is showing lift twice a turn, and the altimeter is unwinding.

The air

A thermal here is W0·[exp(-u) - (1/9)exp(-u/9)] with u = (d/R)². The second term is a ring of compensating sink, and the 1/9 is not tuned — it is the one coefficient that makes the whole thing integrate to exactly zero over the plane. Air that goes up somewhere comes down somewhere, and this way the sink on the run-in is the same air you are about to climb in rather than a penalty somebody added for balance. Lift is positive out to 1.55·R and the sink ring peaks at about 5% of the core strength, spread over an area nine times larger.

Three other things the model does because they change how it is flown:

MacCready, and the setting that is fastest right up until it is not

Between thermals, how fast should you fly? The answer has been known since 1954 and it is a tangent line: pick the climb you expect to get next, draw the tangent to the polar from it, fly that speed. Faster when the next climb is strong, faster still through sink.

An autopilot flying a 100 km task on six different randomly generated days, with nothing changed but the number on the ring:

MacCready settingcruise speedfinishedspeed when it finishedmean distance
0.0 m/s102 km/h6/666.9 km/h100 km
0.5 m/s119 km/h6/669.5 km/h100 km
1.0 m/s132 km/h4/675.1 km/h93 km
1.5 m/s144 km/h0/647 km
2.0 m/s155 km/h1/689.5 km/h48 km
2.5 m/s164 km/h0/634 km
3.0 m/s172 km/h0/631 km

The climb that autopilot actually achieved on those days, averaged over every turn it flew: 0.84 m/s. Which is where the finished column falls apart, to within the resolution of the sweep — the theory’s own answer is “set it to the climb you expect”, and setting it to the climb you want is the row where two-thirds of your flights end in a field.

Look at the fourth column and the fifth together. The 2.0 setting has the best speed on the board and one finish out of six. That is not a fast setting, it is a survivorship table: the runs that finish at 2.0 are the runs that happened to find a good thermal early, and the five that did not are not in the average. MacCready theory prices the climb. It does not price not finding one, which is why the demo’s summary panel leads with distance and puts the speed at the bottom: getting there slowly beats landing in a field.

Playing it

Things to look at while flying it: the trail is coloured by what the air was doing, which makes the last four turns a map of the thermal you are in — and the downwind march of that trail is the drift. The glider’s shadow sits at a fixed offset per metre of height, so the closer it gets, the lower you are. Dust spirals mark thermals too young to have made a cloud. Birds circle in the good ones, at their altitude rather than yours.

Reuse

src/centering.mjs is a framework-free ES module and draws nothing.

Gotchas