Building Intercept

I built a missile guidance simulation. Not because I needed to, but because I wanted to understand something that had always felt like a black box.

Guidance systems are fascinating. They solve a problem most of us take for granted: how does something moving very fast find something else moving very fast, when both are trying to outmaneuver each other?

The answer, it turns out, is elegant. Proportional navigation works by maintaining zero line-of-sight rate. If the angle between you and your target isn't changing, you're on a collision course. The math is simple:

a = N × Vc × LOS_rate

The implementation is not.

What I learned building this:

Sensor noise changes everything. In theory, you have perfect information. In practice, you have estimates. Adding realistic sensor modeling forced me to implement Kalman filtering, which introduced latency, which cascaded into every other system. Complexity breeds complexity.

Assignment matters as much as guidance. With multiple interceptors and multiple targets, which platform shoots which target becomes as important as how it guides itself. The Hungarian algorithm, threat-priority queuing, greedy assignment, each approach has tradeoffs that only become visible when you run Monte Carlo simulations.

The real learning happens in the gaps. Every component I built exists because a question arose during testing. Why did that intercept fail? What happens in wind? How do you handle a maneuvering target? Each question demanded implementation, and each implementation revealed more questions.

Building teaches you what reading cannot. You don't understand proportional navigation until you've watched it oscillate because your gain was too high. You don't understand sensor fusion until you've seen a Kalman filter diverge.

I'm still adding features. Electronic warfare effects. Fuel constraints. Swarm coordination. Each one a new gap to explore.

The project isn't about missiles. It's about closing the distance between theory and intuition.

View the project on GitHub