I Was wondering if someone already try to create buyoancy and what are the principle.
You could make a controller that checks on the up axis how far the floating object is from the surface. From there you could make some sort of elastics force.
Any object, wholly or partly immersed in a fluid, is buoyed up by a force equal to the weight of the fluid displaced by the object.
Although his explanation did not include surface tension, it probably is well enough for games.
Check here for more information:
Yup, it's an easy thing to solve.
Do a collision test with your body of water, then add a world force to push your body towards the surface based on the distance/penetration (capped by your object mass), plus a little extra based on a percentage of your resulting world force to overshoot the mark and cause bobbing. If you've set your center of mass correctly, it should look good. Because to the simulation it's floating, the body's existing torque will be maintained and act relatively correctly, but you might want to bump up the friction.
There'll definitely be a lot of both simple and complex examples of buoyancy out there if you look.