Yes, within boundaries that this campaign went looking for. 38 flights over one 495 km route, no satellite fix at any point, with cruise height and wind as the only things that changed. Of the 27 flights that reached the approach, the aircraft handed over a position that was a median 11 m from the truth, worst case 46 m — which is the number the landing depends on. Behind that: altitude is a wall, and above about 7,000 ft the aircraft recognises nothing at all, drifting 1% of the distance it flies. Wind is a tax — steady wind to 35 kt never lost it — but gusty wind at 25 kt broke all three attempts, and broke them on the ground. Every flight is reported, including the five that never got airborne.
A video of an approach is three minutes long. The flight in front of it is three hours. Take satellite navigation away and almost all of the exposure sits in that leg — and the leg is the part that never gets filmed, because nothing visibly happens during it.
Which is exactly why it is worth measuring. Error on a leg accumulates quietly, with nothing to correct it against until the aircraft is close enough to see the airfield, and no obvious moment at which a reader would notice it had gone wrong. So two questions are worth asking of a system like this, and only the second one tends to get asked late:
This campaign answers the first and, in one condition, gives an uncomfortable answer to the second. The other half of the question — whether it can then land at a field it has never seen — is a separate campaign, reported on the approach page.
A result is worth something in proportion to how little the system was given. Each line below is a thing a reader is entitled to assume was not quietly relaxed to make the numbers come out.
Ipoh (WMKI) in the north to Senai (WMKJ) at Johor Bahru in the south, by way of a turning point over Melaka. Both ends are civil airfields and the whole of it is public: 495 km in seven legs, about four hours in a Cessna 172. The route runs down the flat western side of Peninsular Malaysia, so the mountain spine sits east of it the entire way — which is the reason an aeroplane can be asked to cruise this at 2,000 ft at all.
What was not denied is set out under “what this is not”: this is simulation, the system is fed a rendered view of the world, the visibility was generous, and the imagery flown comes from the same source as the imagery it refers to. Those are the places this rig is kinder than reality.
Everything else on this page is error along the way. This is the number that is handed to whatever happens next, and it is the only one an operator would act on: how far out was the aircraft when it gave the approach a runway to fly to?
| Flights | Median | Best | Worst | |
|---|---|---|---|---|
| Error along the leg, at 2,000 ft, calm or 8 kt | 2 | 4–6 m | — | 95 m |
| Arriving at the start of the approach | 28 | 29 m | 2 m | 3,754 m |
| Handing the runway to the approach | 27 | 11 m | 3 m | 46 m |
Non-gusty flights that reached each point. One flight arrived at the start of the approach 3,754 m out and never reached a handover at all; it is the 10,000 ft case described under altitude.
A median of 11 m and a worst case of 46 m, with no satellite fix, after up to four hours in the air. That is across every height from 2,000 to 12,000 ft and every steady wind to 35 kt — including the flights whose en-route error was measured in kilometres. It is an independent corroboration of the 11–52 m figure the approach campaign rests on, from a third route, longer than either of the two that produced it.
The interesting part is the row in the middle. The error on arrival at the approach is far larger and far more variable than the error at handover — a median of 29 m, but five flights arrived more than 100 m out and three of those were over 500 m. Every one of them was inside 25 m by the time it handed over. Whatever the leg does to the aircraft's idea of where it is, the arrival mostly undoes, and a bad leg is not automatically a bad handover. The 12,000 ft flights make the point at its most extreme: a kilometre of error at cruise, 21 and 22 m at handover.
Of 38 flights, 21 landed. The other 17 are the reason this campaign was worth flying:
Of everything that changed across 38 flights, altitude is the one that matters. Position error along the leg holds in the tens of metres to 6,000 ft, is marginal at 8,000 ft, and is kilometres above that — not because accuracy degrades with height, but because recognising the ground stops working altogether.
At 10,000 and 12,000 ft there was not one fix at cruise height — in either flight, at either height. For about two hours the aircraft navigates on heading and airspeed alone, and the error that results is completely orderly:
| Cruise | Wind | Minutes at cruise | Error at end of cruise | Along track | Across track |
|---|---|---|---|---|---|
| 10,000 ft | calm | 131 | 4,479 m | +1,845 m | 4,081 m left |
| 10,000 ft | steady 8 kt | 123 | 3,164 m | +889 m | 3,037 m left |
| 12,000 ft | calm | 120 | 3,984 m | +1,927 m | 3,487 m left |
| 12,000 ft | steady 8 kt | 112 | 2,874 m | +392 m | 2,847 m left |
2.9 to 4.5 km over about 400 km — roughly 1% of the distance flown — and it goes the same way every time: mostly sideways, always to the left. That is the signature of a residual compass error, and it matches what the aircraft had left over after working its own instruments out on departure. It settled on a compass error 0.45° short of the truth, and 0.45° held for 400 km is about 3.1 km across track. An airspeed reading 0.45% high accounts for roughly 1.8 km along it. The drift is not mysterious. It is the calibration residue, flown out to its logical conclusion.
There is nothing to recover from, in the sense that matters: as soon as the aircraft descends through the boundary it recognises the ground again and the error collapses. In five of the six flights that cruised above 6,000 ft the first fix came at 6,128 to 7,053 ft, between 1.4 and 10.9 minutes after leaving cruise, and the position went from kilometres to 10–60 m inside a minute. All four of the dead-reckoning flights in the table above then handed over inside 30 m.
The sixth is on the page because it is the one that did not. One 10,000 ft flight got no fix at all until 2,120 ft, 27.6 minutes after leaving cruise and by then already in the search for the airfield. It reached the start of the approach 3,754 m out of position, with its own stated uncertainty grown to 26 km, flew 12 search legs and never found the field. The record does not show why matching failed on that descent when it worked on the other three. It is one flight of 38 and it is unexplained, which is a reason to put it on the page.
20 flights at 2,000 ft, five wind speeds from four directions. Not one of them lost its position. What changed was how often the aircraft could place itself, and the cost of that showed up as accuracy, unevenly.
Worth saying plainly, because it rules out the obvious explanation: the system worked out what the wind was doing, and did it just as well in a gale as in a breeze. Every steady wind was learned to within 1–7 kt, and 35 kt no worse than 10 kt — in fact the three closest estimates in the series are all at 25 kt and above. There is one consistent bias: a headwind was persistently read about 7 kt too weak at 10–25 kt. In calm air it invented a wind of 3–4 kt that was not there.
So the degradation in a crosswind is not a failure to understand the wind. It is a consequence of what the aeroplane has to do about it.
These are the challenges the campaign actually ran into, in the order of what they cost. The first accounts for most of the wind result above.
To hold a course in a crosswind an aeroplane does not fly down the course. It points into the wind and crabs along it — about 6° off in a 10 kt crosswind, about 23° off in 35 kt at this speed — and whatever it is looking through points with it, while the reference it compares against was captured looking along the course. The cost is measurable and steep: 14.1% of two-second intervals carry a fix at 0–4° of crab, 5.0% at 12–16°, and 2.0% at 20–24°. Fixes are about seven times rarer in a strong crosswind, and the loss of accuracy follows from the scarcity itself. This is the clearest single lever on the page, and it is a property of the reference material rather than of the aircraft.
The last 174 km of the route, Melaka down to Senai, is plantation — the same crop, planted the same way, for an hour and a half. It is the longest leg and it has the lowest fix rate on the route, 5.8% of intervals against 9.3–15.7% on the six legs before it, so an error has both the least correction and the longest run in which to grow. Across the 20 wind flights the typical error per 50 km stays between 4 and 26 m for the first 300 km, then climbs to 68 m, 226 m and 394 m over the final three stretches, with the worst single flight at 1,478 m. Terrain alone is not the fault: in calm or 8 kt no part of this route exceeds 15 m. It takes sparse fixes and wind together. Nor is it the crosswind alone: the three gentlest wind flights — a head or tail wind at 10–20 kt — finish the leg at 10–11 m, and every other wind flight finishes it between 113 m and 1,478 m out, whichever direction the wind came from.
The departure runway lies across the route's head and tail wind directions, so the flights with the gentlest conditions en route had the worst conditions getting airborne. With 20–35 kt straight across the runway, fixes taken on departure fell from 59–102 to 4–25, and the aircraft set off 42 to 350 m out of position instead of 1 to 11 m. In the worst case it read its own compass error as +3.21° when the truth was −2.52° and carried that 5.7° mistake into the flight. This one has a good ending: every flight that got airborne corrected a bad departure within the first legs. A bad start is survivable. Three hours of crosswind is what costs you.
Not a degradation — a floor falling away. At 8,000 ft it is marginal: about a quarter of attempts succeed, the longest gap with no fix at all is 19–20 minutes, and false fixes jump to 4–9 per flight. At 10,000 and 12,000 ft there is not a single fix at cruise. The boundary is sharp, it sits at about 7,000 ft, and descending through it restores everything inside a minute. What stops it up there is not known — the candidates are how much detail survives at that range, haze across the distances involved, and the reference material itself. Nothing in this campaign separates them, so the page does not pretend to.
Steady 35 kt never lost its position. Gusty 25 kt lost it three times out of three — at 2,000, 6,000 and 12,000 ft, so height had nothing to do with it. And it is not an en-route failure: all three took nothing at all from their departure and left it 10.0 km out of position. Three hours later they had managed 0 or 1 successful fix out of 952–979 attempts, because the aircraft was looking for itself somewhere it was not, and they arrived 25–27 km from the airfield and flew 17 or 18 search legs without finding it. The same wind stopped five other flights before they flew at all: in 25–35 kt across the departure runway, five takeoffs failed outright. Gusts are the limit of this system as it stands, and the limit is on the ground, not in the air.
The pattern across all five is the argument for measuring an envelope instead of demonstrating a capability: not one of them was predictable from the headline figure. A 4 m median at 2,000 ft in calm air tells you nothing about 23° of crab, an hour and a half of plantation, or a gusty departure — and the cheapest of those to fix is cheap only because the campaign went and found it.
Everything above was flown in one afternoon's light at 40 km visibility, so it says nothing at all about what the sky does to this system. These two findings do, and they are the only measurements of it. They come from earlier flights on different routes — the flights behind the 11–52 m figure the approach campaign rests on. Their records are not in the campaign data beside this page, so unlike every other number here they cannot be re-derived from it. They are reported as found, and the second is the clearest case of the failure the next section is about.
At sunset and at daybreak the aircraft could place itself less than half as often. It entered the cruise 650–700 m out of position and still found the runway, but only after going around once. The cause is mundane and fixable, and it is the same kind of cause as the crosswind one above: the reference imagery was captured at midday, so the shadows do not match.
Broken cloud in the late afternoon defeated navigation outright. With too little ground in view the aircraft never established where it was, and the two flights ended 5.9 km and 45–49 km from where it believed it was. Both were stopped and reported as failures. A 25 kt wind was present in the same runs, so cloud is not isolated as the sole cause — and 45 km is three times worse than anything the gusty flights on this page managed.
The aircraft publishes its own uncertainty: how far out it believes it might be. That is the number an operator would actually act on, so it is worth checking against the error that was really there. It is wrong nearly everywhere, and the direction it is wrong in flips exactly where that matters most.
| Condition | Flights | Uncertainty it stated | Error it actually had | Real ÷ stated |
|---|---|---|---|---|
| 2,000 ft, calm or 8 kt | 2 | 31–32 m | 4–6 m | 0.11–0.15 |
| 6,000 ft, calm or 8 kt | 2 | 30 m | 18–19 m | 0.57–0.60 |
| 8,000 ft, calm or 8 kt | 2 | 133–137 m | 98–104 m | 0.57–0.72 |
| 10,000–12,000 ft | 4 | 5.7–7.2 km | 0.9–1.4 km | 0.14–0.19 |
| Head or tail wind, 10–35 kt | 10 | 32–47 m | 7–20 m | 0.12–0.33 |
| Crosswind, 20–35 kt | 8 | 92–699 m | 27–85 m | 0.08–0.15 |
| Gusty 25 kt | 3 | 7.3–16.8 km | 13.4–14.6 km | 0.67–1.37 |
A ratio well under 1 means the aircraft overstates how lost it is. Above 1 means it understates it. Only the last row goes above 1 — and its 90th percentile reaches 10.5.
Almost everywhere, it is too pessimistic, by a lot. With no fixes at all its stated uncertainty reached 20–24 km by the end of the cruise against a real error of 2.9–4.5 km: six to eight times too large. In a crosswind it inflated to 300–700 m while the real error sat at 30–85 m.
Overstating your own error sounds like the safe way to be wrong. It is not free. The region the aircraft is prepared to believe it might be in grows with that number, and a larger region contains more places that look like the right one — which is where a false fix comes from. Being too pessimistic about where you are is one of the ways you end up confidently somewhere else.
And in gusts it flips. In those three flights the real error ran up to ten times the uncertainty the aircraft stated. They are the flights that ended 14 km out. The aircraft was far more lost than it had any idea, and that is the one failure mode here that cannot be managed around, because nothing downstream ever gets a warning.
The broken-cloud flights above are the same failure, further along. Those two ended 5.9 and 45–49 km out with their own confidence estimate reading kilometres, and kept flying the plan regardless. A navigation system that cannot declare its own loss of integrity is not a candidate for anything, whatever its median error is.
The approach campaign reaches the same place from the other side: all 13 go-arounds in its airframe tour reported a cause that was not the cause. Making this system state its own integrity honestly sits ahead of accuracy work in both halves of the programme, and it is the same item on both pages.
The figures above are worth what the counting behind them is worth.
Method, architecture and implementation are deliberately not described on this page. What went wrong, and what it cost, is.
Five items, in the order of what they would buy. Each is stated with the measurement that would show it worked, before the result is known, so the result cannot be chosen after the fact.
This one the campaign has already answered. 6,000 ft produced more fixes than any other height tested, 2,000 ft included, at about 20 m of error. Above about 7,000 ft there is nothing to be had until the descent. Until something changes that is the ceiling, and it is a planning constraint rather than a defect.
Hypothesis: not chosen. Three candidates — how much detail survives at that range, haze across the distances involved, and the reference material itself — and this campaign separates none of them. Naming a favourite before testing is the easiest mistake available here. Measure of success: a fix at cruise height at 8,000 ft, where today a quarter of attempts succeed and 4–9 per flight succeed wrongly.
The crab finding is the clearest lever here: fixes seven times rarer at 23° of crab than at 0°, with the cause in the reference material. Measure of success: the crosswind-from-the-left column at 30 and 35 kt back inside the 50 m band on the same route, with the fix rate at 20–24° of crab reported beside it.
The stated uncertainty is six to eight times too large when there are no fixes and up to ten times too small in gusts. The second is the one that matters: it is how a flight ends up 14 km out with nothing downstream being warned. Same outstanding item as on the approach page, and it ranks above further accuracy work in both. Measure of success: a gusty flight that declares its own loss of integrity and stops, instead of flying the plan to the end.
One route, one seed, one time of day, one visibility. The findings most exposed to that are the final leg's error build-up, the 49 m median in reduced visibility, and the asymmetry between a crosswind from the left and one from the right, which repeats across five speeds and has no explanation. Measure of success: all three re-measured on a second route and a second seed, reported whether or not they repeat.
The work is continuing, so these figures will move. Nothing already published is removed when a better number arrives — it is kept beside it.