I am thoroughly convinced you did not search first upon seeing both “AnimationController is poorly documented” and “no clear examples of how it works”, both of which are objectively false. Please search before posting topics and avoid asking for what’s already available.
AnimationController is not poorly documented. What more information are you expecting to receive about them other than their very clear explanation right on the documentation page?
An object which allows animations to be loaded and applied to a character or model in place of a Humanoid when a Humanoid is not needed. Creates an Animator and loads animations to update Motor6Ds of said character to react in the way that is described within the animation asset referenced by an Animation object.
AnimationControllers are used to load and run animations the same way you would for a Humanoid, except this is used in cases where you do not need a Humanoid but stil wish to play animations on an entity in question.
Code samples are available on Using Animations in Games. They cover replacement of character animations as well as playing animations using both Humanoids and AnimationControllers.