Wind triangle solver
Flying a heading of 90° at 100 knots with 20 knots of wind from 0°, your track becomes 101.309932° and your ground speed 101.98039 knots. Give any workable set of heading, track, speeds and wind and the missing values are filled in. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Heading deg
- 90
- Airspeed
- 100
- Wind speed
- 20
- Wind from deg
- 0
- Calculation mode
- find_track
- Track deg
- 101.309932
- Ground speed
- 101.98039
- Wca deg
- -11.309932
Every cross-country flight, drone survey, and sailboat race lives inside the same geometry: the wind triangle that links true airspeed, heading, ground speed, track, and the wind vector. Mental E6B rules and paper sine cards disagree by a knot or two; production planners need a single deterministic contract that returns wind correction angle, drift, and headwind or crosswind components without a weather network call. This wind triangle solver accepts any sufficient subset of the five legs—heading, track, airspeed, ground speed, and wind (meteorological from-direction plus speed)—and fills in the missing values with pure vector arithmetic.
What the navigation wind triangle is and which fields define it
The wind triangle is the closed vector relationship ground velocity equals air velocity plus wind velocity. Air velocity is fully fixed by true airspeed and heading—the direction the nose points through the air mass. Ground velocity is fixed by ground speed and track—the path actually followed over the surface.
Wind is the meteorological vector stated as a from-direction and a speed: a wind from two hundred seventy degrees blows toward the east, so its velocity components are opposite the compass reading on a METAR. Because six scalar numbers are tied by two independent equations, four independent scalars determine the remaining two in the generic case.
In product language that means any three of the five conceptual legs work when wind counts as a pair (speed and from-direction), or all four of heading, track, airspeed, and ground speed recover the wind. This capability auto-detects four practical modes: find track and ground speed from heading, airspeed, and wind; find heading and ground speed from desired track, airspeed, and wind; find wind from an observed heading, track, airspeed, and ground speed; and find both speeds from heading, track, and wind when those alone close the system.
Directions are degrees true, clockwise from north, normalized into the zero-to-three-hundred-sixty range. Speeds share one unit you choose—knots, miles per hour, kilometers per hour, or meters per second—because the trigonometry is homogeneous and the service never converts units behind your back.
Who uses the wind triangle, and why
Flight schools and online ground-school products use a wind triangle calculator so students check wind correction angle homework against the same definition later used in dispatch. Charter and corporate flight departments batch-solve tracks for each leg of a release package when the forecast wind grid updates, then push heading and ground-speed targets into the electronic flight bag. Drone and UAS operators convert a required survey track and a METAR-style wind into a heading and ground speed so grid spacing and battery endurance estimates stay honest.
Glider, balloon, and sailboat tooling reuse the same vectors when only the labels change from true airspeed to boat speed through water. Because the implementation is tier-A parse with no outbound network and no model tokens, latency is dominated by the task handshake, which suits form validation on every wind change as well as offline-friendly reprocessing of historical flight logs.
What you can do with it
Preflight heading and ground-speed planning
Given forecast wind, true airspeed, and the desired track for each route leg, solve heading, ground speed, and wind correction angle for the flight-plan package.
In-flight or post-flight wind estimate
From observed heading, track, TAS, and ground speed, recover wind speed and meteorological from-direction for debrief, PIREP-style notes, or logbook analysis.
Drone survey and training simulators
Feed mission planners and E6B trainers a deterministic wind triangle so grid tracks, crab angles, and quiz answers stay consistent across devices.
FAQ
What inputs does the wind triangle solver need?
Any sufficient set: heading + airspeed + wind; track + airspeed + wind; heading + track + airspeed + ground speed; or heading + track + wind.
What is WCA (wind correction angle) in the response?
Positive WCA means you crab to the right of the track (heading greater than track).
Which speed units can I use?
Any consistent unit—knots, mph, km/h, or m/s. Airspeed, ground speed, and wind speed must share that unit; outputs use the same unit without conversion.
Is the wind direction where the wind comes from or where it goes?
Where it comes from, as in weather reports. A wind from 270° is a west wind blowing toward the east, so enter the direction exactly as the forecast or report states it.
Can I work out the wind from what I observed in flight?
Yes. Enter the heading you held, the track you actually flew, your true airspeed and your ground speed, and the solver returns the wind speed and the direction it is blowing from.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/wind-triangle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"heading_deg":90,"heading":1}'const res = await fetch("https://api.kit.forhosting.com/geo/wind-triangle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"heading_deg": 90,
"heading": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/wind-triangle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"heading_deg": 90,
"heading": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/wind-triangle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"heading_deg":90,"heading":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"heading_deg":90,"heading":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/wind-triangle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"heading_deg": 90,
"heading": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.wind_triangle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How to call the solver, read the response, and handle errors
Airspeed and ground speed must be positive when present; wind speed must be non-negative; angles may be any finite number and are folded into zero through three hundred sixty. If the combination is under-determined—for example only heading and airspeed with no wind—the task rejects with a message listing the four supported combinations rather than guessing. Impossible geometry also fails: when wind is stronger than airspeed for a requested track, the quadratic for ground speed has no real positive root and you get a clear impossible-triangle error. POST a JSON object with the fields you know. Optional inputs are heading_deg, track_deg, airspeed, ground_speed, wind_speed, and wind_from_deg; aliases such as heading, tas, gs, wind_dir, and course are accepted so flight-planning forms can keep their own names. Wind speed without wind_from_deg, or the reverse, fails with invalid_input because wind is incomplete. On success the body echoes every leg in solved form: mode names the detection path; heading_deg and track_deg; airspeed and ground_speed; wind_speed and wind_from_deg; wca_deg as heading minus track in the minus-one-hundred-eighty to plus-one-hundred-eighty band; drift_angle_deg as the opposite signed difference; headwind_component and crosswind_component relative to track (positive headwind opposes the track, positive crosswind is wind from the right of track); a unit marker same_as_input_speeds; and a short formula string. Numeric fields are rounded to six decimal places so browser widgets, goldens, and API clients stay byte-stable across runtimes. Failed validation is never billed; successful pure-parse calls cost the published $0.002 item price.
Where crews, schools, and automation use a wind triangle API
Content sites that rank for wind triangle solver, E6B calculator, or heading from track and wind gain a live free tool whose answers match the prepaid API path for developers embedding the same solve in mobile apps. Keep your speed unit documented in the calling schema, pin the rounded outputs in tests, and you get reproducible navigation numbers without standing up a full performance or weather stack of your own.
Technical questions
Is wind direction the direction the wind is going or coming from?
Coming from—the standard METAR and aviation convention. A wind_from_deg of 270 means a west wind blowing toward the east.
What does the wind triangle calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid or impossible input is not billed.