Buoyancy & Density Simulator
Adjust an object's density relative to water, and switch between a solid block and a hollow hull, to see what actually decides whether something floats — and it isn't just "heavy things sink."
Sinking
The math behind it
An object floating in a fluid pushes fluid out of the way, and that displaced fluid pushes back — that upward push is called buoyant force. Whether something floats comes down to comparing two densities:
floats when: density(object) < density(fluid)
A floating object settles until the fraction of it underwater matches the ratio between the two densities — an object exactly half as dense as water floats with exactly half of itself submerged, regardless of its size.
This also answers a genuinely confusing question: steel is roughly 7.8 times denser than water, so how does a steel ship float? "Density" has to account for the whole object, not just the material it's made of. A ship's hull is mostly hollow — it encloses a huge volume of air — so its average density (steel plus all that enclosed air) ends up far below water's, even though the steel itself would sink instantly on its own. Try switching to "hollow hull" above at a high density to see the same material float once it's shaped to enclose air instead of being solid.
This simulator treats a hollow hull's material as a fixed 6% of its total enclosed volume — a reasonable approximation for how thin a real ship's hull is relative to its cargo holds, not a measured figure. It also ignores wave action and cargo weight, and doesn't model flooding — which is exactly why a damaged hull can sink even though an intact one of the same shape floats fine.
More on forces as a concept →