Missile Intercept

Intercept incoming missiles by aiming where they will be — and see why a slower interceptor can only catch things heading within arcsin of the speed ratio.

Click where you want your interceptor to detonate — it flies there at a fixed speed and explodes. Click where the missile is and you will miss; click where it is going to be and you will not. The hollow ring marks the computed lead point for the nearest missile. Everything runs in your browser; nothing is uploaded.

Where to aim is a quadratic, not a guess

Aiming at the target is wrong — it has moved by the time you arrive. Aiming at where it will be sounds right and is circular: where it will be depends on the flight time, and the flight time depends on where you aim. Writing the condition down breaks the circle. If the target starts at distance D from you with velocity V, and your interceptor flies at speed s, the flight time t satisfies

(|V|² − s²)·t² + 2(D·V)·t + |D|² = 0

Solve it, and the aim point is wherever the target has got to by then. Checked on 3,000 random setups, the distance the interceptor flies and the distance to the meeting point agree to 3.6e-12 pixels — so the formula is not an approximation, it is the answer.

It is also not a small correction. Against a target crossing at 300 pixels' range:

Interceptor speedLead point is ahead byA straight shot misses by
1.2× the target 452px 513px
1.5× the target 268px 287px
2.5× the target 131px 134px
4× the target 77px 78px

Even at four times the target's speed, aiming where it is rather than where it will be misses by nearly 80 pixels. Speed reduces the lead you need; it never removes it.

The discriminant decides whether interception is possible at all

A quadratic can have no real roots, and here that means something concrete: there is no way to aim, at any range, at any time. Which cases those are turns out to be exact.

Interceptor speedHeadings it can catchMeasuredFormula
0.2× the target within 11.5° of straight at you 6.4% 6.4%
0.25× the target within 14.5° of straight at you 8.0% 8.0%
0.5× the target within 30.0° of straight at you 16.7% 16.7%
0.75× the target within 48.6° of straight at you 27.0% 27.0%
0.9× the target within 64.2° of straight at you 35.6% 35.6%
1× the target within 90.0° of straight at you 50.0% 50.0%
1.25× the target all of them 100.0% 100.0%
2× the target all of them 100.0% 100.0%

The cut-off is arcsin of the speed ratio, and it is exact — sweeping the heading in hundredths of a degree, interception stops being possible within 0.01° of where the formula says, at every ratio tried:

Speed ratioLast heading that worksarcsin(ratio)
0.2 11.53° 11.54°
0.3 17.45° 17.46°
0.5 29.99° 30.00°
0.75 48.59° 48.59°
0.9 64.15° 64.16°

The intuition that a slower interceptor just needs a longer flight is wrong. Outside that cone there is no solution at any range and any time — the quadratic has no real root, not a large one. A half-speed interceptor can catch under 17% of random headings and nothing that is running away from it.

One row deserves its own note, because it is where a reasonable-looking formula goes wrong. At exactly equal speeds the t² term vanishes and the quadratic becomes linear: only targets with a closing component have a solution, which is precisely half of all headings. Writing the rule as "at least as fast catches everything" is out by a factor of two, and the arcsin formula already gets it right — arcsin(1) is a right angle — provided the faster-than branch uses a strict inequality. Comparing the formula against the solver is what caught that; the algebra on its own looked perfectly fine.

How to use

  1. Pick how fast your interceptor flies compared with the incoming missiles.
  2. Click where you want the interceptor to detonate.
  3. Aim where the missile will be, not where it is — it moves while your shot flies.
  4. The green ring marks the computed lead point for the nearest missile.
  5. Try the 0.8x setting to see interceptions that are simply impossible.

Frequently asked questions

Where do you have to aim at a moving target?

At the point it will occupy when your shot arrives, which sounds circular because it is: where it will be depends on the flight time, and the flight time depends on where you aim. Writing the condition down turns it into a quadratic in the flight time, and solving that breaks the circle.

What is the actual formula?

With D the vector from you to the target, V the target velocity and s your projectile speed, the flight time t satisfies (|V| squared minus s squared) times t squared, plus 2 times D dot V times t, plus |D| squared, equals zero. Take the smallest positive root and the aim point is the target position at that time.

How much does leading actually matter?

A great deal. Against a target crossing at 300 pixels range, an interceptor moving at 1.2 times the target speed misses by more than 500 pixels if it aims where the target is. Even at four times the speed it still misses by nearly 80. More speed reduces the lead you need but never removes it.

Can interception ever be impossible?

Yes, and that is what the discriminant tells you. If your interceptor is strictly faster than the target, every heading can be caught. If it is slower, you can only catch targets heading within arcsin of the speed ratio of straight at you — 30 degrees at half speed, which is under 17% of random headings.

Would a slower interceptor catch up given more time?

No. Outside that cone there is no solution at any range and any time, because the quadratic has no real root at all. It is not a question of patience: there is simply no aim point.

What happens at exactly equal speeds?

Exactly half of all headings are catchable — anything with a closing component, nothing that is opening. At equal speeds the t-squared term vanishes and the quadratic becomes linear, which is easy to get wrong: a rule saying "at least as fast catches everything" is out by a factor of two at that single point.

Is this the same as leading a target in a shooter?

It is the same calculation. Any constant-speed projectile against a constant-velocity target gives this quadratic, whether it is a missile, an arrow or a pass in a ball game. Only the numbers change.

Does this send anything anywhere?

No. The game runs entirely in your browser and nothing is uploaded.

🔒 This tool runs entirely in your browser. Nothing you enter is uploaded, logged, or stored.