Explosion fragment velocity calculator
If a 2 kg piece flies off at 12 m/s, a 3 kg piece recoils at -8 m/s: the calculator finds the second fragment's velocity, with its direction shown as a sign, whenever a resting object splits in two. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Fragment 1 mass
- 2
- Fragment 2 mass
- 3
- Fragment 1 velocity
- 12
- Fragment 2 velocity
- -8
Calculate the signed velocity of the second fragment when a stationary body separates into exactly two pieces. Enter both positive fragment masses and the signed velocity of the first fragment, using consistent units, and the calculator applies conservation of linear momentum to return the missing velocity. The result includes direction as a sign, so it is useful for physics homework, laboratory checks, classroom demonstrations, and deterministic software tests involving recoil after an explosion or separation event.
Start with momentum conservation
An object that is stationary before it separates has zero total linear momentum in the chosen reference frame. If no significant external impulse acts during the brief separation, the two fragments must still have a combined momentum of zero immediately afterward. In one dimension this is written as m1 times v1 plus m2 times v2 equals zero.
The minus sign is important because it expresses direction. When the first fragment travels in the positive direction, the second must travel in the negative direction so their momenta cancel. A more massive second fragment therefore needs a smaller speed magnitude, while a lighter second fragment needs a larger speed magnitude.
This calculator assumes the original body was stationary. If the original body was already moving, its initial momentum would need to appear on the other side of the equation, and this specific calculator would not represent that situation. It also treats the event as two-fragment, one-dimensional motion rather than a general breakup into many pieces or motion along several axes.
Enter masses, velocity, and signs consistently
Kilograms, grams, or another mass unit all work because the identical unit cancels in the ratio, but mixing kilograms for one fragment with grams for the other changes the ratio and produces a wrong answer. Neither mass may be zero: division by a zero second mass is undefined, and a zero first mass is not a physical fragment in this model. Negative mass is rejected for the same physical reason.
You may choose either direction as positive, but keep that convention when interpreting the answer. If the first velocity is positive, the returned second velocity is negative; if the first velocity is negative, the returned value is positive. A first velocity of zero produces a second velocity of zero under the stated assumptions.
The output velocity uses the same velocity unit as the input, such as metres per second when the supplied value is in metres per second.
Interpret the result within the model limits
Its magnitude tells you how fast the second fragment moves, and its sign tells you that movement is opposite the first fragment under your selected axis convention. The response also echoes normalized input values and identifies the formula and conservation method, which makes automated results easier to audit. For a quick check, multiply each fragment mass by its corresponding velocity and add the two momenta; the sum should be zero apart from ordinary numerical rounding.
Real explosions can send fragments in three dimensions, produce more than two pieces, lose measurable momentum to escaping material, or occur while external forces act. In those cases, use vector momentum components and include every relevant body or impulse. Energy conservation is a separate question: the explosion can convert stored internal energy into kinetic energy, so knowing momentum alone does not determine how much energy was released.
What you can do with it
Check a momentum homework problem
Verify the missing recoil velocity after solving a two-fragment explosion exercise by hand.
Review a laboratory estimate
Compare a measured first-fragment velocity with the second velocity predicted by an ideal isolated model.
FAQ
Why is the second velocity usually negative?
The sign shows direction. With zero initial momentum, the second fragment momentum must oppose the first fragment momentum.
Why are zero masses rejected?
A zero mass does not represent a physical fragment in this model, and a zero second mass would also make the velocity formula divide by zero.
Which units can I use?
Use the same unit for both masses and any velocity unit for the first velocity. The answer uses that same velocity unit.
How do I find the recoil velocity after an explosion?
Multiply the first fragment's mass by its velocity, divide by the second fragment's mass and flip the sign. With masses of 2 and 3 and a first velocity of 12, the second fragment moves at -8 in the same unit.
Does it work if the object was already moving before it split?
No. It assumes the object was at rest, so the total momentum before and after the split is zero. If it was already moving, its starting momentum would have to enter the balance, which this calculator does not do.
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/mech/explosion-two-fragments \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fragment_1_mass":2,"fragment_2_mass":3,"fragment_1_velocity":12}'const res = await fetch("https://api.kit.forhosting.com/mech/explosion-two-fragments", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fragment_1_mass": 2,
"fragment_2_mass": 3,
"fragment_1_velocity": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/explosion-two-fragments",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fragment_1_mass": 2,
"fragment_2_mass": 3,
"fragment_1_velocity": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/explosion-two-fragments", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fragment_1_mass":2,"fragment_2_mass":3,"fragment_1_velocity":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fragment_1_mass":2,"fragment_2_mass":3,"fragment_1_velocity":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/explosion-two-fragments", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"fragment_1_mass": 2,
"fragment_2_mass": 3,
"fragment_1_velocity": 12
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.explosion_two_fragments",
"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
Start with momentum conservation
Solving for the unknown gives v2 = -(m1 times v1) / m2.
Enter masses, velocity, and signs consistently
Supply fragment_1_mass and fragment_2_mass as positive finite values in the same mass unit. Enter fragment_1_velocity as a signed finite value.
Interpret the result within the model limits
The returned fragment_2_velocity is a signed one-dimensional velocity, not merely a speed. This browser calculator runs locally, while automated API requests cost $0.002 per successful calculation. Invalid masses return an explicit invalid_input error instead of an invented result.
Integration use cases
Create deterministic physics fixtures
Generate stable structured outputs for simulations, teaching tools, and automated conservation-of-momentum tests.
Technical questions
Which equation does the calculator use?
It uses m1v1 + m2v2 = 0 for an initially stationary body and rearranges it to v2 = -(m1v1) / m2.
What does an API calculation cost?
Each successful API calculation costs $0.002. The browser calculator runs locally for free, and invalid input returns an error.