Context
I downloaded the pretrained MaskedMimic (SMPL humanoid) checkpoint from
https://huggingface.co/ctessler/MaskedMimic, which ships with a Hydra-style
config.yaml. The HuggingFace instructions say to run:
python protomotions/eval_agent.py +robot=smpl +simulator=isaaclab \
+motion_file= \
+checkpoint=data/pretrained_models/masked_mimic/smpl/last.ckpt
However, the current main branch (ProtoMotions3) has been refactored to use
Python experiment files + pickled resolved_configs, and no longer uses
eval_agent.py / Hydra. It now uses inference_agent.py and requires a
companion file resolved_configs_inference.pt next to the checkpoint — which
the old checkpoint does not include.
Running inference_agent.py with the old checkpoint fails with:
AssertionError: Could not find resolved configs at .../MaskedMimic/resolved_configs_inference.pt
Technical investigation
-
The new resolved_configs_inference.pt is a dict with 7 keys: robot,
simulator, terrain, scene_lib, motion_lib, env, agent — each
value is a dataclass config with a target attr, saved via
torch.save(..., weights_only=False).
-
The old Hydra config references env class
protomotions.envs.mimic.env.Mimic and agent class
protomotions.agents.masked_mimic.agent.MaskedMimic — both classes no
longer exist on current main.
-
The old model architecture uses MultiHeadedMLP, MLP_WithNorm,
VaeModule, VaeDeterministicOutputModel with state_dict prefixes like
_encoder._trunk.input_models.* — entirely different from the current
model's ModuleContainerConfig.models structure.
-
Loading last.ckpt directly into the current MaskedMimicModel (default
config): all 141/141 checkpoint keys are reported as "unexpected", 0
params map. This confirms it is not a config issue but a fully changed
network architecture — the old weights cannot be reused as-is.
Questions
-
Is there any MaskedMimic (SMPL) checkpoint already re-trained / re-exported
compatible with the resolved_configs_inference.pt format of ProtoMotions3
(current main)? If so, please share the download link.
-
If not, do you plan to release a v3-compatible MaskedMimic pretrained
checkpoint, and is there an estimated timeline (if convenient to share)?
-
I confirmed the network architectures between the two versions are
completely different (state_dict does not map at all — see evidence
above). Is converting old weights to the new architecture considered
infeasible, or is there a way (e.g. an internal migration script your team
used during the refactor) to do the conversion?
-
If I need to run MaskedMimic right now, is the fastest path to checkout the
last commit that still had eval_agent.py (the Hydra version)? If so, does
that version support a MuJoCo (CPU-only) simulator, since I need to run on
a machine without an NVIDIA GPU?
Thanks for your time and the great work on ProtoMotions!
Traceback
Traceback (most recent call last):
File "~/ProtoMotions/protomotions/inference_agent.py", line 468, in
File "~/ProtoMotions/protomotions/inference_agent.py", line 245, in main
AssertionError: Could not find resolved configs at ~/ProtoMotions/MaskedMimic/resolved_configs_inference.pt
Context
I downloaded the pretrained MaskedMimic (SMPL humanoid) checkpoint from
https://huggingface.co/ctessler/MaskedMimic, which ships with a Hydra-style
config.yaml. The HuggingFace instructions say to run:
python protomotions/eval_agent.py +robot=smpl +simulator=isaaclab \
+motion_file= \
+checkpoint=data/pretrained_models/masked_mimic/smpl/last.ckpt
However, the current main branch (ProtoMotions3) has been refactored to use
Python experiment files + pickled resolved_configs, and no longer uses
eval_agent.py / Hydra. It now uses inference_agent.py and requires a
companion file resolved_configs_inference.pt next to the checkpoint — which
the old checkpoint does not include.
Running inference_agent.py with the old checkpoint fails with:
AssertionError: Could not find resolved configs at .../MaskedMimic/resolved_configs_inference.pt
Technical investigation
The new resolved_configs_inference.pt is a dict with 7 keys: robot,
simulator, terrain, scene_lib, motion_lib, env, agent — each
value is a dataclass config with a target attr, saved via
torch.save(..., weights_only=False).
The old Hydra config references env class
protomotions.envs.mimic.env.Mimic and agent class
protomotions.agents.masked_mimic.agent.MaskedMimic — both classes no
longer exist on current main.
The old model architecture uses MultiHeadedMLP, MLP_WithNorm,
VaeModule, VaeDeterministicOutputModel with state_dict prefixes like
_encoder._trunk.input_models.* — entirely different from the current
model's ModuleContainerConfig.models structure.
Loading last.ckpt directly into the current MaskedMimicModel (default
config): all 141/141 checkpoint keys are reported as "unexpected", 0
params map. This confirms it is not a config issue but a fully changed
network architecture — the old weights cannot be reused as-is.
Questions
Is there any MaskedMimic (SMPL) checkpoint already re-trained / re-exported
compatible with the resolved_configs_inference.pt format of ProtoMotions3
(current main)? If so, please share the download link.
If not, do you plan to release a v3-compatible MaskedMimic pretrained
checkpoint, and is there an estimated timeline (if convenient to share)?
I confirmed the network architectures between the two versions are
completely different (state_dict does not map at all — see evidence
above). Is converting old weights to the new architecture considered
infeasible, or is there a way (e.g. an internal migration script your team
used during the refactor) to do the conversion?
If I need to run MaskedMimic right now, is the fastest path to checkout the
last commit that still had eval_agent.py (the Hydra version)? If so, does
that version support a MuJoCo (CPU-only) simulator, since I need to run on
a machine without an NVIDIA GPU?
Thanks for your time and the great work on ProtoMotions!
Traceback
Traceback (most recent call last):
File "~/ProtoMotions/protomotions/inference_agent.py", line 468, in
File "~/ProtoMotions/protomotions/inference_agent.py", line 245, in main
AssertionError: Could not find resolved configs at ~/ProtoMotions/MaskedMimic/resolved_configs_inference.pt