Skip to content

MaskedMimic (SMPL) pretrained checkpoint incompatible with ProtoMotions3 (main) #237

Description

@zyr-ai

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

  1. 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.

  2. If not, do you plan to release a v3-compatible MaskedMimic pretrained

    checkpoint, and is there an estimated timeline (if convenient to share)?

  3. 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?

  4. 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

main()

File "~/ProtoMotions/protomotions/inference_agent.py", line 245, in main

assert (

AssertionError: Could not find resolved configs at ~/ProtoMotions/MaskedMimic/resolved_configs_inference.pt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions