# Projectile Motion Calculator

> Computes time of flight, horizontal range, maximum height and impact speed for a projectile launched at a given speed and angle from an optional initial height, ignoring air resistance (closed-form kinematics).

- Calculator id: `projectile-motion` · Category: Physics (`physics`) · Tool name: `calculate_projectile_motion`
- Canonical page: https://tttkmbb.com/physics/projectile-motion · This document: https://tttkmbb.com/physics/projectile-motion.md · JSON definition: https://tttkmbb.com/physics/projectile-motion.json

## Purpose

Computes time of flight, horizontal range, maximum height and impact speed for a projectile launched at a given speed and angle from an optional initial height, ignoring air resistance (closed-form kinematics).

**Use when:** You need where and when a thrown, kicked or fired object lands on level ground, or its peak height, from launch speed and angle (and launch height).

**Do not use when:** Air drag is significant (golf balls, bullets, shuttlecocks), the landing point is higher than the launch point, or the object is simply dropped (use free-fall).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `initial_speed_m_s` | number | m/s | required | Initial speed in metres per second. (min 0) |
| `angle_degrees` | number | ° | required | Angle above the horizontal in degrees (0 = horizontal, 90 = straight up). (min 0, max 90) |
| `initial_height_m` | number | m | optional, default 0 | Height of the launch point above the landing level, in metres. (min 0) |
| `gravity_m_s2` | number | m/s² | optional, default 9.80665 | Local gravitational acceleration. Default is standard gravity g_n = 9.80665 m/s² (Moon ≈ 1.62, Mars ≈ 3.72, Jupiter ≈ 24.8). (> 0, max 10000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `time_of_flight_s` | number | s | Time until the projectile returns to the landing level. |
| `range_m` | number | m | Horizontal distance travelled at landing. |
| `max_height_m` | number | m | Peak height above the landing level (includes the launch height). |
| `time_to_max_height_s` | number | s | Time at which the vertical velocity is zero: v·sin θ / g. |
| `horizontal_velocity_m_s` | number | m/s | Constant horizontal component v·cos θ. |
| `initial_vertical_velocity_m_s` | number | m/s | Vertical component at launch v·sin θ. |
| `impact_speed_m_s` | number | m/s | Speed at landing: √(v² + 2·g·h0). |

## Formula

`vx = v·cos θ, vy = v·sin θ; time_of_flight = (vy + √(vy² + 2·g·h0)) / g; range = vx × time_of_flight; max_height = h0 + vy² / (2g); time_to_max_height = vy / g; impact_speed = √(v² + 2·g·h0)`

Point projectile, no drag, uniform g, level landing surface; the time of flight is the positive root of h0 + vy·t − ½·g·t² = 0.

## Data Sources

- HyperPhysics – Trajectories — http://hyperphysics.phy-astr.gsu.edu/hbase/traj.html (reference, retrieved 2026-09-23)
- Wikipedia – Projectile motion — https://en.wikipedia.org/wiki/Projectile_motion (reference, retrieved 2026-09-23)
- NIST CODATA – standard acceleration of gravity g_n = 9.80665 m/s² — https://physics.nist.gov/cgi-bin/cuu/Value?gn (standard, retrieved 2026-09-23)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/projectile-motion?initial_speed_m_s=…&angle_degrees=…`
- `POST https://tttkmbb.com/api/v1/calculate/projectile-motion` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/projectile-motion · OpenAPI operationId `calculate_projectile_motion` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "projectile-motion", "inputs": {…}}`

## Example

- 20 m/s at 45° from ground level: inputs `{"initial_speed_m_s":20,"angle_degrees":45}` → `{"time_of_flight_s":2.8842,"range_m":40.7886,"max_height_m":10.1972,"time_to_max_height_s":1.4421,"horizontal_velocity_m_s":14.1421,"impact_speed_m_s":20}`
- 30 m/s at 30° from 10 m height: inputs `{"initial_speed_m_s":30,"angle_degrees":30,"initial_height_m":10}` → `{"time_of_flight_s":3.6222,"range_m":94.1072,"max_height_m":21.4718,"impact_speed_m_s":33.1079}`

```
GET https://tttkmbb.com/api/v1/calculate/projectile-motion?initial_speed_m_s=20&angle_degrees=45
```

## Limitations

Air drag is significant (golf balls, bullets, shuttlecocks), the landing point is higher than the launch point, or the object is simply dropped (use free-fall). Point projectile, no drag, uniform g, level landing surface; the time of flight is the positive root of h0 + vy·t − ½·g·t² = 0. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Which angle gives the maximum range?**

45° when launching from ground level; the optimum is lower than 45° when launching from a height and higher when the target is above the launch point.

**How realistic is the no-drag result?**

Good for dense, slow objects (shot put, thrown stones). For a golf ball or bullet the real range can be far shorter than the calculated value.

## Related

- [Free Fall Calculator](https://tttkmbb.com/physics/free-fall.md) — The special case of a dropped object.
- [Quadratic Equation Solver](https://tttkmbb.com/math/quadratic-equation.md) — Solve the flight-time quadratic for other landing heights.
- [Speed, Distance & Time Calculator](https://tttkmbb.com/physics/speed-distance-time.md) — Horizontal motion is uniform.
