...
Gravity fields are actually height fields (you create them with the Height Field Manager). During the simulation Atoms uses the normal of the gravity field to change the gravity metadata of the agent and rotate his up vector.
For example, if you have a very uneven height field (like in the picture), you can create a smoother mesh as your gravity field.
The gravity field is Gravity fields are not the only way to drive the agent up vector. Any custom behaviour module can change the gravity metadata of the agent to achieve the same effects.