Skip to content

Crosswind Clock

An interactive windsock and clock-code trainer — set the wind strength and direction, watch the windsock respond, and compare the clock-code crosswind estimate against the exact sine value.

Working out the crosswind component in your head is a core airmanship skill, and most pilots use the clock code: treat the angle between the wind and the runway as minutes on a clock, and read the filled fraction of the hour as the fraction of the wind that is crosswind. This tool lets you stand beside a windsock, set any wind, and see the estimate next to the exact answer so you can judge how good the rule of thumb really is.

Drag on the dial to set the direction the wind is blowing from, and use the slider to set its strength. The windsock swings to point downwind and droops according to the strength — flying straight out at 30 kt, hanging limp when calm. The clock face fills to show the angle off the runway as minutes, and the readout compares the clock estimate with the true sin value.

The clock code

Line the wind angle up against a clock face, counting the angle in degrees as minutes:

Angle off runwayClock readsClock estimateActual (sin)
15°quarter past25%26%
30°half past50%50%
45°quarter to75%71%
60°on the hour100%87%

Multiply that fraction by the wind strength to get the crosswind. A 20 kt wind 30° off the runway gives an estimated 10 kt of crosswind (half of 20) — and the exact answer is also 10 kt, because sin 30° = 0.5 exactly. The estimate is generous at the larger angles (it reads 100% at 60° where the truth is 87%), which is the safe way to be wrong: you plan for slightly more crosswind than you actually get.

Above 60° the clock is simply full — the crosswind is essentially the whole wind, so there is nothing more to estimate.

Why it works

The exact crosswind component is wind speed × sin(θ), where θ is the angle between the wind and the runway centreline. The clock code approximates sin(θ) with the straight line θ / 60 for angles up to 60°. Over that range the two never differ by more than about four percentage points, and they agree exactly at 30°. It is a fast, safe mental substitute for a trig function you can’t do in the flare.

The readout also shows the headwind (or tailwind) component, wind speed × cos(θ), for context — but the crosswind is what decides whether you are inside your aircraft’s demonstrated limit.

For instructors

  • Anchor the mnemonic — set 15°, 30°, 45°, and 60° in turn and let the student read the clock before revealing the sin value.
  • Make it a limit check — “20 kt, 40° off — what’s the crosswind, and is it inside your 15 kt demonstrated limit?” (Clock says two-thirds ≈ 13 kt; near the limit.)
  • Show the safe bias — at 60° the estimate over-reads by 13 points, so the clock always errs toward planning for more crosswind, never less.

Attributes

AttributeDefaultPurpose
runway27Runway designator — sets the painted numbers and the runway heading
runway-length1000Runway length in metres
runway-width30Runway width in metres
wind-fromrunway headingInitial wind direction in degrees (blowing from); the dial takes over after load
wind-speed10Initial wind strength in knots; the slider takes over after load
windsock-colorwhiteWindsock colour (#rrggbb, #rrggbbaa, or rgba(...))
show-controlstrueShow the wind controls (direction dial + strength slider)
show-clocktrueShow the clock face and comparison readout
show-terraintrueGenerate the procedural landscape (false = plain flat plane)
terrain-seedopen-aviationSeed string for the landscape; the same seed always produces the same terrain
sky-color#9ec9e8Scene background (sky) colour
height480pxCSS height of the component

wind-from and wind-speed are also live JS properties, so a briefing can drive the scene programmatically.