Different Results Between ShapeWorks Studio and Python Pipeline for Multiple Domain SSM

After going through the multiple domain use-cases, I started developing a multiple domain SSM for pediatric forearms. Initially, I used ShapeWorks Studio, but I quickly noticed that the results were not properly aligned – the groomed data was simply not usable for optimization.

To address this, I implemented the grooming steps (smoothing, reflection, alignment) in a custom Python script, based on the Python examples from the multiple domain use-case. This approach surprisingly did produce well-aligned, usable data for the Optimize step.

I then returned to ShapeWorks Studio to tune the parameters and visualize how the particles were distributed. I started with a small sample and a low number of particles, gradually increasing both. Eventually, I ran into the same issue described in this thread: www.shapeworks.discourse.group/t/difficulties-tuning-particle-optimization-parameters/191.

What I’m observing now is that ShapeWorks Studio does not produce the same results as when I run ShapeWorks via a Python script – even when using the same default parameters. The differences are significant: the Studio output is worse, while the Python output is reasonable (see attached images).


Studio, command line shapeworks, and the python API are all using the same optimization library, so something must be different about the inputs. Are you using the same project xlsx file for both? What could be different?

Everything I’m using is 100% identical: the same data sample, exactly the same grooming steps, the same reference shape, and the same parameters (default settings). The only difference is that I’m using ShapeWorks Studio in one case, and a Python script in the other, which is almost entirely based on the multiple domain use case for the hip.