Bullet energy calculator
An 8 g bullet at 400 m/s carries 640 J, and doubling the speed would quadruple that energy. Enter mass in kilograms and velocity in metres per second to get muzzle or downrange energy in joules. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Mass
- 0.008
- Velocity
- 400
- Energy
- 640 J
- Equation
- E = 0.5 × 0.008 × 400² = 640
This bullet energy calculator reports the kinetic energy of a projectile from its mass and its velocity using the classical formula E equals one-half m v squared. Enter mass in kilograms and velocity in metres per second; the result is energy in joules, the SI unit of work. Hunters, reloaders, and ballistics students use muzzle energy to compare cartridges, check published factory data, and turn a chronograph reading into a number that can sit next to a load table. Zero mass or zero speed yields zero energy.
What bullet kinetic energy is and why velocity is squared
The kinetic energy of a bullet is the translational energy the projectile carries because of its mass and its speed. In classical mechanics that energy is exactly one-half times mass times velocity squared, written E = ½ m v². When mass is in kilograms and velocity is in metres per second, E comes out in joules, the SI unit of energy.
Ballistics writers often call the same quantity muzzle energy when the velocity is the speed at the muzzle, or residual energy when the speed is a downrange chronograph reading. Either way the algebra is identical: heavier bullets and faster bullets both raise energy, but velocity is squared, so a modest gain in speed usually moves the number more than a similar relative gain in mass. Doubling speed quadruples energy at a fixed mass; doubling mass only doubles energy at a fixed speed.
This calculator does one job: it takes mass and velocity, multiplies according to that formula, and returns the energy in joules. It does not estimate stopping power, wound cavity, sectional density, or drop. Treat the output as the textbook kinetic energy of a point mass at the given speed, which is the figure factory ballistic tables quote when they list energy beside a load.
Identical inputs always produce identical floating-point results because the implementation is pure arithmetic with no network, randomness, or wall-clock dependence.
Where a bullet-energy figure belongs — and where it does not
Reloaders and hunters use muzzle energy to compare two factory loads or two handloads when the box already prints mass and a claimed velocity, or when a chronograph at the bench has just given a mean speed. Physics and ballistics courses use the same identity as a first numerical check: given a projectile mass and a muzzle speed, what is E in joules, and does doubling the speed really quadruple the energy.
Prefer it when you already have mass and velocity in SI, or when you are willing to convert grains and feet per second first. Keep requests inside the documented limits, pin the rounded energy in tests, and remember that drag, yaw, and a non-rigid target can move the energy that actually arrives far from the muzzle figure. Pair the calculator with other free deterministic physics helpers when you are assembling a small lab of screening tools rather than a full exterior-ballistics suite.
What you can do with it
Compare factory loads at the bench
Turn a box-stated bullet mass and a chronograph velocity into muzzle energy in joules so two cartridges can be compared on the same SI scale.
Physics and ballistics homework
Check student work that asks for the kinetic energy of a projectile given mass in kilograms and speed in metres per second.
FAQ
What formula does the bullet energy calculator use?
It uses the classical kinetic-energy relation E = ½ m v², where m is mass in kilograms and v is velocity in metres per second. The energy is returned in joules.
What units should I send for mass and velocity?
Send mass in kilograms and velocity in metres per second. Convert grams by dividing by 1000, grains by multiplying by 6.479891e-5, and feet per second by multiplying by 0.3048 before calling.
Why are negative mass and negative velocity rejected?
A negative projectile mass is not physical, and this calculator treats velocity as a non-negative ballistic speed. Zero is allowed and yields zero joules.
Does bullet energy equal stopping power?
Use it as the textbook muzzle-energy number, not as a terminal-performance index.
How do I convert grains and feet per second?
Multiply grains by 6.479891 × 10⁻⁵ to get kilograms, or divide grams by 1,000. Multiply feet per second by 0.3048 to get metres per second, then enter both values and read the energy in joules.
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/bullet-energy \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass":0.008,"velocity":400}'const res = await fetch("https://api.kit.forhosting.com/phys/bullet-energy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass": 0.008,
"velocity": 400
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/phys/bullet-energy",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass": 0.008,
"velocity": 400
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/phys/bullet-energy", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass":0.008,"velocity":400}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass":0.008,"velocity":400}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/phys/bullet-energy", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"mass": 0.008,
"velocity": 400
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "phys.bullet_energy",
"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 mass or negative velocity is rejected with invalid_input and is not billed.
What bullet kinetic energy is and why velocity is squared
It does not convert grains, ounces, feet per second, or foot-pounds; those conversions belong in a unit step before you call this endpoint.
How to enter mass and velocity in SI units
Both values must be non-negative: a negative mass is not a physical projectile, and a negative muzzle speed is not a ballistic speed for this calculator. Zero is allowed and yields zero joules, which is the classical result for a projectile at rest or of vanishing mass. If your source lists bullet weight in grams, divide by one thousand to obtain kilograms. If it lists weight in grains, multiply by 6.479891 times ten to the minus five. If it lists velocity in feet per second, multiply by 0.3048 to obtain metres per second. POST a JSON body with two required finite numbers: mass in kilograms and velocity in metres per second. Aliases m, mass_kg, and bullet_mass are accepted for mass; v, speed, and velocity_ms for velocity, so spreadsheets and typed forms can reuse the same contract. Each field may arrive as a JSON number or as a strict decimal string, including scientific notation; hex prefixes, embedded spaces, and empty strings fail with invalid_input naming the field. Absolute values must stay inside the published ceiling so the product remains finite in IEEE double precision on the Worker and in the browser. On success the response echoes rounded mass and velocity, reports energy in joules, and includes the formula E = ½ m v², a filled equation string, the unit J, and the method tag bullet_kinetic_energy. Failed validation is never charged; a successful request costs $0.002.
Where a bullet-energy figure belongs — and where it does not
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, invalid_input is not billed, and nothing is stored after the response returns.
Integration use cases
Cartridge tables and CI fixtures
Generate deterministic energy columns for ammunition pages or automated tests without re-implementing E = ½mv² in every service.
Technical questions
What does the bullet energy calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.