SUVAT calculator
Starting at 10 m/s with an acceleration of 2 m/s², a body reaches 20 m/s after 5 s. Enter the initial velocity, the acceleration and the time, then choose whether you want the final velocity or the displacement. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- U
- 10
- A
- 2
- T
- 5
- Find
- Velocity
- Value
- 20
- Equation
- v = 10 + (2) · (5) = 20
- Velocity
- 20
A SUVAT calculator applies the constant-acceleration kinematic equations that British and international physics courses label by the five letters s, u, v, a, and t. Given initial velocity u, constant acceleration a, and elapsed time t, this tool returns either final velocity v equals u plus a t, or displacement s equals u t plus one half a t squared, depending on the quantity you request. Zero time is valid: velocity stays u and displacement is zero.
What SUVAT means and which quantity you can request
SUVAT is the classroom name for one-dimensional motion under constant acceleration. The five letters stand for displacement s, initial velocity u, final velocity v, acceleration a, and elapsed time t. Two of those identities close completely when u, a, and t are known: final velocity is v equals u plus a t, and displacement from the origin of the interval is s equals u t plus one half a t squared.
This calculator does not guess which identity you wanted. You name the requested kinematic quantity with find set to velocity or displacement, and the engine returns that number as value plus a matching named field. Search intent for this landing clusters around SUVAT calculator, suvat equations, v equals u plus a t, s equals u t plus half a t squared, and constant acceleration from initial velocity, acceleration, and time.
People who type those phrases want the A-level or introductory-mechanics suite by name, not a braking-distance table and not a projectile in two dimensions. Initial velocity and acceleration may be positive or negative according to the axis you chose; only time is constrained. Elapsed time must be non-negative: negative t would reverse the causal reading of after time t that learners search for.
When t is zero there is no interval, so velocity equals u and displacement is zero. When a is zero the motion is uniform: velocity never changes and displacement reduces to u times t. The tool does not convert units.
If u is in metres per second and a is in metres per second squared, t must be in seconds so that a t has the same unit as u and u t plus a t squared has the unit of length. The same rule applies in any coherent system. Callers keep one system end to end rather than mixing SI and imperial mid-equation.
What you can do with it
A-level and classroom SUVAT checks
Let students submit u, a, t, and find, then verify final velocity or displacement against textbook SUVAT methods, including signed deceleration and the hard reject on negative time.
Exam and LMS auto-grading
Mark constant-acceleration items with a deterministic oracle that returns the requested quantity only and never invents a displacement when the learner asked for velocity.
FAQ
How do I compute final velocity or displacement with SUVAT?
Send finite numbers u (initial velocity), a (constant acceleration), and t (non-negative time), plus find set to velocity or displacement.
What happens if time is negative?
Elapsed time cannot run backward in this model, so negative t is rejected and is not billed.
Which SUVAT equations does this calculator use?
With u, a, and t known it uses v = u + a t when find is velocity, and s = u t + (1/2) a t² when find is displacement. It does not solve for unknown time or acceleration from mixed data.
Can initial velocity or acceleration be negative?
Yes. Signs follow the axis you chose: negative a is deceleration or acceleration opposite the positive direction. Only t must be non-negative.
What happens when the acceleration is zero?
The motion is uniform: the velocity never changes, so the final velocity equals the initial one, and the displacement is simply the initial velocity multiplied by the time.
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/phys/suvat \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"u":10,"a":2,"t":5,"find":"velocity"}'const res = await fetch("https://api.kit.forhosting.com/phys/suvat", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"u": 10,
"a": 2,
"t": 5,
"find": "velocity"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/suvat",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"u": 10,
"a": 2,
"t": 5,
"find": "velocity"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/suvat", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"u":10,"a":2,"t":5,"find":"velocity"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"u":10,"a":2,"t":5,"find":"velocity"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/suvat", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"u": 10,
"a": 2,
"t": 5,
"find": "velocity"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.suvat",
"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.
Limits
max_abs | 1000000000000 |
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
Negative time is rejected with invalid_input because elapsed duration cannot run backward in this model. Successful API calls cost $0.002 per item; failed validation is not billed.
Input contract, formulas, and what comes back
The unused named field is omitted rather than sent as null. Worked numbers: u equals ten, a equals two, t equals five, find equals velocity yields v equals twenty because ten plus two times five is twenty. The same u, a, and t with find equals displacement yields s equals seventy-five because ten times five plus one half times two times twenty-five is fifty plus twenty-five. Send a JSON body with four fields: u, a, t, and find. Initial velocity u accepts aliases initial_velocity, u0, and v0. Acceleration a accepts aliases acceleration and accel. Time t accepts aliases time and duration. The requested quantity find is a closed enumeration of velocity and displacement, with aliases quantity and solve_for, so the form renders as a select rather than a free-text trap. On success the response echoes rounded u, a, and t, repeats find, sets value to the requested quantity rounded to twelve decimal places, sets formula and equation to a readable identity and a fully substituted line, and includes either velocity or displacement to match find. Failed validation — missing fields, non-finite numbers, values outside absolute limits, a find other than velocity or displacement, a non-finite product, a result outside the absolute cap, or negative t — returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item.
Where a SUVAT calculator earns its keep
Classrooms and tutoring platforms use a SUVAT calculator so learners can check v equals u plus a t and s equals u t plus half a t squared for arbitrary signed u and a without mixing the two identities by accident. Failed validation does not consume balance. Keep requests small, keep units consistent, pin the rounded value in tests, and you get reproducible kinematics for homework, LMS plugins, and edge workers without standing up symbolic math infrastructure of your own. Prefer this capability when you already know initial velocity, constant acceleration, and elapsed time and only need one of the two results; if your source problem gives mixed unknowns such as displacement and final velocity without time, rearrange another kinematic identity first rather than forcing this contract. Exam-prep generators need a deterministic oracle that marks negative time as invalid_input instead of silently reversing the interval. Engineering and science notebooks often reduce a constant-thrust burn, a linear actuator, or a conveyor ramp to these two closed forms when time is already known; calling a tiny parse API avoids pulling a full computer-algebra system for four coefficients.
Integration use cases
Notebooks, simulations, and CI fixtures
Pin v=u+at and s=ut+½at² in scripts and golden tests without importing a full kinematics library or a unit-conversion stack.
Technical questions
What does the SUVAT calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.