Safeguard
Supply Chain Security•

Archimedes' Principle Explained: Ships to Hot Air Balloons

Buoyant force equals the weight of the fluid an object displaces. The pressure proof, plus worked examples for blocks, ships, hot air balloons and density.

Safeguard Security Team
43 min read

Archimedes' principle says that any object wholly or partly immersed in a fluid is pushed upward by a force equal to the weight of the fluid it displaces: F_b = ρ_fluid × g × V_displaced. An object floats when it can displace its own weight of fluid before it is fully submerged, and sinks when it cannot. The same rule explains why a steel ship floats, why it rides deeper in a river than at sea, and why heated air lifts a balloon.

This post goes one level below our tour of famous equations that changed the world. It is a sibling of Bernoulli's equation explained, which covers fluids in motion, while Archimedes covers fluids at rest. The hot air balloon example leans on the ideal gas law for air density, and the section on immersion cooled servers picks up where air vs liquid cooling for AI servers leaves off.

A note on numbers. Constants come from NIST (CODATA, the Chemistry WebBook and the X-ray attenuation density tables), air density from NASA's atmosphere model, load line rules from the IMO and 46 CFR Part 42, and balloon sizes from the FAA. Ship, balloon and object dimensions are illustrative choices of ours, and every result was rerun with the script in the walkthrough.

Key takeaways

  • The rule: the buoyant force on an immersed object equals the weight of the fluid it pushes aside, F_b = ρ_f g V_d, where V_d is the submerged volume, not the whole object.
  • Why it happens: pressure grows with depth (p = p₀ + ρgh), so the fluid pushes harder on an object's bottom than on its top. The difference is exactly ρ_f g V_d.
  • Float or sink: compare average densities. A floating object has the fraction ρ_object / ρ_fluid below the surface. A solid polyethylene block (930 kg/m³) floats 93.2% submerged in 20 °C fresh water and 90.7% in sea water.
  • Ships: a 100 m by 20 m box shaped barge at 6.00 m draft in sea water displaces 12,300 tonnes and sinks a further 150 mm in fresh water. That is the fresh water allowance on the load line mark, given in US rules as Δ/40T.
  • Balloons: a 2,800 m³ envelope at 100 °C has a gross lift of about 782 kg on a 15 °C sea level day and about 612 kg on a 30 °C day.
  • Density by weighing: density = ρ_water × m_air / (m_air − m_water). Galileo argued this, not the bath overflow, is how the crown fraud could really be caught.

What does Archimedes' principle say?

NASA Glenn's buoyancy lesson states it as "the buoyant force on a submerged object is equal to the weight of the fluid that is displaced by the object."

In symbols:

F_b = ρ_f × g × V_d

F_b  buoyant force, newtons (N)
ρ_f  density of the fluid, kilograms per cubic metre (kg/m³)
g    gravitational acceleration, metres per second squared (m/s²)
V_d  volume of fluid displaced, cubic metres (m³)

Three words do most of the work.

"Weight", not "mass". The displaced fluid's mass (ρ_f × V_d) must be multiplied by g to give a force in newtons. Engineers often quote displacement in tonnes because g cancels when comparing buoyancy with the object's weight.

"Displaced", not "of the object". For a floating object V_d is only the part below the waterline.

"A fluid", not "water". Air buoys everything up too. For a 70 litre person it is about 80 g of air, but for a balloon it is the whole story.

What Archimedes actually wrote

Archimedes' own treatment is Book I of On Floating Bodies. In Heath's 1897 translation it starts from a postulate about fluids, that "that part which is thrust the less is driven along by that which is thrust the more," and builds the principle from it. Three propositions are the ones we use today:

  • Proposition 5: "Any solid lighter than a fluid will, if placed in the fluid, be so far immersed that the weight of the solid will be equal to the weight of the fluid displaced." This is the flotation rule.
  • Proposition 6: a lighter solid forcibly pushed under is driven upward by the difference between its weight and the weight of the fluid displaced. This is why a beach ball held underwater pushes back.
  • Proposition 7: a solid heavier than the fluid sinks, and when weighed in the fluid it is lighter than its true weight by the weight of the fluid displaced. This is the basis of weighing in water.

Archimedes argued geometrically rather than with algebra, and Book II applies the ideas to the stability of floating segments of paraboloids, an early form of the stability analysis naval architects still do.

Floating, sinking and hovering

Combine the buoyant force with the object's weight W = m g = ρ_object × g × V_object and there are three cases.

CaseAverage density compared with fluidWhat happensEveryday example
Positive buoyancyρ_object less than ρ_fluidRises; floats with part above the surfaceA plastic block, a ship, a heated balloon
Neutral buoyancyρ_object equal to ρ_fluidStays at whatever depth it is placedA trimmed submarine, a fish with its swim bladder adjusted
Negative buoyancyρ_object greater than ρ_fluidSinks; weighs less when immersedAn anchor, a stone, a solid aluminium cube

"Average density" means total mass divided by the whole volume inside the outer surface, including any air.

Who was Archimedes, and is the crown story true?

Archimedes lived in Syracuse, in Sicily. The MacTutor History of Mathematics archive at the University of St Andrews gives his dates as 287 BC to 212 BC, records that he was killed when the Romans captured Syracuse in the Second Punic War, and describes On Floating Bodies as the work in which he "lays down the basic principles of hydrostatics." MacTutor also notes Plutarch's account that he was related to King Hieron II.

The story as Vitruvius tells it

The bath story does not come from Archimedes. It comes from the Roman architect Vitruvius, writing De Architectura in the first century BC, roughly two centuries later. In Book IX, Hiero commissions a votive crown of gold, hears that the goldsmith swapped some gold for silver, and asks Archimedes to find out without damaging the crown. In Gwilt's translation on the University of Chicago's LacusCurtius site, Archimedes notices water running out of the bath as he sinks into it, leaps out and runs home shouting εὕρηκα, "I have found it out." Vitruvius's method: take masses of gold and of silver equal in weight to the crown, fill a vessel to the brim, and compare how much water each pushes over. The crown spilled more than the equal weight of gold, so it had a larger volume and must contain a lighter metal.

Why historians doubt the overflow method

Chris Rorres, whose Archimedes pages are hosted by NYU's Courant Institute, works through the numbers. Take a 1,000 g wreath of 700 g gold and 300 g silver and a vessel with a 20 cm opening (314 cm²). With gold at 19.3 g/cm³ and silver at 10.5 g/cm³, the wreath has a volume of 64.8 cm³ against 51.8 cm³ for the same weight of pure gold. The 13.0 cm³ difference raises the water level by only about 0.41 mm, which surface tension, clinging water and air trapped in a lacy wreath would swamp. Rorres also notes the method uses neither Archimedes' law of buoyancy nor his law of the lever.

He proposes a balance instead: hang the wreath and an equal mass of pure gold from the two arms of a scale, then immerse both. The alloy wreath has the larger volume, is buoyed up more, and the scale tips toward the gold. In his example the apparent masses in water are 935.2 g and 948.2 g, a 13.0 g imbalance an ancient balance could detect.

Galileo's "little balance"

In 1586, at 22, Galileo wrote La Bilancetta ("The Little Balance"). Rorres describes him as skeptical of Vitruvius's account; in the translation on Rorres's site Galileo says the method Archimedes really used has "up to now remained unknown." He states the principle as Proposition 7 does, then describes a hydrostatic balance with marks for where a counterweight balances pure gold and pure silver in water, reading an alloy's composition from where its counterweight falls between them, measured by counting turns of fine wire wound on the beam.

So how reliable is the story? Hiero II was a real king of Syracuse, and ancient writers link Archimedes to him. The bath, the shout and the overflow method rest on one source written long after the fact. Treat the bath as a good story and the balance as the physics that would actually work; worked example 4 does the calculation.

Why does buoyancy happen? The pressure derivation

Archimedes' principle follows from one fact about fluids at rest: pressure increases with depth.

Step 1: pressure grows with depth

In a fluid at rest, a thin horizontal layer must support the weight of all the fluid above it. For a fluid of constant density ρ, that gives the hydrostatic equation:

p(h) = p₀ + ρ × g × h

p₀  pressure at the surface (for an open tank, atmospheric pressure)
h   depth below the surface

At 10 m in fresh water at 20 °C the extra pressure is 998.21 × 9.80665 × 10 = 97,890 Pa, almost one atmosphere.

Step 2: put a box in the fluid

NASA Glenn's lesson uses a cube, which keeps the arithmetic clean. Imagine a cube of side a, with its top face at depth h₁ and its bottom face at depth h₂ = h₁ + a.

  • The sideways forces on opposite vertical faces cancel.
  • The fluid pushes down on the top face with force p(h₁) × a².
  • The fluid pushes up on the bottom face with force p(h₂) × a².

The net upward force is the difference:

F_b = [p(h₂) − p(h₁)] × a²
    = ρ × g × (h₂ − h₁) × a²
    = ρ × g × a³
    = ρ × g × V

The surface pressure p₀ and the depth h₁ both cancel, leaving the weight of a cube of fluid the same size as the object: Archimedes' principle.

Step 3: any shape, by the replacement argument

For an arbitrary shape, NASA's lesson uses an argument that needs no calculus. Remove the object and fill the hole with the same fluid. That blob of fluid sits still, so the surrounding fluid must push up on it with a force equal to its weight. Put the object back: the pressures on the boundary depend only on depth, so the surrounding water does not "know" anything changed, and the push is the same. Integrating pressure over a closed surface with the divergence theorem gives the same result formally.

What the derivation tells you about depth

Because h₁ cancels, the buoyant force on a fully submerged object does not depend on depth, as long as the fluid density and the object's volume stay the same. Two real effects break that: sea water gets slightly denser with depth, and objects compress. A submarine hull, a wetsuit and a fish's swim bladder all shrink under pressure, reducing V_d, which is why a diver who is neutral near the surface becomes negative deeper down. For gases, density changes with altitude are large, which is why a balloon's lift depends on where and when it flies.

Units, constants and SI

Getting the units right prevents most buoyancy mistakes. The SI Brochure, published by the International Bureau of Weights and Measures (BIPM), defines the units used here; NIST publishes the CODATA values of the constants.

QuantitySymbolSI unitValue or typical range used hereSource
Standard acceleration of gravityg_nm/s²9.80665 (exact, conventional)NIST CODATA
Molar gas constantRJ/(mol·K)8.314462618 (exact)NIST CODATA
Specific gas constant for airR_airJ/(kg·K)286.9NASA Earth atmosphere model
Density of fresh water, 20 °C, 1 atmρ_wkg/m³998.21NIST Chemistry WebBook
Specific gravity of salt water for load line workdimensionless1.02546 CFR Part 42
Buoyant forceF_bN (kg·m/s²)Defined
Displacement (ship)ΔtonnesMass of water displacedNaval architecture convention

Standard gravity is a conventional value; real gravity varies by a few tenths of a percent with latitude and altitude, which does not affect any example below.

Worked example 1: will a block float, and how much is submerged?

The rule for a floating object

For a floating object, the buoyant force equals the weight:

ρ_f × g × V_submerged = ρ_obj × g × V_total

V_submerged / V_total = ρ_obj / ρ_f

The fraction below the waterline is simply the density ratio. If the ratio is 1 or more, the object cannot displace enough fluid to support itself and it sinks.

Part A: a polyethylene block

NIST's X-ray attenuation tables list polyethylene at 0.93 g/cm³, which is 930 kg/m³. Take a solid cube 10 cm on a side, so its volume is 0.001 m³ and its mass is 0.93 kg.

In fresh water at 20 °C (998.21 kg/m³):

Fraction submerged = 930 / 998.21 = 0.9317 → 93.2%
Depth submerged    = 0.93 kg / (998.21 kg/m³ × 0.01 m²) = 0.0932 m = 9.32 cm

Only 6.8 mm sticks out. In sea water (1,025 kg/m³) the fraction is 930 / 1,025 = 0.907, so almost a centimetre shows.

Part B: a solid aluminium cube

NIST lists aluminium at 2.699 g/cm³ (2,699 kg/m³). The ratio to water is 2.70, well above 1, so it sinks. How much does it "weigh" underwater? For the same 10 cm cube:

Weight in air      = 2.699 kg × 9.80665 m/s² = 26.47 N
Buoyant force      = 998.21 kg/m³ × 0.001 m³ × 9.80665 m/s² = 9.79 N
Apparent weight    = 26.47 − 9.79 = 16.68 N

Lifting the cube off a pool floor takes about 16.7 N instead of 26.5 N. NASA Glenn's lesson does the same sum for a 1 cm³ cube of specific gravity 2.8: 2,744 dynes in air, 1,764 dynes in water.

Part C: a hollow steel box

Steel sinks. NIST lists iron at 7.874 g/cm³, and we use that as a stand in for mild steel. So how does a steel ship float? Make the steel into a closed box. Take a cube 1 m on the outside with walls 10 mm thick:

Steel volume = 1³ − 0.98³ = 0.0588 m³
Steel mass   = 0.0588 × 7,874 = 463 kg
Average density = 463 kg / 1 m³ = 463 kg/m³

The average density of the box, steel plus enclosed air, is 463 kg/m³, less than half that of water. In sea water it floats with a draft of 463 / (1,025 × 1 m²) = 0.452 m, a little under half its height. The material is denser than water; the object is not. This is the step from a block of metal to a ship.

Worked example 2: a ship's displacement, draft and load lines

Displacement and tonnes per centimetre

Naval architects describe a ship's size by its displacement, Δ, the mass of water it displaces when floating, which by Archimedes equals the ship's total mass. For a simple box shaped barge (our illustrative numbers):

Length L = 100 m, beam B = 20 m, draft T = 6.00 m in sea water
Displaced volume  = 100 × 20 × 6.00 = 12,000 m³
Displacement Δ    = 12,000 m³ × 1.025 t/m³ = 12,300 t
Weight            = 12,300,000 kg × 9.80665 = 120.6 MN

How much deeper does the barge sit if you load 500 tonnes of cargo? The waterplane area A_w is 100 × 20 = 2,000 m². Each extra centimetre of draft displaces 2,000 × 0.01 = 20 m³ of sea water, which is 20.5 tonnes. That figure is called tonnes per centimetre immersion (TPC):

TPC      = A_w × ρ_sw / 100 = 2,000 × 1.025 / 100 = 20.5 t/cm
Sinkage  = 500 t / 20.5 t/cm = 24.4 cm

Real hulls taper, so TPC varies with draft and comes from the ship's hydrostatic tables.

From sea water to fresh water

Now sail the loaded barge from the sea up a river into fresh water (1.000 t/m³). Its mass has not changed, so it must displace the same 12,300 tonnes. Fresh water is less dense, so that takes more volume:

Volume needed in fresh water = 12,300 t / 1.000 t/m³ = 12,300 m³
New draft  = 12,300 / 2,000 = 6.15 m
Extra sinkage = 0.15 m = 150 mm

The fresh water allowance in the regulations

Load line rules turn this into a number painted on the hull. The US rules implementing the 1966 Load Lines Convention, 46 CFR 42.20-75(e), say the minimum freeboard in fresh water of unit density is obtained by deducting Δ/40T inches from the salt water freeboard, where Δ is the displacement in salt water in tons at the summer load waterline and T is the tons per inch immersion in salt water at that waterline. If the displacement cannot be certified, the deduction is one forty-eighth of the summer draft.

In metric units the same relation becomes a deduction of Δ/(4 × TPC) millimetres, with Δ in tonnes and TPC in tonnes per centimetre. For our barge:

FWA = 12,300 / (4 × 20.5) = 150 mm

That matches the direct calculation exactly, because the regulation's formula is Archimedes' principle with the densities 1.025 and 1.000 built in. You can check it: the extra volume in fresh water is Δ × (1/1.000 − 1/1.025), which is Δ × 0.025/1.025, and dividing by the waterplane area (100 × TPC / 1.025) leaves Δ / (4,000 × TPC) metres.

What if the dock water is brackish, say 1.010? 46 CFR 42.07-10(c) says the load line may be submerged by the fresh water allowance in fresh water of unit density, and "where the density is other than unity, an allowance shall be made proportional to the difference between 1.025 and the actual density":

Allowance = 150 mm × (1.025 − 1.010) / 0.025 = 90 mm

The direct calculation gives 89.1 mm; the proportional rule is a linear approximation, good to about a millimetre. The same paragraph exempts vessels navigating the Great Lakes.

The load line mark and the convention behind it

The International Maritime Organization says the first International Convention on Load Lines, adopted in 1930, "was based on the principle of reserve buoyancy": the watertight volume above the waterline that can be pushed under when a wave hits or water comes aboard. The current convention was adopted on 5 April 1966 and entered into force on 21 July 1968. It sets freeboards, the height from waterline to deck, that vary by zone and season, and requires load lines to be marked amidships on each side. A 1988 Protocol entered into force on 3 February 2000, and a comprehensive revision of the technical rules adopted in June 2003 entered into force on 1 January 2005 for ships of states party to that Protocol.

Under 46 CFR 42.13-25, the load line mark is a ring 12 inches in outside diameter crossed by a horizontal line 18 inches long through its centre, placed amidships at the assigned summer freeboard below the deck line. Lines beside it (46 CFR 42.13-30) mark the other load lines:

LineMarkingMeaning
SummerS, and the line through the ringBase load line in salt water
WinterWShallower loading for winter seas
Winter North AtlanticWNAThe most restrictive zone and season
TropicalTSlightly deeper loading in calmer tropical zones
Fresh water summerFSummer line plus the fresh water allowance
Tropical fresh waterTFTropical line plus the fresh water allowance

The F and TF lines exist only because of the density difference worked out above. A ship loading in a river port can load until the F line touches the water, knowing it will rise to the S line as it reaches the sea.

Worked example 3: the lift of a hot air balloon

Why heated air lifts

The FAA's Balloon Flying Handbook explains balloon flight with Archimedes' principle: buoyancy is the upward force "due to the pressure difference of the fluid between the top and bottom of the object," and the net upward force equals the weight of fluid displaced. Heating the air in the envelope makes it expand and become less dense. Once the interior air weighs less than the surrounding air, the balloon rises. The handbook notes that the envelope "does little more than contain the heated air mass."

The envelope is open at the bottom, so inside and outside pressure are essentially equal; only temperature differs, and at fixed pressure gas density is inversely proportional to absolute temperature.

The air density formula

NASA Glenn's Earth atmosphere model gives density from the equation of state as ρ = p / (0.2869 × (T + 273.1)), with p in kilopascals and T in degrees Celsius. That 0.2869 kJ/(kg·K) is the specific gas constant for dry air, R_air. Using pascals and kelvins:

ρ = p / (R_air × T)        R_air = 286.9 J/(kg·K)

The calculation

The FAA handbook lists popular balloon sizes by FAI category. AX8 envelopes run from 2,200 to 3,000 m³ and carry four to seven people. Take an illustrative 2,800 m³ AX8 envelope at sea level (101,325 Pa) with the air inside heated to 100 °C.

On a 15 °C morning:

ρ_outside (15 °C, 288.15 K)  = 101,325 / (286.9 × 288.15) = 1.2257 kg/m³
ρ_inside  (100 °C, 373.15 K) = 101,325 / (286.9 × 373.15) = 0.9465 kg/m³
Difference                   = 0.2792 kg/m³

Gross lift = 0.2792 × 2,800 = 782 kg  (about 7.67 kN)

Gross lift is the weight of outside air displaced minus the weight of hot air inside. Envelope, basket, burners, fuel and people all come out of that 782 kg.

On a 30 °C afternoon, with the same inside temperature:

ρ_outside (30 °C, 303.15 K) = 1.1650 kg/m³
Difference                  = 0.2185 kg/m³
Gross lift = 0.2185 × 2,800 = 612 kg

A 15 °C warmer day costs 170 kg of lift, roughly two adult passengers. That is why NASA Glenn notes balloons "tend to fly better in the morning, when the surrounding air is cool," and why the FAA handbook says higher elevations, hotter climates or passengers call for a larger balloon.

What changes with inside temperature

Keeping outside air at 15 °C and varying the inside temperature:

Inside air temperatureInside density (kg/m³)Gross lift for 2,800 m³ (kg)
80 °C1.0001632
100 °C0.9465782
120 °C0.8983917

Lift rises with envelope temperature, but every envelope has a manufacturer's temperature limit, watched with the envelope temperature gauge the FAA handbook describes. These figures are illustrative, not for flight planning.

What changes with altitude

NASA's model gives, for the lower atmosphere, T = 15.04 − 0.00649 h (°C, h in metres) and p = 101.29 × [(T + 273.1)/288.08]^5.256 kPa. At 1,500 m that is 5.3 °C and 84.6 kPa, so ρ_outside = 1.0595 kg/m³, ρ_inside at 100 °C = 0.7906 kg/m³, and gross lift = 753 kg. In the standard atmosphere the colder air at altitude partly offsets the lower pressure, so lift falls only about 4%. On a hot day at a high field both effects work against you.

Hot air versus helium

NIST's tables give 1.205 kg/m³ for dry air near sea level and 0.1663 kg/m³ for helium at the same reference conditions, so a cubic metre of helium lifts about 1.04 kg against 0.28 kg for air at 100 °C on a 15 °C day. Helium gives nearly four times the lift per unit volume; hot air gives control, because the pilot can add or shed heat at any time.

Worked example 4: measuring density by weighing in air and in water

The method

Proposition 7 gives a way to measure the density of any solid that sinks, without measuring its shape:

  1. Weigh the object in air. Call the reading m_air.
  2. Hang it from the balance on a thin wire, fully immersed in water, not touching the sides. Call the reading m_water.
  3. The loss of weight, m_air − m_water, is the mass of water displaced, so the volume is V = (m_air − m_water) / ρ_water.
  4. Density is ρ = m_air / V = ρ_water × m_air / (m_air − m_water).

Part A: is this a gold bar?

A small bar reads 1,000.0 g in air and 948.2 g when hung in water at 20 °C (ρ_water = 0.99821 g/cm³):

Displaced water mass = 1,000.0 − 948.2 = 51.8 g
Volume               = 51.8 / 0.99821 = 51.89 cm³
Density              = 1,000.0 / 51.89 = 19.27 g/cm³

NIST lists gold at 19.32 g/cm³. A reading of 19.27 is within 0.3%, which for a kitchen setup is consistent with gold.

Part B: the crown, done properly

Now the crown from the story, using Rorres's illustrative figures: 1,000.0 g in air and 935.2 g in water.

Displaced water mass = 64.8 g
Volume               = 64.8 / 0.99821 = 64.92 cm³
Density              = 1,000.0 / 64.92 = 15.40 g/cm³

That is far below gold. If we assume the only other metal is silver (NIST: 10.50 g/cm³), and that the volumes of the two metals simply add, the mass fraction of gold w satisfies:

1/ρ_alloy = w/ρ_Au + (1 − w)/ρ_Ag
1/15.40   = w/19.32 + (1 − w)/10.50
w ≈ 0.70

About 70% gold and 30% silver, which is the mix Rorres assumed. The balance method finds it with a 13 g signal; the overflow method would need to see a 0.41 mm change in water level.

Real alloys do not mix with perfectly additive volumes, so this is a screening estimate, not an assay.

Part C: what metrologists add

The National Bureau of Standards (now NIST) published the reference procedure in 1967: Bowman and Schoonover, "Procedure for High Precision Density Determinations by Hydrostatic Weighing." Its abstract covers a simplified air density formula, day to day variability in water density, suspension wires and degassing sample surfaces, and reports reproducibility of about one part per million on silicon crystals. The same three corrections matter at any scale: air buoyancy on the sample and the reference weights, the real water temperature (998.21 kg/m³ at 20 °C, 997.05 kg/m³ at 25 °C), and bubbles or surface tension on the suspension wire, which make a sample look less dense.

Worked example 5: how a hydrometer reads density

A hydrometer is a weighted glass float with a graduated stem. It sinks until it displaces its own mass of liquid, so it sinks deeper in a less dense liquid.

Take an illustrative hydrometer of mass 20.0 g whose submerged volume is 20.0 cm³ in water of density 1.000 g/cm³, with a stem of cross section 0.50 cm²:

Displaced volume = m / ρ_liquid

ρ = 1.000 → 20.00 cm³ (reference mark)
ρ = 0.990 → 20.20 cm³ → sinks 0.404 cm further
ρ = 1.010 → 19.80 cm³ → rises 0.396 cm
ρ = 1.100 → 18.18 cm³ → rises 3.64 cm

So the scale reads with larger densities lower on the stem, and it is not evenly spaced: because V = m/ρ, equal density steps give shrinking stem steps as density rises.

Densities of common materials and fluids

Values used in this post, with sources. Densities change with temperature and composition, so check conditions before design use.

Material or fluidDensity (kg/m³)Relative to fresh water at 20 °CFloats in sea water?Source and conditions
Hydrogen gas0.0840.0001Rises in airNIST X-ray table 1 reference value
Helium gas0.1660.0002Rises in airNIST X-ray table 1 reference value
Dry air, near sea level1.2050.0012n/aNIST X-ray table 2 reference value
Air at 15 °C, 101.325 kPa1.2260.0012n/aCalculated with NASA atmosphere model
Polyethylene (solid)9300.932YesNIST X-ray table 2
Fresh water, about 5 °C999.971.0018n/aNIST Chemistry WebBook, 0.101325 MPa
Fresh water, 20 °C998.211.0000n/aNIST Chemistry WebBook
Fresh water, 100 °C (just below boiling)958.370.9601n/aNIST Chemistry WebBook
Sea water, load line value1,0251.027n/a46 CFR Part 42 (specific gravity 1.025)
Polystyrene (solid, not foam)1,0601.062NoNIST X-ray table 2
Cortical bone1,9201.92NoNIST X-ray table 2 (ICRU-44)
Borosilicate glass2,2302.23NoNIST X-ray table 2
Ordinary concrete2,3002.30NoNIST X-ray table 2
Aluminium2,6992.70NoNIST X-ray table 1
Iron7,8747.89NoNIST X-ray table 1
Copper8,9608.98NoNIST X-ray table 1
Silver10,50010.52NoNIST X-ray table 1
Lead11,35011.37NoNIST X-ray table 1
Mercury (liquid)13,55013.57NoNIST X-ray table 1
Gold19,32019.35NoNIST X-ray table 1

Three entries are worth a second look. Fresh water is densest a few degrees above freezing (the WebBook lists 999.84 kg/m³ at 0.01 °C, 999.97 at about 5 °C and 999.70 at 10 °C), which is why lakes freeze from the top. Solid polystyrene sinks, even though polystyrene foam floats: the foam's average density is mostly air. And iron floats on mercury, because 7,874 is less than 13,550.

Ice is missing from the table on purpose. Handbooks commonly quote about 917 kg/m³ for pure ice near 0 °C, which gives the familiar result that roughly 89% to 90% of floating ice sits below the surface in sea water (917 / 1,025 = 0.895). We did not confirm that value on a primary government source for this post, so treat it as approximate, and remember that real ice contains air bubbles and brine that change it.

Where does Archimedes' principle show up in engineering?

Submarines and ballast

A submarine is a controlled buoyancy machine. A glossary of standard World War II submarine terms published by the USS Cod Submarine Memorial defines the parts. Main ballast tanks "furnish buoyancy when the vessel is in surface condition" and are carried completely full when submerged. Variable ballast tanks, including trim tanks near the bow and stern, are partly filled and adjusted for weight compensation. Submerged, the variable ballast is set so the boat has "approximately neutral buoyancy and zero fore-and-aft trim."

In Archimedes' terms, flooding the main ballast tanks replaces air with sea water, adding weight until the boat's average density matches the sea's; blowing them with compressed air restores positive buoyancy. Depth adds load, not buoyancy. Woods Hole Oceanographic Institution rates its deep submergence vehicle Alvin to 6,500 m, where ρgh alone is about 1,025 × 9.80665 × 6,500 = 65 MPa, more than 600 times atmospheric pressure. The buoyant force on a rigid hull is nearly the same there as at 10 m; the stress on the hull is not.

Ships' stability

Archimedes tells you how deep a ship floats; stability tells you whether it stays upright. The buoyant force acts at the centroid of the displaced volume, which shifts toward the low side when the ship heels. If the shift creates a righting moment, the ship is stable. The IMO notes that the 1966 convention sets freeboard partly through subdivision and damage stability calculations, and the 2003 amendments revised the rules on intact stability.

Hydrometers, floats and level gauges

Worked example 5 covered hydrometers. The same idea drives the float in a toilet cistern, many car fuel level senders, and displacer level transmitters in process plants. A displacer does not float: it measures the apparent weight of a long cylinder hanging in the liquid, which falls as rising liquid covers more of it.

Immersion cooled servers and float switches

Single phase immersion cooling puts servers directly into a tank of dielectric fluid. The Open Compute Project runs an immersion project covering single phase and two phase systems and fluid testing, and published a base specification for immersion fluids on 1 December 2022. Buoyancy shows up in three practical ways. Tanks monitor fluid level, often with a float switch whose float must be designed for the fluid's density, which is not water's. Light parts with trapped air, such as some cable bundles and labels, feel a real upward force in the fluid, so sleds and fittings are designed to stay seated. And in two phase tanks, vapour bubbles formed on hot chips are far less dense than the liquid, so buoyancy carries them up to a condenser coil. For the cooling trade offs themselves, see air vs liquid cooling for AI servers.

Icebergs

The NOAA Ocean Service defines an iceberg as ice that broke off a glacier or ice shelf and floats in open water, and classes pieces by height above sea level: more than 16 feet for an iceberg, 3 to 16 feet for a bergy bit, less than 3 feet for a growler. How much is hidden below follows from the ratio of ice to sea water density, discussed under the density table.

Walkthrough: reproduce every number in Python

Every number in this post comes from a short script. Treat scientific scripts like any other software: pin the environment so the same script gives the same answer next year on another machine.

Step 1: create a clean, pinned environment

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install pint
python -m pip freeze > requirements.txt

On the next machine, install exactly those versions:

python -m pip install -r requirements.txt

Step 2: write the calculations

Save this as buoyancy.py. Every constant is labelled with where it came from.

G = 9.80665          # NIST CODATA standard gravity, m/s^2
RHO_FW_20C = 998.21  # NIST WebBook, water at 20 C, kg/m^3
RHO_SW = 1025.0      # 46 CFR 42 salt water specific gravity 1.025
R_AIR = 286.9        # NASA Glenn atmosphere model, J/(kg K)

def fraction_submerged(rho_obj, rho_fluid):
    return rho_obj / rho_fluid

def air_density(p_pa, t_c):
    return p_pa / (R_AIR * (t_c + 273.15))

# Example 1: polyethylene and aluminium
print("PE in fresh water:", fraction_submerged(930, RHO_FW_20C))
print("PE in sea water:  ", fraction_submerged(930, RHO_SW))
al_mass = 2.699                      # kg, 10 cm cube
buoy = RHO_FW_20C * 0.001 * G
print("Al apparent weight N:", al_mass * G - buoy)

steel_vol = 1 - 0.98**3
print("Steel box mass kg:", steel_vol * 7874)

# Example 2: barge
L, B, T = 100, 20, 6.0
disp = L * B * T * 1.025            # tonnes
tpc = L * B * 1.025 / 100           # tonnes per cm
print("Displacement t:", disp, "TPC:", tpc)
print("FWA mm:", disp / (4 * tpc))
print("Brackish 1.010 allowance mm:", disp / (4 * tpc) * (1.025 - 1.010) / 0.025)

# Example 3: balloon
V = 2800
for t_out in (15, 30):
    lift = (air_density(101325, t_out) - air_density(101325, 100)) * V
    print(f"Lift at {t_out} C outside: {lift:.0f} kg")

h = 1500
t_alt = 15.04 - 0.00649 * h
p_alt = 101.29 * ((t_alt + 273.1) / 288.08) ** 5.256 * 1000
lift_alt = (air_density(p_alt, t_alt) - air_density(p_alt, 100)) * V
print(f"Lift at {h} m: {lift_alt:.0f} kg")

# Example 4: hydrostatic weighing
def density_by_weighing(m_air, m_water, rho_w=0.99821):
    return rho_w * m_air / (m_air - m_water)

rho_crown = density_by_weighing(1000.0, 935.2)
w_gold = (1 / rho_crown - 1 / 10.50) / (1 / 19.32 - 1 / 10.50)
print("Crown density:", rho_crown, "gold fraction:", w_gold)

Step 3: run it and compare

python buoyancy.py

The output should match the worked examples: 0.932 and 0.907, 16.68 N, 463 kg, 12,300 t, 150 mm and 90 mm, 782, 612 and 753 kg, and a crown density of 15.40 g/cm³ at about 70% gold.

Step 4: add unit checking with Pint

Pint carries units through each step and refuses to add or convert incompatible ones:

import pint
u = pint.UnitRegistry()
rho = 998.21 * u.kg / u.m**3
g = 9.80665 * u.m / u.s**2
V = 1000 * u.cm**3
F = (rho * g * V).to(u.N)
print(F)   # about 9.79 newton

Pint converts cubic centimetres for you, and raises an error if you compare newtons with kilograms, the classic mass versus weight slip.

Step 5: keep the script's dependencies healthy

A calculation script is software with a dependency tree, even a small one. If it lives in a repository next to a tank monitoring service, a ballast control dashboard or a lab tool, scan it with the rest of the code. With the Safeguard CLI installed, safeguard scan --dir . scans the project directory, including requirements.txt, and writes JSON results under ./output.

Common mistakes

  1. Confusing mass and weight. F_b = ρ_f g V_d is in newtons. Compare it with a weight in newtons, or cancel g on both sides and compare masses.
  2. Using the object's volume instead of the submerged volume. For a floating object only the part below the waterline counts.
  3. Ignoring fluid density changes. Fresh versus sea water moves a 12,300 tonne barge 150 mm. Water at 25 °C is about 1 kg/m³ lighter than at 20 °C. Air density falls with heat and altitude.
  4. Assuming buoyancy grows with depth. Depth raises pressure, not the net upward force on a rigid object in a uniform fluid.
  5. Using material density instead of average density. Steel sinks; a steel ship does not. Solid polystyrene sinks; polystyrene foam floats.
  6. Dropping absolute temperature. Gas density depends on kelvins. Using 100 and 15 instead of 373.15 and 288.15 wrecks the balloon calculation.
  7. Treating gross lift as payload. The envelope, basket, burners and fuel come out of a balloon's gross lift first.
  8. Trusting the overflow method. Measuring overflow from an irregular object is imprecise; weighing in water is the practical method.

FAQ

What is Archimedes' principle in simple terms?

An object in a fluid is pushed up by a force equal to the weight of the fluid it moves out of the way. If that push can match the object's weight before it is fully under, it floats; if not, it sinks but weighs less than in air.

What is the formula for buoyant force?

F_b = ρ_f × g × V_d: fluid density times gravitational acceleration times displaced volume. With SI units the answer is in newtons.

Why do steel ships float if steel is denser than water?

Because a ship is mostly enclosed air, so its average density is less than water's. A 1 m steel box with 10 mm walls averages 463 kg/m³ and floats with a 0.45 m draft.

Does a ship float higher in salt water or fresh water?

Higher in salt water, which is denser. Our illustrative barge sinks 150 mm deeper in fresh water, which is why load line marks include a fresh water line.

Did Archimedes really shout "Eureka" in the bath?

The only ancient source is Vitruvius, writing about two centuries later, so historians treat it as a story. Galileo doubted the overflow method in 1586 and proposed a balance method instead.

How does a hot air balloon use Archimedes' principle?

Heated air inside the envelope is less dense than the cooler air the envelope displaces, and the weight difference is the lift: about 782 kg gross for 2,800 m³ at 100 °C inside and 15 °C outside.

Does buoyant force change with depth?

Not for a rigid object in a fluid of constant density. In practice objects compress and sea water density varies slightly, so it can change a little.

How do you find density using Archimedes' principle?

Weigh the object in air, then fully immersed in water. Density = ρ_water × m_air / (m_air − m_water). Readings of 1,000.0 g and 948.2 g at 20 °C give about 19.27 g/cm³.

What fraction of a floating object is under water?

The ratio of its average density to the fluid's: 93% for a 930 kg/m³ polyethylene block in fresh water, and roughly 89% to 90% for ice in sea water using a handbook ice density.

Does Archimedes' principle work in air?

Yes. Any fluid exerts a buoyant force. It is small for dense objects but is the whole basis of balloons and a correction in precise weighing.

The software that runs the machines: an honest bridge

Archimedes' principle is physics, and Safeguard does not do physics. Its models are single purpose security models for software; they do not calculate buoyancy, size ballast tanks, assess ship stability or inspect hardware, and nothing in this post was computed by them. The connection is narrower and real. Ballast control systems, tank level monitoring, immersion cooling controllers, balloon instrument systems and the dashboards that sit around them run firmware and software, and much of the code teams build around them, telemetry services, protocol gateways, web dashboards and analysis scripts like the one in the walkthrough, is assembled from open source dependencies. Where Safeguard helps is there: scanning those repositories, container images and SBOM files for known vulnerable open source components, showing which projects carry a given version, and, when a fixed version exists, opening an upgrade pull request for review.

Every rebuild of a monitoring service or calculation tool pulls its dependencies again, and the controllers and gateways around pumps, tanks and float switches ship open source components of their own. The fit is indirect for the hydrostatics, but for the code your team builds and ships around these systems the same dependency hygiene applies, and the section below shows how to close the gap whether or not upstream has a fix yet.

Fix it without waiting for upstream

Whatever the vulnerability, most of the risk sits in two gaps. The first is the time between a fix being published and that fix actually running in your production builds. The second, and worse, is the time before any fix exists at all, while a maintainer works out a patch and a release schedule. Waiting through both gaps is a habit, not a requirement. Safeguard gives teams three ways to close them.

1. Autonomous remediation: pull requests, not tickets

When a fixed version exists, Safeguard's Griffin models open a tested, policy gated pull request that moves the affected dependency to the safe version. You can run it on one repository or in bulk across every project that carries the vulnerable version. Remediation covers eight categories, including dependencies, licenses, security posture and findings. Reachability analysis ranks the vulnerable code paths your application actually calls first, so the first pull requests you merge are the ones that matter most. Autonomous remediation ships switched off, with every category set to Manual, so your team decides how much runs on its own and what still needs a human approval.

2. Gold Open Source: the safe version in seconds, free

gold.safeguard.sh is free and needs no login. Search any CVE or package to see affected and fixed versions, CVSS, EPSS, CISA KEV status and a recommended safe version, or use the "Am I affected?" checker. The same data is available through a free read API, README status badges and RSS threat feeds. The safeguard-sh/gold-scan-action GitHub Action can fail a build on a known exploited vulnerability, on any known vulnerability, or never, so a version you have just removed cannot quietly come back in next week's merge.

3. Gold Registry: start from components that are already fixed

registry.safeguard.sh provides hardened, drop in replacements for upstream packages and container images. Every Gold artifact is held continuously to zero exploitable critical or high CVEs, zero malware and a completed license check, with SLSA L3 or higher provenance, a Sigstore signature and a public evidence page you can hand to an auditor. An artifact loses its Gold badge if it regresses. Teams can point their own package directory at the registry so hardened equivalents resolve without changing how developers install anything.

When upstream has no fix yet, or will not ship one, Safeguard first works to get the fix accepted upstream. If the issue is severe or upstream will not move, Safeguard builds a fork, fixes the vulnerability there and publishes a hardened Gold build, so you are not stuck on a maintainer's release schedule. You can also request a hardened, compatibility tested build of a specific package. This fork and patch flow is in early access today, so ask which packages it covers before you plan around it.

Your situationWhat to use
A fixed version existsAutonomous remediation opens the upgrade pull request; Gold Open Source confirms the safe version
You need to know today whether you are affectedGold Open Source lookup and "Am I affected?" checker, free and without login
You want vulnerable versions to stop shippingThe Gold scan GitHub Action in CI, plus Safeguard policies and gates
Upstream has no fix yet, or will not ship oneA custom Gold request; fork and patch (early access)
You want to start clean on new projectsPull hardened components and images from Gold Registry

One honest limit: when the vulnerable code lives in a vendor appliance, a hosted service or an operating system runtime you do not build yourself, the fix still has to come from that vendor or distribution. The steps above apply to the open source dependencies and container images you build and ship, which is where most teams carry the largest and least tracked share of their exposure.

See how Safeguard would help

None of these demos involve buoyancy calculations; they show the software side described in the bridge above.

The first demo is a real Safeguard CLI session: it installs the CLI, opens the interactive terminal and asks it to fix a lodash CVE in a repository. It reads the finding and advisory, asks before each command, edits package.json to lodash 4.17.21, runs npm install and npm test with approval, prints a summary and pushes nothing. The same flow applies to a tank level dashboard or a ballast telemetry web app your team maintains: scan the repository, then let the assistant propose the dependency upgrade under your approval.

Click through it at your own pace, or open it full screen.

The second demo sets up the Safeguard runner on your own machine, approves it with its device code and then scans from the terminal. That suits engineering teams who keep calculation scripts, instrument integration code or lab tooling on their own hardware and want the scan to run where the code lives.

Click through it at your own pace, or open it full screen.

The third demo connects Claude to the Safeguard MCP server with OAuth and lets you choose which tools Claude can use. For an engineer who already works with Claude while writing a cooling or monitoring service, it brings dependency findings into the same conversation, limited to the tools you allow.

Click through it at your own pace, or open it full screen.

To try it on your own repositories, download Safeguard and follow the CLI documentation.

Quick check

A wooden block of density 600 kg/m³ floats in fresh water at 20 °C. What fraction is submerged?

600 / 998.21 = 0.601, so about 60% is under the surface and 40% is above.

A ship with a displacement of 20,000 t and a TPC of 30 t/cm sails from the sea into fresh water. How much deeper does it sit?

The fresh water allowance is Δ / (4 × TPC) = 20,000 / 120 = 167 mm, so it sits about 167 mm deeper.

A sample weighs 500.0 g in air and 450.0 g in water at 20 °C. What is its density?

The displaced water is 50.0 g, a volume of 50.0 / 0.99821 = 50.09 cm³. Density = 500.0 / 50.09 = 9.98 g/cm³.

Sources

Last reviewed: 24 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.