Blender freezing when appending model with MHX rig

Issue #1534 resolved
Simon Patrick created an issue

Background:

I have a model imported from DAZ with an MHX rig. I tested it with a bunch of users and some of them reported freezing issues. There could have been multiple culprits such as people having some ancient rig, but some of them had very powerful systems so that wasn’t it. One of them said that updating the MHX version fixed the freezing issues for him. The other said after some A/B testing that he’s fairly certain it’s MHX related.

I have a fairly beefy PC as well but I could not replicate the problem so I felt like I was fighting ghosts when addressing this freezing issue that people encountered. Today I managed, by accident, to run into what is probably the same issue.

Problem:

Using one major version of MHX and appending a model that was created with a different version causes Blender to freeze.

This is how things looked for me

MHX version installed MHX version used to create the model Result
1.6.1 1.7.0 ❌ Freezes
1.6.1 1.6.1 ✅ Works
1.7.0 1.6.1 ❌ Freezes
1.7.0 1.7.0 ✅ Works

Videos illustrating the two broken scenarios and the sample blend files

https://mega.nz/folder/zuAFlKgS#DfSEIJSqliCdppHy_nsDxA

Steps to reproduce:

  1. install and enable Diffeo 1.6.1
  2. import DAZ model and convert it to MHX then save the blend file
  3. install and enable Diffeo 1.7.0
  4. create a new blank file and append the model
  5. Try to pose the model, Blender will freeze

System:

  • Microsoft Windows 11 Pro
  • AMD Ryzen 7 5800X 8-Core Processor, 4200 Mhz
  • 32GB RAM
  • nvidia 3070
  • Blender 3.1.2

Comments (12)

  1. Thomas Larsson repo owner

    MHX has evolved over the years, and it is quite likely that different mhx versions are incompatible. I’m a single person doing this on my spare time, and I don’t have resources to maintain old versions. The simple workaround is to regenerate the mhx rig for the new version. The underlying daz rig should still work.

  2. Simon Patrick reporter

    Just to be clear: I think you’ve done an amazing job with this and I can’t emphasis this enough. I used the official DAZ to Blender bridge before and the rig was a mess.
    I put a lot of work in a model based on that and after many months of work I’ve had to make the tough decision to throw it all in the garbage bin and start from scratch with Diffeo and MHX even though it looked like a much more intimidating option the process was unexpectedly smooth, everything worked as intended, it allowed way more functionality than the Daz to Blender Bridge ever did and the guides were incredibly helpful.
    So let me say thank you for all your hard work.

    I just wanted to confirm if the problem was real (and not due to some other factors) and then see what are the best workarounds.
    If the problem seems to be real a good workaround could be a simple version detector that throws a warning when an incompatible version is detected, with a link to download the new version.

    I could do this for my model directly, I would just need to know what property (what differentiator) to look for. In fact, if this sounds like a decent workaround for starters I could actually take a whack and trying to add this to the official codebase and making a pull request for it.

  3. Thomas Larsson repo owner

    Now I tested and am unable to reproduce this. My steps:

    1. Generate mhx with daz importer/mhx rts 1.6.1 and blender 3.1.0.
    2. Save the blend file.
    3. Open the blend file in blender 3.5.0 with dev version of daz importer/mhx rts (1.7.1).
    4. Nothing freezes but all mhx panels only show the button Update MHX.
    5. After updating this seem to work.

  4. Alessandro Padovani

    As I see it, in general mhx is not granted to be backward compatible. It is the same with blender and rigify, new versions may have incompatibilities. It is the same with daz studio. It is the same with other addons you may use. So the general workflow is, when you start a new project, backup the addons and make a note of the blender and daz studio versions required for that project.

    You may of course update the addon but you have first to test that the new version works fine, otherwise just use the old version.

    If there’s nothing to add I’d close as invalid since there’s no real issues here.

  5. Simon Patrick reporter

    there’s no real issues here.

    I’m not sure if I would phrase it like that. The problem is not with the incompatibility per se. The problem is with Blender freezing and the user having no idea why and banging their head against the wall.

    A simple message such as “this rig was created using an older version of MHX and might not work as intended….” would turn a lot of frustration and anger into a situation where people could show some understanding.

  6. Alessandro Padovani

    Except Thomas can’t reproduce the freezing. Me neither. It is supposed to show “update mhx“ that’s the message you’re asking for.

    You may want to try blender 3.3 LTS or 3.5, since the freezing could be a bug in blender. Since the plugin is python code any freezing is likely to be due to blender rather than the plugin. If a python code crashes it gives runtime errors, it doesn’t freeze.

    That is, python can’t freeze by design, so a system crash is not something that you can handle in python.

  7. Alessandro Padovani

    It may also be other addons, it is not unusual in blender that some addons are incompatible or cause troubles. You may try disabling other custom addons you’re using.

    Be sure to use 3.5 or a LTS version of blender for testing, because non LTS may include unfixed bugs. To test your steps I used blender 2.93 with diffeomorphic 1.6.1 and blender 3.5 with diffeomorphic 1.7.1, everything works fine with “update mhx“.

  8. Log in to comment