Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

🏊 Simulate and visualize how water temperature, body fat, and wetsuit thickness affect human buoyancy.

Notifications You must be signed in to change notification settings

chauvinSimon/flotte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Buoyant Force Simulator

🧭 Goal

This project aims to analyze and visualize the effect of various factors on the buoyant force experienced by a human body in water. Specifically, it compares how buoyancy is affected by:

  • 🌑️ Water temperature (via changes in density)
  • πŸ§₯ Wetsuit thickness (neoprene adds both volume and weight)
  • βš–οΈ Body fat percentage (affects body density)

The model uses Archimedes’ Principle to estimate net buoyant force.

buoyant_force_impacts
Without Dead Sea

🧠 Simplified Physical Model

Archimedes' principle states that the upward buoyant force that is exerted on a body immersed in a fluid, whether fully or partially, is equal to the weight of the fluid that the body displaces. (Wikipedia)

We apply Archimedes' Principle:

F_buoyancy = ρ_water * g * (V_body + V_neoprene) - m_neoprene * g

πŸ“Œ Assumptions

See utils_physics.py for details.

🏊 Swimmer:

  • Fully submerged and static (no swimming, no lung inflation, no motion).
  • Body modeled via two compartments:
    • Fat and Lean mass with fixed densities (harmonic mean).
  • Body surface area computed via Du Bois formula.

πŸ§₯ Wetsuit:

  • Covers 82% of body surface.
  • Has uniform thickness and density.
  • The wetsuit does not modify the body volume. Not true if you have ever worn in a wetsuit πŸ˜‰
  • No wetsuit compression due to depth - volume stays constant.
  • Adds volume and weight (included in force calculations).

🌊 Environment:

  • Water density is computed as a function of temperature using a 5th-order polynomial approximation.
  • Water is still (no motion or turbulence).
  • Temperature is uniform throughout the water volume.

🌐 Constants:

  • Gravity is constant: g = 9.81 m/sΒ².
  • All densities and material constants are loaded from config.yaml.

πŸ› οΈ Usage

To run the buoyant force simulations and generate plots:

python src/flotte/scripts/plot_impacts_on_buoyancy.py
# or
python -m flotte

You can adjust simulation parameters in config.yaml, such as:

  • Body mass, height, and fat percentage
  • Water temperature
  • Wetsuit thickness

Also, you can add the Dead Sea as a reference value:

πŸ’‘ Fun Fact: The Dead Sea provides about more than 4Γ— more buoyant force increase than a 2.5mm wetsuit. This is due to its extreme salinity, raising water density to ~1240 kg/mΒ³.

buoyant_force_impacts_with_dead_see
With Dead Sea

πŸ—ƒοΈ Files Overview

File Purpose
plot_impacts_on_buoyancy.py Core plotting logic and simulation runner
utils_physics.py Physics computations (density, buoyancy, volume)
config.yaml Configuration for environment and body parameters
buoyant_force_impacts.png Generated comparison plot

πŸ“Š Output

The output plot shows how buoyant force expressed in N (left y-axis) varies with each parameter (each subplot).

The plot also includes:

  • Reference buoyant forces (RefBuoyF) computed for each body without wetsuit, in a 20Β°C fresh water environment.
  • Percentage improvement in buoyant force over the RefBuoyF baseline (right y-axis).
  • A summary table of body parameters used and resulting buoyant forces.
  • Buoyancy reference forces (see parameters in config.yaml):
    • Body weight: the baseline force of gravity on the person.
    • Pull buoy: Simulated as 1500 cmΒ³ of low-density foam β†’ adds β‰ˆ15 N of buoyant force.
    • Maximum inhale: Simulated as 4.8 liters of air β†’ adds β‰ˆ47 N of buoyancy.

Equilibrium occurs when buoyant force = body weight.
Positive buoyancy (floating) occurs when buoyant force > body weight.


🧠 Observations & Takeaways

Note: Wetsuits are typically 2–3 mm thick on average. Some panels may reach 5.0 mm, but overall body coverage averages lower.


  • 🧍 Without added air, all tested bodies sink in fresh water.
  • βœ… A 7–8% increase in buoyancy is typically enough to reach neutral floatation.
  • πŸ’¨ Air volume matters: A full inhale adds significant buoyancy (~47 N), enough to float lighter bodies.
  • 🧘 Try it yourself: Inhale deeply while still in water - then exhale slowly and observe your own buoyancy change.

  • πŸ‘™ Wetsuits (~+5%) increase buoyancy more than moderately salty water (~+3%) like the Mediterranean Sea.
  • 🌊 The Mediterranean Sea gives a buoyancy boost similar to wearing a ~1.5 mm wetsuit.
  • πŸ§‚ The Dead Sea (+24%) offers the most dramatic boost - roughly 4–5Γ— more buoyant than a 2.5 mm wetsuit.
    • Equivalent to wearing 4-5 wetsuits, or floating with 8 pull buoys!

  • 🧊 Water temperature has minimal impact - its effect on density is too small to meaningfully change buoyancy.

  • 🧬 Body fat influences buoyancy significantly - but often comes with added weight, which can offset gains.
    • Example: Bodies #2 and #3 have the same height.
      • Body #2 is lean (68 kg, 13% fat) and floats with an inhale.
      • Body #3 is muscular (75 kg, 10% fat) and sinks even after inhaling.

About

🏊 Simulate and visualize how water temperature, body fat, and wetsuit thickness affect human buoyancy.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages