Snowman calculator
Balls with radii of 3, 2 and 1 give diameters of 6, 4 and 2: enter the three radii in one unit and get each diameter plus the total snow volume, the sum of three spheres, before you start rolling. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Bottom radius
- 3
- Middle radius
- 2
- Head radius
- 1
- Bottom diameter
- 6
- Middle diameter
- 4
- Head diameter
- 2
- Bottom volume
- 113.0973355292
A three-ball snowman is three packed spheres stacked as a base, a torso, and a head. This snowman calculator takes the three ball radii and returns the total snow volume needed to form those spheres, together with each ball's diameter so you can mark the snow before you roll. Volume of a sphere is four thirds pi r cubed; the snowman total is the sum of the three sphere volumes in the same length units you used for the radii, cubed.
How three-ball snowman volume and diameters are computed
The snow volume needed for a three-ball snowman is the sum of three solid sphere volumes. Each packed snowball is modeled as a sphere of radius r, so its volume is four thirds pi r cubed and its diameter is twice that radius. Typical backyard snowmen use a larger base than torso and a smaller head, but the formula does not require that order: any three strictly positive finite radii are valid, which lets you study inverted stacks, equal balls, or a classroom set of radii without extra constraints.
Length units must be consistent. If the radii are in centimetres, diameters come back in centimetres and volumes in cubic centimetres; if you work in inches, volumes are cubic inches. Convert afterwards if you need litres or gallons of packed snow.
This geometric total is the snow packed into the three balls you roll, not a weather forecast of how much loose snow sits on the lawn. Loose snow has air; packed snow is denser. The calculator does not apply a packing-density factor, because that factor depends on wetness and how hard you pack, which you choose in the yard.
Contact dimples where stacked balls meet are also not subtracted: those overlaps are small compared with the three volumes, and subtracting them would answer a different question—the volume of the union of three spheres—than how much snow you packed into each ball.
Yard plans, classroom checks, and how this differs from a single sphere
Use the snowman calculator before you roll, not after you guess. Measure or choose a bottom radius that fits the lawn or the tabletop model, pick a middle radius that will sit stably on that base, and pick a head radius that looks right for the face and hat you have in mind.
A common classroom triple is three, two, and one in the same unit, which makes the diameters six, four, and two and gives a total volume of forty-eight pi cubic units—an easy check against hand calculation of four thirds pi times twenty-seven plus eight plus one. Keep requests small, pin the rounded volumes in tests, and you get reproducible snowman geometry for homework, event planning, and edge workers without standing up a computer-algebra system.
Prefer this landing when the search is snowman volume or snow needed for three balls; a generic sphere-volume tool answers only one ball and does not return the three diameters together.
What you can do with it
Festival and prop snow-machine estimates
Event crews scale a 3:2:1 snowman to a measured base radius, convert cubic centimetres of packed snow to cubic metres, and size a snow machine without a full CAD model of three spheres.
FAQ
How is the snow volume for a three-ball snowman calculated?
Each ball is a sphere of volume (4/3)πr³. Units stay consistent with the radii you send (length cubed for volume).
What happens if a ball radius is zero or negative?
A snowman ball radius must be a strictly positive finite number; missing, zero, negative, and non-finite values are rejected and are not billed.
Do the three radii have to use the same unit?
Yes. Mix centimetres with inches and the volumes are meaningless.
Does stacking overlap reduce the snow I need?
No. The tool sums the three packed-sphere volumes (the snow you roll into each ball). Contact dimples after stacking are not subtracted, because that would measure the union of three spheres rather than the snow packed into them.
Does the result account for how hard I pack the snow?
No. It gives the volume of the three packed balls, without a density factor. Loose snow holds air, so you will need to gather more of it, and how much more depends on how wet it is and how firmly you pack.
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/hobby/snowman \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bottom_radius":3,"middle_radius":2,"head_radius":1}'const res = await fetch("https://api.kit.forhosting.com/hobby/snowman", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bottom_radius": 3,
"middle_radius": 2,
"head_radius": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/snowman",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bottom_radius": 3,
"middle_radius": 2,
"head_radius": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/snowman", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bottom_radius":3,"middle_radius":2,"head_radius":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bottom_radius":3,"middle_radius":2,"head_radius":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/snowman", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bottom_radius": 3,
"middle_radius": 2,
"head_radius": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.snowman",
"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
Any radius that is missing, zero, negative, or not a finite number is rejected with invalid_input, because a ball of non-positive radius is not a snowman part.
How three-ball snowman volume and diameters are computed
You enter a bottom radius for the base, a middle radius for the torso, and a head radius for the top; the calculator returns total_volume as the sum of those three volumes and also returns bottom_diameter, middle_diameter, and head_diameter so you can check the finished sizes against a yard, a classroom model, or a festival prop sketch. For planning, treat the returned total_volume as the packed-snow budget for the three spheres of the radii you chose.
Input contract, response shape, and error behaviour
Each radius must be strictly positive: zero, negative, and other non-positive values are rejected because a snowball radius that is not positive does not describe a ball. Failed validation is never billed. Each field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, non-numeric text, infinities, and NaN fail with invalid_input naming the field. Absolute values must stay within one trillion so intermediate cubes remain finite in IEEE double precision on the Worker and in the browser. On success the body echoes the three radii, sets each diameter to twice its radius, sets bottom_volume, middle_volume, and head_volume from four thirds pi r cubed, sets total_volume and snow_volume to the same summed packed-snow volume, and sets formula to a compact restatement of those identities. Successful API calls use the published $0.002 base price with unit item. Pair this endpoint with your own density table if you later convert packed cubic length into mass; this capability stays geometric and does not invent a snow density.
Yard plans, classroom checks, and how this differs from a single sphere
Festival crews can scale those ratios: keep the same three-to-two-to-one shape at a two-metre base radius by sending two hundred, about one hundred thirty-three, and about sixty-seven centimetres, then read diameters in centimetres and total_volume in cubic centimetres before converting to cubic metres for a snow-machine estimate.
Integration use cases
Plan a backyard snowman before you roll
Pick bottom, middle, and head radii that fit the yard, read each diameter so you know how wide the balls will sit, and use total_volume as the packed-snow budget for the three spheres.
Classroom sphere-volume worksheets
Teachers send a known triple such as three, two, and one, and students check diameters six, four, and two plus a total of forty-eight pi against the deterministic oracle, including the invalid_input path for a zero radius.
Technical questions
What does the snowman calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.