ForHosting KIT · Developer Utilities

Parallel axis theorem calculator

The parallel axis theorem calculator finds the moment of inertia about an axis that is parallel to an axis through an object's center of mass.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter the centroidal moment of inertia, the object's mass, and the perpendicular distance between the two axes. The calculator evaluates I = I_c + md², reports the added offset term separately, and returns the final moment of inertia. It is useful for machine design, structural calculations, dynamics coursework, and any rigid-body problem where the desired rotation axis does not pass through the centroid.

When the parallel axis theorem applies

Use the parallel axis theorem when you already know a body's moment of inertia about an axis through its center of mass, but the actual axis of rotation is displaced from that centroidal axis. The two axes must be parallel, and the distance must be measured perpendicularly between them. Typical examples include a pendulum rotating around a pivot away from its center, a beam referenced to an edge instead of its neutral centroidal axis, or a machine component mounted on an offset shaft. Enter the known centroidal inertia as I_c, the total mass as m, and the axis separation as d. All quantities must use one consistent unit system. For example, if mass is in kilograms and distance is in metres, both the centroidal value and result are expressed in kilogram metres squared. This calculator does not derive the centroidal inertia from geometry; obtain that value from a shape formula, CAD system, measurement, or another calculation first. It then performs only the axis transfer described by the theorem.

How I = I_c + md² is evaluated

The calculation squares the perpendicular distance d, multiplies that squared distance by mass m, and adds the resulting offset term md² to the centroidal moment of inertia I_c. Squaring the distance means an axis moved twice as far from the center adds four times as much rotational inertia, provided the mass stays unchanged. The returned offset_term makes this contribution visible rather than hiding it inside the total. Because m and d² are non-negative for physical inputs, shifting away from a centroidal axis can never reduce the moment of inertia: the result is at least I_c. A distance of zero makes the axes coincide and returns the centroidal value unchanged. A zero mass also makes the offset term zero, although most physical bodies have positive mass. Negative mass is rejected explicitly, as required by the classical theorem. The calculator also rejects missing, non-numeric, non-finite, or negative inertia and distance values so that malformed data cannot produce a plausible-looking mechanical result.

Units, interpretation, and verification

Keep the units internally consistent before submitting values. If I_c is in kg·m², enter mass in kilograms and distance in metres. If you use grams and centimetres, then I_c and the result must both be in g·cm². The calculator does not convert units because mixing unit systems silently is more dangerous than requiring an explicit conversion. After receiving the result, verify that offset_term has the same mass-times-length-squared dimension as I_c and that moment_of_inertia equals their sum. A quick reasonableness check is that the result must not be smaller than the centroidal value. Also confirm that d is the shortest distance between the two parallel axis lines, not the distance from an arbitrary point on the body. The theorem transfers inertia only between parallel axes; it does not rotate an inertia tensor or handle axes at an angle. For compound bodies, apply the theorem to each component using that component's mass and centroidal inertia, then sum the transferred inertias about the shared target axis.

Size an offset rotating component

Transfer a known centroidal inertia to a parallel shaft axis before estimating torque and angular acceleration.

Analyze a physical pendulum

Find inertia about a pivot from the body's centroidal inertia, total mass, and center-of-mass offset.

Combine structural sections

Move each component's centroidal inertia to a common parallel reference axis before summing a composite section.

What does the calculator cost?

An API request costs $0.002; the browser calculation is available on the capability page.

Which formula does it use?

It uses I = I_c + md², where I_c is centroidal inertia, m is mass, and d is the perpendicular distance between parallel axes.

Can the new moment of inertia be smaller than the centroidal value?

No. For non-negative mass and real distance, md² is non-negative, so the transferred inertia is never smaller than I_c.

May I mix kilograms, grams, metres, and centimetres?

Not without converting first. Use one consistent mass and length unit system so I_c, md², and the result share the same units.

Does this work for axes that intersect at an angle?

No. The theorem requires parallel axes. Rotating between differently oriented axes requires tensor or coordinate-transformation methods.

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.

POSThttps://api.kit.forhosting.com/mech/parallel-axis-theorem

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.

curl -X POST https://api.kit.forhosting.com/mech/parallel-axis-theorem \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"centroidal_inertia":2.5,"mass":3,"distance":0.4}'
{
  "centroidal_inertia": 2.5,
  "mass": 3,
  "distance": 0.4
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "mech.parallel_axis_theorem",
  "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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →