Pyramid frustum calculator
Get the volume of a truncated pyramid from its two base areas and its height, so bases of 16 and 4 with a height of 6 enclose a volume of 56. You never need the height of the original apex. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Base area 1
- 16
- Base area 2
- 4
- Height
- 6
- Volume
- 56
A pyramid frustum is the solid left when a smaller similar pyramid is cut from the top of a larger one by a plane parallel to the base, leaving two parallel faces (the bases) and a band of lateral faces. Given the areas of those two bases and the perpendicular height between them, this calculator returns the enclosed volume with the classic frustum formula.
How the frustum volume is computed
Label the two parallel base areas A1 and A2 and the perpendicular distance between the base planes as height h. The volume of a pyramid frustum (and, with circular bases, of a conical frustum) is one-third of h times the sum of the two areas and their geometric mean: volume equals (h/3) times (A1 + A2 + sqrt(A1 times A2)).
When the bases are similar polygons or circles, this closed form is exact; you never need the full apex height of the original pyramid if you already know both face areas. Classic checks include equal bases A1 equals A2 equals nine with height three, which reduces to a prism and yields volume twenty-seven; A1 equals sixteen, A2 equals four, height six yields volume fifty-six; a square base of side four (area sixteen) tapering to side two (area four) at height nine scales the middle term with the geometric mean eight.
Because the path uses only multiplication, division by three, and one square root, it is deterministic, O(1), and free of iterative solvers.
Where pyramid frustum calculations show up in real work
Secondary-school and college solid-geometry courses constantly ask students for the volume of a truncated pyramid given the two base areas (or side lengths that convert to areas) and the height; a trusted calculator with a strict non-negative area gate speeds homework grading and removes spreadsheet mistakes where someone uses the prism average alone and forgets the geometric-mean term.
Architecture, roofing and fabrication workflows size truncated pyramid roofs, tapered columns, monument bases and decorative planters from plan areas and cut height; volume feeds concrete, fill and cladding estimates before lateral faces are detailed. Hoppers, silos and bulk-material bins are often modeled as inverted frustum sections; the same formula recovers capacity from the top and bottom opening areas and the vertical drop. Game, graphics and CAD libraries store frustum primitives for collision proxies and lighting volumes; deterministic volume metrics support debug readouts and material estimates without a full mesh library.
If you later need lateral surface area, a full pyramid from base and apex height, or a conical frustum from radii, treat those as separate search intents rather than overloading this frustum volume landing.
What you can do with it
Homework and exam checks
Compute truncated-pyramid volume from two base areas and height, and reject a negative base area with a clear error.
Hoppers, roofs and fabrication
From plan areas and cut height, recover fill volume for tapered bins, truncated roofs and monument bases.
CAD and game frustum metrics
Turn two base areas and height into a stable volume for layout, material estimates and property panels.
FAQ
What formula does this calculator use?
volume = (h/3) × (A1 + A2 + √(A1×A2)), where A1 and A2 are the two base areas and h is the perpendicular height.
Can the two bases have different shapes?
Yes, as long as both faces are planar and parallel and you supply their areas. The formula is stated in terms of areas, so square, rectangular or other similar polygonal bases work the same way.
What if the two base areas are equal?
The geometric mean equals each area, so volume simplifies to A×h—the volume of a right prism (or cylinder) with that cross-section. That is a useful sanity check for equal-area inputs.
What does it cost?
The browser tool is free and runs locally.
What is the most common mistake with frustum volume?
Averaging the two base areas and multiplying by the height, as if it were a prism. That drops the middle term, the square root of the product of both areas, so the volume comes out wrong.
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/geom/frustum-pyramid \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_area_1":16,"base_area_2":4,"height":6}'const res = await fetch("https://api.kit.forhosting.com/geom/frustum-pyramid", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_area_1": 16,
"base_area_2": 4,
"height": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geom/frustum-pyramid",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_area_1": 16,
"base_area_2": 4,
"height": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geom/frustum-pyramid", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_area_1":16,"base_area_2":4,"height":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_area_1":16,"base_area_2":4,"height":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geom/frustum-pyramid", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"base_area_1": 16,
"base_area_2": 4,
"height": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geom.frustum_pyramid",
"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
A negative base area is rejected with a clear invalid_input error instead of a silent nonsense volume. No network calls, no random sampling, and no floating-point surprises beyond ordinary IEEE-754 arithmetic on the numbers you provide.
How the frustum volume is computed
Huge magnitudes can still overflow IEEE-754 double range; when the result is non-finite the request fails with a clear overflow message instead of returning Infinity in JSON. That closed form matches solid-geometry textbooks and keeps automated graders aligned with hand computation on the same inputs.
What you send and what you get back
Negative area on either base is rejected; there is no optional side length or apex height—this landing is the area-and-height frustum only. Example checks: bases sixteen and four with height six yield volume fifty-six; equal bases recover the prism formula volume equals area times height; a zero base area degenerates toward a full pyramid volume of one-third base times height. Wire the free browser tool for quick sanity checks, then call the identical contract from scripts for bulk evaluation without reimplementing the frustum formula in every language. Provide three required finite numbers: base_area_1 and base_area_2 are the areas of the two parallel bases and must each be non-negative (zero or positive); height is the perpendicular separation between those bases and must also be non-negative. Missing fields, empty strings, non-numeric text, NaN, Infinity, and any negative base area or height are rejected with invalid_input and are not charged. On success the JSON response returns base_area_1, base_area_2, height, volume, and method set to pyramid_frustum_volume_areas_height so logs and teaching UIs can document the algorithm. API pricing is the published base of $0.002 per successful item.
Where pyramid frustum calculations show up in real work
Because this capability is a pure parse engine, failed validation does not consume balance and successful runs stay at $0.002 per item.
Technical questions
What happens if a base area is negative?
The request fails with invalid_input. Neither base area may be negative; the error message names the field (base_area_1 or base_area_2).