Definitely boat physics. I tried to get the boat to smoothly bob and tilt like a normal boat using several different methods but I couldn't get it just right and it ended up looking really weird. So I just used asymptotic averaging between the boats current position and a position just above the water with no tilt.