A weighed food sample is sealed in a steel "bomb" with excess oxygen and submerged in a known mass of water. An electric wire ignites it; the sample burns completely and the heat released raises the water temperature. Because the whole system is a closed, constant-volume calorimeter, the heat released equals the heat absorbed by the water plus the calorimeter's own metal parts:
q_released = (m_water · c_water + C_bomb) · ΔT
c_water = 1.00 cal/(g·°C) C_bomb ≈ 850 cal/°C (calibrated constant)
Caloric value (kcal/g) = q_released / (1000 · m_sample)
This is the gross (bomb-calorimetry) energy density — it burns the sample completely to CO₂ and H₂O, unlike the physiological Atwater factors used on nutrition labels, which subtract the energy lost to incomplete digestion and urinary nitrogen:
| Macronutrient | Bomb value | Atwater (label) value |
| Carbohydrate | 4.10 kcal/g | 4 kcal/g |
| Protein | 5.65 kcal/g | 4 kcal/g |
| Fat | 9.45 kcal/g | 9 kcal/g |
- Sample mass — more sample releases more total heat but the calculated kcal/g should stay the same (it's an intensive property).
- Water bath mass — a larger water bath absorbs the same heat with a smaller ΔT; the calculation compensates automatically.
- Ignite — runs the combustion: sparks flash inside the bomb, the water heats and its color shifts warm, convection bubbles rise faster, the strip-chart below traces the temperature climbing to its plateau, and the readouts update live.
- Drag / scroll — pan and zoom the calorimeter scene; it never affects the physics, only the view.
Real-world relevance: this exact technique (ASTM/ISO bomb calorimetry) is how the caloric values printed on food labels are originally derived in analytical nutrition labs.