Skip to content

OverviewΒΆ

This page summarizes the primary classes you’ll use in py-ballisticcalc and how they fit together at runtime.

Core WorkflowΒΆ

  • Calculator: High-level entry point to compute trajectories. Accepts a Shot (scene) and returns a HitResult with trajectory rows and helpers.
  • Shot: Details a shooting scenario – Ammo, Weapon, Atmo, Wind, and angles (look/slant, relative, cant). Engines convert Shot to ShotProps.
  • ShotProps: Engine-ready scalar form of Shot in internal units.
  • BaseTrajData: Minimal, units-free state for dense internal calculations; used to construct TrajectoryData via post-processing.
  • TrajectoryData: Detailed characteristics of a point on the ballistic trajectory.
  • HitResult: Wrapper for accessing and displaying calculated results.

Projectile & EnvironmentΒΆ

The classes that comprise a Shot:

  • Atmo: Standard or custom atmosphere.
    • Wind: Piecewise-constant winds by distance.
  • Ammo: Wraps projectile physical details and muzzle velocity, including optional powder temperature sensitivity.
    • DragModel: Aerodynamic drag via Ballistic Coefficient and standard drag tables (G1, G7, etc.).
  • Weapon: Gun specifications (sight height, rifle twist rate, zero elevation).

EnginesΒΆ

Calculation engines implement different algorithms for integration and targeting. All inherit from BaseIntegrationEngine.

Selected API references

py_ballisticcalc.interface.Calculator
py_ballisticcalc.conditions.Shot
py_ballisticcalc.munition.Ammo
py_ballisticcalc.conditions.Atmo
py_ballisticcalc.munition.Weapon
py_ballisticcalc.trajectory_data.HitResult
py_ballisticcalc.trajectory_data.TrajectoryData