Kinetic energy ratio calculator
The kinetic energy ratio calculator compares the motion energy of the same body at two different speeds without requiring its mass.
Run — free
Enter the first speed as the reference and the second speed as the comparison value. The calculator divides the second by the first, squares that speed ratio, and returns the resulting kinetic energy ratio. Both speeds may use any unit, provided they use the same unit. The first speed must be greater than zero because it appears in the denominator. API requests cost $0.002 each, while the browser calculation is free.
Why the mass cancels from the comparison
For a body moving well below relativistic speeds, translational kinetic energy is one half of its mass multiplied by the square of its speed. When the same body is considered at two speeds, its mass is identical in both energy expressions. Dividing the second kinetic energy by the first cancels both the common mass and the common factor of one half. What remains is the square of the second speed divided by the first speed. This is why the calculator needs only two speeds and does not ask for kilograms, pounds, or any other measure of mass. If the second speed is twice the first, the body has four times as much kinetic energy. If it is three times the first, the energy is nine times as large. A second speed equal to half the first produces one quarter of the energy. The result is dimensionless: it describes how many times the reference energy is present, rather than reporting joules. The relationship assumes the same body or equal masses. It should not be used to compare different bodies unless their masses are known to be equal, because unequal masses would no longer cancel from the ratio.
How to enter the speeds and interpret the result
Enter the reference speed in speed_1 and the comparison speed in speed_2. Use the same unit for both entries. Metres per second, kilometres per hour, miles per hour, and knots all work because the shared conversion factor cancels when the speeds are divided. Mixing units does not work: comparing 10 metres per second with 20 kilometres per hour as bare numbers would produce a mathematically valid but physically misleading ratio. The response includes the original speeds, the direct speed ratio, the squared kinetic energy ratio, and the formula used. A kinetic_energy_ratio of 4 means the body at speed_2 carries four times the kinetic energy it carries at speed_1. A value of 0.25 means it carries one quarter as much. A value of 1 means the speeds, and therefore the kinetic energies, are equal. The second speed may be zero, in which case its kinetic energy and the returned ratio are zero. The first speed cannot be zero because the reference kinetic energy would be zero and division by it would be undefined. Negative values are rejected because these inputs represent speed magnitudes rather than signed velocity components.
When the squared-speed shortcut is appropriate
Use this calculator when the object is unchanged and only its speed differs between two states. It is useful for vehicle safety discussions, sports analysis, laboratory planning, and quick engineering estimates because it reveals how strongly energy grows with speed. For example, increasing a test speed by ten percent produces an energy ratio of 1.21, so the energy rises by twenty-one percent rather than ten percent. The shortcut also helps check simulation output: divide two reported speeds, square the quotient, and compare that result with the simulation's energy ratio. Several boundaries matter. The formula describes translational kinetic energy in classical mechanics and does not include rotational energy from wheels, flywheels, or spinning tools. It does not account for changing mass, deformation, drag, fuel use, braking distance, or energy lost as heat. At speeds where relativistic effects are important, classical kinetic energy is no longer accurate and a relativistic calculation is required. Keep both inputs in one unit and treat the output as a multiplier, not an energy quantity. For an absolute result in joules, use a kinetic energy calculator with mass and speed instead of this ratio-only comparison. API automation is charged at $0.002 per request, and invalid input is rejected before a result is produced.
What you can do with it
Compare vehicle test speeds
Estimate how much the translational kinetic energy changes between two test speeds for the same vehicle before planning a more detailed safety analysis.
Check sports motion estimates
Compare the energy of the same ball, athlete, or piece of equipment at two measured speeds without entering its unchanged mass.
Validate simulation ratios
Confirm that classical simulation outputs follow the expected squared relationship between speed and translational kinetic energy.
FAQ
What formula does the calculator use?
It uses KE2 / KE1 = (speed_2 / speed_1)^2 for the same body or for bodies with equal mass.
Do both speeds need to use metres per second?
No. Any speed unit works, but both values must use the same unit so its conversion factor cancels in the ratio.
Why does a zero first speed cause an error?
The first speed is the denominator. At zero, the reference kinetic energy is also zero, so the energy ratio is undefined.
Can the second speed be zero?
Yes. A zero second speed produces a speed ratio of zero and a kinetic energy ratio of zero.
Does this work for two objects with different masses?
Not by itself. The squared-speed shortcut assumes the mass is the same in both states. Different masses require including their mass ratio.
What does an API request cost?
Each successful API request costs $0.002. The browser calculation is free.
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/mech/kinetic-energy-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"speed_1":10,"speed_2":20}'const res = await fetch("https://api.kit.forhosting.com/mech/kinetic-energy-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"speed_1": 10,
"speed_2": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/kinetic-energy-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"speed_1": 10,
"speed_2": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/kinetic-energy-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"speed_1":10,"speed_2":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"speed_1":10,"speed_2":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/kinetic-energy-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"speed_1": 10,
"speed_2": 20
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.kinetic_energy_ratio",
"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. |