In Atoms we introduced the concept of gravity. Gravity drives the agents up vector. Thanks to this idea you can also simulate your agents walking on 3D meshes and not just on 2D planes.
The way you apply gravity to your agents is by setting the gravityField on some of the Behaviour Modules, such as the State machine, Cache reader and Clip reader.
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.
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.