Bounded Buoyancy: Added Mass and Two Ceilings for Stable, Accurate Buoyancy in Game and Simulation Engines
Year: 2026
Type: preprint
Abstract: Game engines model buoyancy as a force on the body's own mass: weight down, the weight of displaced water up, and damping to taste. For bodies less dense than water this has no ceiling. A table-tennis ball released under water accelerates at 11.4g in the first frame, a foam ball at 32g and an air bubble at 815g, enough to move it more than a metre in one 60 Hz frame. Real light spheres and bubbles start at no more than 2g, because the water around them must be set moving too: the added mass. Simulators that add the added mass as a separate, lagged force become unstable as soon as the body is lighter than its added mass. Bounded Buoyancy puts the added mass of the submerged part into the body's inertia every step, M = ρV + C·ρw·Vsub, keeps momentum when the added mass grows on water entry, and leaves the rest of the engine unchanged. Buoyancy-driven falling is then capped at g and rising at g/C for every density, and the first frame is exact. At 60 Hz, surfacing times agree with a fine-step reference to within about 1%, where the usual model is 6–20% early. Light floats bob at the reference period, within 5%, and settle as the reference does, where the usual model bobs on with 1.6 to 25 times the amplitude. The cost is about 9 ns per body per step on one processor core. The physics is classical added mass, which ValerieX builds into its starting law; what is new is a drop-in form for game engines, with stated ceilings and benchmarks. Reference code (bounded_buoyancy.py) and the cost benchmark (cost_bench.c) are deposited with the paper. Plugins for Godot and Unity are at https://github.com/NPARKYN84/bounded-buoyancy. Version 1.1 (October 2026). Companion paper to ValerieX (VXXX): The Density-State Drive, v2.2 (https://doi.org/10.5281/zenodo.23304469).
Author: Parkyn, Nicholas
Language: English
Field: Computer Science
Domain: Physical Sciences
Open Access status: green
OpenAlex ID: W7221469064
