External Ballistics Simulation

  Posted on February 19, 2015   ·   1 min read   ·   #programming 

Background: including (but not limited to) drag, gravity, air density, altitude, rotation of the bullet, and rotation of the Earth.

One solution is to connect a computer to a manual targeting system (ie. a scope) and estimate the corrected target location by accounting for these external factors.  The user may then line the manual targeting system up with the corrected target location, hoping to the high heavens that the target will be hit upon releasing the projectile.

Objective: Determine the required release angle given the muzzle velocity and target distance, accounting for external factors.


  • Only the corrected vertical distance is calculated
  • Values have not yet been validated for accuracy
  • Purely mathematical simulations lack the accuracy provided by simulations backed by empirical data

Framework: Python(x,y)

Visualization of release angles between 0 and 90° given the same muzzle velocity.

Flowchart of the algorithm to determine the required release angle.

Visualization of the algorithm on the release angle increment. The magenta trajectory is 5° higher than the red trajectory; the green is 2.5° higher than the magenta, and so on.

Predicted trajectory on flat ground.

Predicted trajectory when target is uphill from user.

Predicted trajectory when target is downhill from user.

comments powered by Disqus