Predictive shimming: why the third fit-up iteration should not exist
A gap field is a physical prediction problem, not a measurement chore. What we learned fitting 1,900 joins.
Written by the people doing the work, with the numbers attached. If a post makes a claim, the measurement behind it is in the post.
A gap field is a physical prediction problem, not a measurement chore. What we learned fitting 1,900 joins.
A gap field is a physical prediction problem, not a measurement chore. What we learned fitting 1,900 joins.
Adaptive feed control on stacked CFRP/titanium, and the acoustic signature that predicts an interlaminar burr.
Station balancing under a real narrowbody ramp, with the travelled-work numbers nobody publishes.
How we gate autonomy promotion on measured accuracy and twin validation rather than confidence.
Recall, precision and the cost asymmetry of a missed swarf chip inside a wing box.
Every airframe diverges from CAD the moment the first hole is drilled. Modelling that divergence is the product.
A gap field is a physical prediction problem, not a measurement chore. What we learned fitting 1,900 joins.
The standard fit-up loop is: present the parts, measure the gap with feeler gauges, remove the parts, produce shims, re-present, measure again. On a narrowbody wing box that loop runs 3.4 times on average, and each iteration costs most of a shift.
The uncomfortable observation is that the gap was fully determined before the parts ever met. It is a function of as-built part geometry, fixture state, thermal condition and load path — all of which are measurable in advance. Iteration exists because nobody was modelling it, not because the physics is unknowable.
Across 1,900 joins we drove mean absolute error on the predicted gap field from 0.112 mm to 0.031 mm. At 0.045 mm the shim can be machined from prediction alone. Below 0.035 mm the join closes first time more reliably than a hand-fit one.
| Observation | Actual gap (mm) | Shimmed gap achieved (mm) |
|---|---|---|
| Hand-fit join 1 | 0.41 mm | 0.62 mm |
| Hand-fit join 2 | 0.28 mm | 0.51 mm |
| Hand-fit join 3 | 0.55 mm | 0.79 mm |
| Hand-fit join 4 | 0.34 mm | 0.44 mm |
| Hand-fit join 5 | 0.62 mm | 0.88 mm |
| Hand-fit join 6 | 0.47 mm | 0.66 mm |
| Hand-fit join 7 | 0.22 mm | 0.39 mm |
| Hand-fit join 8 | 0.58 mm | 0.71 mm |
| Hand-fit join 9 | 0.36 mm | 0.58 mm |
| Hand-fit join 10 | 0.51 mm | 0.74 mm |
| Hand-fit join 11 | 0.29 mm | 0.47 mm |
| Hand-fit join 12 | 0.44 mm | 0.61 mm |
| Predicted join 1 | 0.41 mm | 0.43 mm |
| Predicted join 2 | 0.28 mm | 0.30 mm |
| Predicted join 3 | 0.55 mm | 0.57 mm |
| Predicted join 4 | 0.34 mm | 0.36 mm |
| Predicted join 5 | 0.62 mm | 0.64 mm |
| Predicted join 6 | 0.47 mm | 0.49 mm |
| Predicted join 7 | 0.22 mm | 0.24 mm |
| Predicted join 8 | 0.58 mm | 0.59 mm |
| Predicted join 9 | 0.36 mm | 0.38 mm |
| Predicted join 10 | 0.51 mm | 0.53 mm |
| Predicted join 11 | 0.29 mm | 0.31 mm |
| Predicted join 12 | 0.44 mm | 0.45 mm |
Adaptive feed control on stacked CFRP/titanium, and the acoustic signature that predicts an interlaminar burr.
One-up assembly — drill, deburr and fasten without separating the stack — is worth an enormous amount of time. It is also the case where a burr does the most damage, because the burr forms at the CFRP/titanium interface where nobody can see it and nothing can reach it.
What we found is that the burr announces itself. The spindle acoustic signature changes roughly 40 milliseconds before interlaminar damage becomes measurable, in a band that is consistent across machine classes. Adaptive feed reduction inside that window prevents most of it.
The chart shows burr incidence against feed rate before and after adaptive control. The interesting part is not that incidence dropped — it is that the optimal feed rate turned out to be higher than the conservative fixed feed the program had been running for four years.
| Commanded feed (mm/rev) | Fixed feed | Adaptive feed |
|---|---|---|
| 0.04 | 1.8% | 1.6% |
| 0.05 | 2.1% | 1.5% |
| 0.06 | 2.9% | 1.4% |
| 0.07 | 4.4% | 1.5% |
| 0.08 | 7.1% | 1.7% |
| 0.09 | 11.8% | 2.2% |
| 0.10 | 18.4% | 3.4% |
| 0.11 | 27.2% | 6.1% |
Station balancing under a real narrowbody ramp, with the travelled-work numbers nobody publishes.
| Station | Shift A | Shift B | Shift C | Weekend |
|---|---|---|---|---|
| FA-01 Section join | 98% | 96% | 94% | 92% |
| FA-02 Wing-body | 97% | 95% | 93% | 90% |
| FA-03 Empennage | 99% | 98% | 96% | 94% |
| FA-04 Systems | 96% | 94% | 93% | 90% |
| FA-05 Final | 97% | 96% | 95% | 93% |
The finding that surprised the plant: the constraint was not the slowest station. It was the variance of the third-fastest station, which absorbed float that the line had been quietly relying on.
How we gate autonomy promotion on measured accuracy and twin validation rather than confidence.
Model confidence is not evidence. A model can be extremely confident and extremely wrong, and in a domain where being wrong means a misdrilled hole in flight structure, calibrated confidence is table stakes rather than a promotion criterion.
So promotion gates on two things instead: measured agreement with what actually happened, over a defined window, and agreement with the as-built twin's independent simulation. A model that disagrees with physical reality does not promote, however sure it is.
Twenty-nine percent of promotion attempts fail the twin gate. That number is not a failure of the process; it is the process working.
| Metric | Value | Target |
|---|---|---|
| Stations at closed loop | 61.0% | 100.0% |
Recall, precision and the cost asymmetry of a missed swarf chip inside a wing box.
| FOD class | Flashlight sweep recall | Rivetira recall |
|---|---|---|
| Swarf / chips | 41% | 96% |
| Fasteners | 78% | 99% |
| Hand tools | 91% | 99% |
| Sealant debris | 34% | 92% |
| Wipes / rags | 84% | 98% |
| Drill bits | 72% | 99% |
The asymmetry is the whole argument. A false positive costs a mechanic ninety seconds. A missed swarf chip inside a sealed wing box costs a fuel-system contamination investigation and, occasionally, a torn-down structure.
Every airframe diverges from CAD the moment the first hole is drilled. Modelling that divergence is the product.
A digital twin that shows you the CAD model with live sensor data on top of it is a dashboard with extra steps. The useful twin is the one that knows how this specific airframe differs from the design — because that divergence is what determines whether the next join fits.
Divergence accumulates. A part arrives 0.2 mm off nominal, a fixture is 0.1 mm out, thermal state adds another 0.15 mm, and by the wing-body join those small independent errors have compounded into a gap that no as-designed model predicts.
The twin tracks that accumulation per serial. It is the reason predictive shimming works at all, and it is why the fiftieth airframe fits better than the first.
| Assembly stage | Accumulated divergence | Twin-predicted divergence |
|---|---|---|
| Sec 41 | 0.18 mm | 0.17 mm |
| Sec 43 | 0.31 mm | 0.30 mm |
| Sec 44 | 0.44 mm | 0.43 mm |
| Sec 46 | 0.59 mm | 0.57 mm |
| Sec 47 | 0.71 mm | 0.70 mm |
| Wing join | 0.86 mm | 0.84 mm |
| Empennage | 0.94 mm | 0.92 mm |
| Final | 1.02 mm | 1.00 mm |
Every airframe diverges from CAD the moment the first hole is drilled. The as-built twin models that divergence — fit, gap, shim, drilling and structural conformance — and simulates the join before a single fastener is installed.
| Structure | Twin prediction | Measured as-built |
|---|---|---|
| Section 41 | 0.31 mm | 0.34 mm |
| Section 43 | 0.44 mm | 0.41 mm |
| Section 44 | 0.28 mm | 0.30 mm |
| Wing box L | 0.52 mm | 0.55 mm |
| Wing box R | 0.49 mm | 0.47 mm |
| Empennage | 0.22 mm | 0.24 mm |
Each agent owns one part of the structural build. They share one perception layer, one as-built twin and one conformance record, so a decision made at the drill is visible at the join.
Adaptive control of drilling, countersinking and rivet/bolt installation.
Vision + in-process metrology sensing of hole, countersink, fastener, gap and FOD.
Metrology-assisted alignment and predictive shimming that removes hand-fit loops.
Sealant application control and fuselage / wing-body join sequencing.
Every figure below is produced by the same telemetry the agents act on — station cycle, hole quality, gap field, fastener state and conformance. Pilot and design-partner aggregate, trailing 12 months.
Holes drilled under agent control
41.6M
Right-first-time, structural joins
97.9%
Shim hours removed per join
68%
Assembly-line uptime
99.94%
Aggregate across design-partner lines. Baselines are the same stations before Rivetira, measured over an equivalent period.
A line assessment maps one station, quantifies the rework, shim and rate opportunity, and returns a modelled ROI in three weeks. No production disruption.