making an air bubble

I have made these bubbles in other projects and they look good but I want it to look much more realistic. Wondering if there are any tutorials on making air bubbles wiggle realistically as the rise to the surface or if any one has tips on doing this. Mine look, rotate, wiggle sort of good but I want to improve it.


just using random at intervals and some shapekeys would be my guess…animating via replacemesh might work, but depending on the model and animation complexity might get more expensive than vertex animation.

another option is to have control over squashing and stretching with an armature…and semi randomizing the scale of the armature with

own.localScale.x = own.localScale.x + random.uniform(-0.001, 0.001)
own.localScale.y = own.localScale.y + random.uniform(-0.001, 0.001)
maybe on z axis as well with some clever weights to show some swelling at the apex of the bubble.
if this is done every frame it will just cause strange vibration behavior :slight_smile: I tried it on a camera once to fake DOF, but without an extremely high FPS it makes your eyes scream in pain :slight_smile:

it would need a better way to increment and decrement the scales over time, and to be clamped I guess…the scale would get higher as the bubbles get closer to the surface as well…

…anyway just some random thoughts.

You could use some sine and cosine to make them oscillate.

Thanks I will try out those suggestions


For micro motion:
Node material that distorts the texture based on world position. (If usig GLSL and 2d sprites). Or perhaps a vertex shader that distorts the geometry (If using GLSL and 3d objects).

For macro motion:
Bubbles probably follow some sort of brownian motion, so addint random numbers to the world position is probably accurate enough.

Final note:
Bubbles aren’t spheres. Sure, anything under a few mm is, but larger ones turn into mushroom shapes.