Atwood machine tension calculator
Two masses of 5 kg and 3 kg over an ideal pulley, with g at 9.81 m/s², pull the cord taut at 36.7875 N: the calculator applies twice m1 times m2 times g over their sum and returns that tension alone. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- M1
- 5
- M2
- 3
- G
- 9.81
- Total mass
- 8
- Tension
- 36.7875
- T
- 36.7875
- Equation
- T = 2 · 5 · 3 · 9.81 / (5 + 3) = 36.7875
An Atwood machine tension calculator focuses on the single number many homework problems and lab pre-checks actually ask for: the tension in the cord that joins two hanging masses over a pulley. Enter the two masses m1 and m2 plus gravitational acceleration g in one consistent unit system, and the tool returns the ideal tension T from the standard formula two times m1 times m2 times g, all divided by the sum of the masses. The model is the ideal frictionless Atwood setup—massless pulley, massless inextensible rope—so both masses share one uniform tension.
What ideal Atwood cord tension means and which formula applies
An Atwood machine is two hanging masses connected by a cord that passes over a pulley so that when one mass descends the other rises with the same magnitude of acceleration. In the ideal classroom model the pulley is massless and frictionless and the cord is massless and inextensible, which forces a single tension T throughout the rope.
Free-body diagrams on each mass plus Newton’s second law eliminate the unknown acceleration and leave a closed form for tension alone: T equals two times m1 times m2 times g, all divided by m1 plus m2. That expression always lies between the two hanging weights when both masses are positive: if the masses are equal, T reduces to either weight m g; if one mass is much larger than the other, T approaches twice the lighter weight. The calculator on this page solves only that tension formula.
It does not return system acceleration, does not model pulley inertia or rope stretch, and does not convert units for you. Callers keep m1, m2, and g in one coherent system—for example kilograms and metres per second squared—so that T comes out in the force unit of that system, such as newtons.
Practical tips, limits, and when to use this tension calculator
Use one consistent unit system before calling; this landing does not convert between SI and imperial units. When teaching, derive T from the two free-body equations first, then confirm the numeric result here. This page targets people searching for an Atwood machine tension calculator, cord tension for two hanging masses, or ideal pulley tension online.
Prefer this capability when you already know the two masses and gravity and only need the ideal rope tension; if your source problem gives weights instead of masses, convert weight to mass with local g first when your unit system requires it. Prefer a fuller Atwood acceleration-and-tension tool only when you also need signed system acceleration and descending-side labels in the same response. Document the formula string from the response next to student work so graders can see the exact expression that produced the number.
What you can do with it
Homework checks for rope tension
Students enter m1, m2, and g from textbook Atwood problems and compare ideal cord tension against a deterministic T before submitting free-body work.
Lab pre-check before real pulley data
Pipelines compute ideal T first, then compare against force-sensor readings to quantify friction and pulley inertia as residual error.
FAQ
Does this return acceleration as well?
No. This capability returns cord tension only. Use a separate Atwood acceleration tool if you also need signed system acceleration.
Which units should I use for m1, m2, and g?
Any consistent system. For example kilograms and metres per second squared yield tension in newtons. The calculator does not convert units.
Is the Atwood machine tension calculator free?
The browser tool is free and runs locally.
Why does the tension fall between the two weights?
It is a property of the ideal formula: with both masses positive, the tension always lies between the two hanging weights. Equal masses give the weight of either one, m times g, and if one mass is much larger, the tension approaches twice the lighter weight.
What if my problem gives weights instead of masses?
Convert each weight to a mass first by dividing by the local g, when your unit system calls for it, then enter the masses. The formula works with masses, and the tension comes out in your system's force unit, such as newtons.
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/atwood-tension \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"m1":5,"m2":3,"g":9.81}'const res = await fetch("https://api.kit.forhosting.com/mech/atwood-tension", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"m1": 5,
"m2": 3,
"g": 9.81
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/atwood-tension",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"m1": 5,
"m2": 3,
"g": 9.81
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/atwood-tension", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"m1":5,"m2":3,"g":9.81}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"m1":5,"m2":3,"g":9.81}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/atwood-tension", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"m1": 5,
"m2": 3,
"g": 9.81
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.atwood_tension",
"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
When the total mass is zero the denominator vanishes and the request fails with invalid_input instead of inventing a number. Pricing is a flat $0.002 per successful API request; failed validation is never charged.
What ideal Atwood cord tension means and which formula applies
Missing fields, non-finite numbers, and non-numeric strings are likewise rejected with invalid_input. That contract keeps automated tests and classroom demos honest about when a tension simply does not exist for the ideal model.
How to call the API and what the response contains
Send a JSON body with three required finite fields: m1 (aliases mass1 and m_1), m2 (aliases mass2 and m_2), and g (aliases gravity and gravity_accel). Prefer JSON numbers when you control the client; numeric strings that match a strict finite pattern are accepted for homework-form paste paths. On success the response echoes rounded m1, m2, and g, reports total_mass as their sum, sets tension and T to the same cord-tension value after twelve-decimal rounding, formula to the symbolic string T equals two m1 m2 g over m1 plus m2, equation to a fully substituted human-readable line, and unit_hint reminding you to keep one consistent unit system end to end. Failed validation—missing fields, non-finite values, or a total mass of zero—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item. Pair this endpoint with your own free-body diagram notes if you also need acceleration: for ideal Atwood kinematics the signed acceleration is g times the mass difference over the mass sum, but that quantity is intentionally out of scope here so the landing stays focused on people searching for cord tension alone. Round-trip checks are easy: recompute two times m1 times m2 times g over the sum by hand and confirm it equals the published tension within the same rounding used in the response payload.
Practical tips, limits, and when to use this tension calculator
Keep m1, m2, and g finite and inside ordinary double-precision ranges so products and quotients stay well behaved on the Worker and in the browser. Useful classroom pairs include m1 equals five, m2 equals three, and g equals nine point eight one for a classic unequal-mass tension between the two weights; equal masses with any finite g for the balanced case T equals m g; and a deliberate m1 equals zero with m2 equals zero to demonstrate the total-mass-is-zero invalid_input path. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately pass a zero total mass.
Integration use cases
Unit tests for physics helpers
Generate known-good tension cases plus deliberate zero-total-mass rejections for coding kata expected values in simulators or games.
Technical questions
What formula does the Atwood machine tension calculator use?
It uses the ideal cord tension T = 2 m1 m2 g / (m1 + m2) for two hanging masses over a frictionless massless pulley with a massless inextensible rope.
What happens when total mass is zero?
The task fails with invalid_input. When m1 + m2 is zero the tension formula is undefined, so the API never returns Infinity or a made-up number.