Get Pose and RootMotion from any AnimationClip (random time)

I would like to create a helper class to retrieve the human pose and root motion at a specified time from any AnimationClip. Basically, I want to implement a method with the following signature:

public void ExtractPoseAndRootMotion(AnimationClip clip, float time, float deltaTime, out Quaternion[] boneRotations, out Vector3 rootMotionTranslation, out Quaternion rootMotionRotation)

The root motion is calculated between [time - deltaTime; time].

The goal is to bypass the animator to prototype some post processing techniques (custom blending) or adjust the root motion. This method should performant to be called at each update.

I got something working with playables but it requires creating a GameObject in the scene with an animator. I set the avatar on the animator, create a PlayableGraph, and then every time the AnimationClip is different, create a new AnimationClipPlayable in the graph while destroying the previous one.
I don’t like very much this approach as it requires a GameObject in the scene, even though I can make it invisible. Also, it doesn’t seem too performant.

Are there other efficient approaches to extract the human pose and root motion from an AnimationClip at runtime ?

Since the Animator (or the old Animation) classes are Components and since Components are useless without being connected to a functional GameObject, I’m not sure how this would ever be avoidable.