Atwood machine calculator
With 5 kg and 3 kg hanging over an ideal pulley, the system accelerates at 2.4525 m/s² and the rope carries 36.7875 N, with the 5 kg side going down: the calculator gives acceleration, tension and the descending mass in one go. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- First hanging mass
- 5
- Second hanging mass
- 3
- Gravitational acceleration
- 9.81
- Mass1
- 5
- Mass2
- 3
- Gravity
- 9.81
- A
- 2.4525
An Atwood machine calculator turns the classic two-mass pulley problem into a reliable solver for homework, labs, and quick design checks. Enter the two hanging masses m1 and m2 plus gravitational acceleration g in one consistent unit system, and the tool returns the signed system acceleration, its magnitude, the rope tension, which side descends when the masses differ, fully substituted equations, and ordered step strings you can paste into worksheets or automated tests. The model is the ideal Atwood machine: a massless frictionless pulley and a massless inextensible rope, so the two masses share one magnitude of acceleration and one uniform tension.
What an ideal Atwood machine is and which formulas apply
An Atwood machine is two hanging masses connected by a rope that passes over a pulley so that when one mass goes down the other goes up with the same magnitude of acceleration. In the ideal classroom model the pulley is massless and frictionless, the rope is massless and inextensible, and gravity is a constant g along the vertical.
Newton’s second law on each free body then yields a single algebraic pair for the whole system: the signed acceleration a equals g times the mass difference m1 minus m2, all divided by the mass sum m1 plus m2, and the rope tension T equals two times m1 times m2 times g divided by that same sum. A positive signed a means m1 descends and m2 rises; a negative a means the opposite; equal masses give zero acceleration and a tension equal to either hanging weight m g.
Masses must be positive scalars; a negative mass is not physical for this classical model and is rejected. Gravity must also be positive. Callers keep m1, m2, and g in one coherent unit system—for example kilograms and metres per second squared—so that a comes out in the acceleration unit and T in the force unit of that system.
The calculator does not model pulley inertia, rope stretch, friction, or air drag; those extensions need different equations and different inputs.
Practical tips, limits, and related searches
Use one consistent unit system end to end before calling; this landing does not convert between SI and imperial units. When teaching free-body diagrams, derive a and T from the two equations of motion first, then confirm the numeric result here. This page targets people searching for an Atwood machine calculator, Atwood acceleration and tension solver, or two-mass pulley calculator online; it is not a full multi-body dynamics suite, not a variable-mass rocket model, and not a unit converter.
Prefer this capability when you already know the two hanging masses and gravity and only need ideal acceleration and tension; if your source problem gives weights instead of masses, convert weight to mass with local g first when required by your unit system, or enter masses directly when the problem already states them. Round-trip checks are easy: recompute g times the mass difference over the mass sum by hand and confirm it equals the published a within the same twelve-decimal rounding used in the response.
What you can do with it
Homework checks for two-mass pulleys
Students enter m1, m2, and g from textbook Atwood problems and compare signed acceleration, tension, and substitution steps against a deterministic result before submitting.
Lab pre-check before real pulley data
Pipelines compute the ideal a and T first, then compare against motion-sensor runs to quantify friction and pulley inertia as residual error.
FAQ
What does a positive or negative acceleration mean?
Positive a means m1 descends and m2 rises. Negative a means m2 descends and m1 rises.
Does this include pulley mass or friction?
No. The ideal model assumes a massless frictionless pulley and a massless inextensible rope. Real apparatus needs extra terms.
Is the Atwood machine calculator free?
The browser tool is free and runs locally.
What happens when both masses are equal?
The system balances: the acceleration is zero and the rope tension equals the weight of either mass, m times g, whatever value of g you use.
Can a mass be zero or negative?
No. Both masses must be positive, because a negative mass has no meaning in this classical model, and gravity must be positive too. Such values are refused rather than turned into a misleading number.
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-machine \
-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-machine", {
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-machine",
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-machine", 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-machine", 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_machine",
"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 is rejected with a clear invalid_input error so bad forms never invent a number. Pricing is a flat $0.002 per successful API request; failed validation is never charged.
How to call the API and what comes back
Absolute values must stay within the published limit of one trillion; each mass must be strictly positive and at least one times ten to the minus fifteen, and gravity must likewise be positive. Send a JSON body with the three required finite fields m1 (aliases mass1 and m_1), m2 (aliases mass2 and m_2), and g (aliases gravity and gravity_accel). Failed validation—missing fields, non-finite numbers, values outside absolute limits, negative or non-positive mass, non-positive gravity, or a non-finite quotient—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price. Prefer JSON numbers when you control the client; string numbers are accepted only when they match a strict finite numeric pattern for homework-form paste paths.
Practical tips, limits, and related searches
Keep m1, m2, and g inside the published absolute range so products and quotients remain finite in IEEE double precision on the Worker and in the browser. Pair classroom examples deliberately: m1 equals five, m2 equals three, and g equals nine point eight one yields a positive acceleration because m1 is heavier, together with a tension between the two hanging weights; equal masses with any positive g yield a equal to zero and T equal to m g; a deliberately negative mass demonstrates the hard invalid_input path. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when learners deliberately pass a negative mass.
Integration use cases
Unit tests for physics helpers
Generate known-good acceleration and tension cases plus deliberate negative-mass rejections for coding kata expected values in simulators or games.
Technical questions
What formulas does the Atwood machine calculator use?
For an ideal Atwood machine it uses a = g (m1 − m2) / (m1 + m2) for signed system acceleration and T = 2 m1 m2 g / (m1 + m2) for rope tension.
Can mass be negative or zero?
No. Classical Atwood masses must be positive. A negative mass is rejected with invalid_input; zero or non-positive values are also rejected.