*Calculated at 100% capacity. We recommend buying 10-20% extra for settling.
How to Calculate Bean Bag Filling
Measuring for a bean bag refill or a new DIY project requires understanding the volume of the specific shape. Most bean bag beans (Expanded Polystyrene or EPS) are sold by the liter or cubic foot. This calculator helps you determine the exact volume so you don't over-buy or end up with a saggy chair.
Formula Used for Calculations
Sphere: Volume = 4/3 × π × radius³
Cube/Rectangle: Volume = Length × Width × Height
Cylinder: Volume = π × radius² × Height
Pear Shape: Volume is calculated as a combined cylinder and cone approximation.
Common Bean Bag Sizes & Volume Guide
Bag Type
Average Diameter
Filling Required
Small (Kids)
25″ / 65cm
100 – 150 Liters
Medium (Adult)
35″ / 90cm
200 – 300 Liters
Large (XL)
45″ / 115cm
400 – 500 Liters
XXL Lounger
60″+ / 150cm+
600 – 800 Liters
Pro Tips for Filling Your Bean Bag
1. The Paper Funnel Trick: If you are filling at home, use a large piece of cardboard or poster board to create a funnel. This prevents the static-charged beads from flying everywhere.
2. Static Control: Spray a little bit of water or anti-static spray into the bag before filling to keep the beads from sticking to the sides or your clothes.
3. Density Matters: Not all beans are equal. High-density beads last longer before flattening. If using shredded memory foam, you will need roughly 40-50 lbs for a standard large chair, as foam is measured by weight rather than volume.
function toggleInputs() {
var shape = document.getElementById("bagShape").value;
var lenCont = document.getElementById("dim_length_container");
var widCont = document.getElementById("dim_width_container");
var heiCont = document.getElementById("dim_height_container");
var lenLabel = document.getElementById("label_length");
// Reset visibility
lenCont.style.display = "block";
widCont.style.display = "block";
heiCont.style.display = "block";
if (shape === "sphere") {
lenLabel.innerText = "Diameter";
widCont.style.display = "none";
heiCont.style.display = "none";
} else if (shape === "cube") {
lenLabel.innerText = "Side Length";
widCont.style.display = "none";
heiCont.style.display = "none";
} else if (shape === "cylinder") {
lenLabel.innerText = "Diameter";
widCont.style.display = "none";
heiCont.style.display = "block";
} else if (shape === "pear") {
lenLabel.innerText = "Diameter (Base)";
widCont.style.display = "none";
heiCont.style.display = "block";
} else {
lenLabel.innerText = "Length";
widCont.style.display = "block";
heiCont.style.display = "block";
}
}
function calculateFilling() {
var shape = document.getElementById("bagShape").value;
var units = document.getElementById("unitType").value;
var v1 = parseFloat(document.getElementById("val_length").value);
var v2 = parseFloat(document.getElementById("val_width").value);
var v3 = parseFloat(document.getElementById("val_height").value);
if (isNaN(v1) || v1 <= 0) {
alert("Please enter valid dimensions.");
return;
}
var volumeCm3 = 0;
var factor = (units === "inches") ? 2.54 : 1;
// Convert all inputs to cm immediately for standard calculation
var d1 = v1 * factor;
var d2 = v2 * factor;
var d3 = v3 * factor;
if (shape === "sphere") {
var radius = d1 / 2;
volumeCm3 = (4/3) * Math.PI * Math.pow(radius, 3);
}
else if (shape === "cube") {
volumeCm3 = Math.pow(d1, 3);
}
else if (shape === "cylinder") {
if (isNaN(d3)) { alert("Please enter height."); return; }
var radius = d1 / 2;
volumeCm3 = Math.PI * Math.pow(radius, 2) * d3;
}
else if (shape === "rectangle") {
if (isNaN(d2) || isNaN(d3)) { alert("Please enter width and height."); return; }
volumeCm3 = d1 * d2 * d3;
}
else if (shape === "pear") {
if (isNaN(d3)) { alert("Please enter height."); return; }
var radius = d1 / 2;
// Approximation: Cylinder (bottom 60%) + Cone (top 40%)
var volCyl = Math.PI * Math.pow(radius, 2) * (d3 * 0.6);
var volCone = (1/3) * Math.PI * Math.pow(radius, 2) * (d3 * 0.4);
volumeCm3 = volCyl + volCone;
}
var liters = volumeCm3 / 1000;
var cubicFeet = liters / 28.3168;
document.getElementById("liters-result").innerText = Math.round(liters) + " Liters";
document.getElementById("cuft-result").innerText = cubicFeet.toFixed(2) + " Cubic Feet";
document.getElementById("result-area").style.display = "block";
}
// Initialize
toggleInputs();