{
"id": "analytic_vacuum_downhill",
"description": "Zero-drag vacuum shot down a 20 deg incline (mirror of the uphill case). The along-bore axis now accelerates (a_x = +g sin phi) while the perpendicular drop is identical, confirming the sign handling of the shot-frame gravity decomposition for downhill fire.",
"source": {
"kind": "analytic",
"citation": "Closed-form inclined-fire kinematics in the shot frame, g = 9.80665 m/s^2, no drag. Incline phi = -20 deg, v0 = 600 m/s along bore. x(t) = v0 t - 0.5 g sin(phi) t^2 (sin phi < 0 so x accelerates), perpendicular drop y(t) = -0.5 g cos(phi) t^2 (cos phi even, so identical to uphill).",
"retrieved": "2026-07-15"
},
"inputs": {
"muzzle_velocity_mps": 600.0,
"bullet_mass_kg": 0.010886,
"bullet_diameter_m": 0.0078232,
"bullet_length_m": 0.03048,
"bc_value": 0.5,
"bc_type": "G1",
"muzzle_angle_rad": 0.0,
"shooting_angle_rad": -0.3490658503988659,
"twist_rate_in": 0.0,
"temperature_c": 15.0,
"pressure_hpa": 1013.25,
"humidity_frac": 0.0,
"zero_drag": true
},
"expectations": [
{"observable": "drop_m", "range_m": 601.6770359193, "value": -4.6076183198, "tol_abs": 0.005,
"tolerance_justification": "Perpendicular drop at t=1.0 s (identical magnitude to uphill; cos(phi) is even). 5 mm ceiling per the vacuum-interpolation argument."},
{"observable": "tof_s", "range_m": 601.6770359193, "value": 1.0, "tol_abs": 0.001,
"tolerance_justification": "As uphill; 1 ms guard."},
{"observable": "drop_m", "range_m": 1206.7081436771, "value": -18.4304732793, "tol_abs": 0.005,
"tolerance_justification": "Perpendicular drop at t=2.0 s."},
{"observable": "tof_s", "range_m": 1206.7081436771, "value": 2.0, "tol_abs": 0.001,
"tolerance_justification": "As above."}
]
}