Plug-in-gait_Simple modeling error with C3D


When I am trying to input a C3D file (jumping) into Plug-in-gait_Simple model predicting the GRF . It shows:ERROR(OBJ.MCH.MUS4) : C:/U…s/pc/D…p/A…o/T…s/A…p/AnyMoCapModel.any(59) : InverseDynamicStudy.InverseDynamics :Muscle recruitment solver:solver aborted after maximum number of iterations. What should I do next?
Any help with this would be greatly appreciated.


Hi @Nickel_Lee

I am afraid this is a known bug in AMMR 2.1 Does the error happen close to the end of the simulation?

The reason is high/wrong accelerations caused by lower pass filter transients at the end/beginning of the data. These things are unavoidable when the C3D is cut very close to interval we are analyzing. We have tried to fix this in the upcoming version the AMMR. It also includes a warning if users try to run analysis close to start/end of the file.

Best wishes


Thank you for your response.

It actually happened to the start of the simulation of InverseDynamics Study. Maybe I wasn’t cut the C3D file properly. I’ll try to use the whole C3D file to see what happens?

Thank you.

Best wishes


Ahh. So it is your own C3D file, and not the example model. Yes. I could imagine the error could happen at the beginning of the file as well. Just leave 10-15 frames at each end of the c3d file before you start the analysis. That should be enough time for the low pass filter transient to settle.


Another question.
How do I predict the GRF using a running C3D in the treadmill? There is space between the foot and force plate. does that lead to the problem above shown?

Thank you.


Hi @Nickel_Lee

That could also explain the problems you are seeing. The GRF prediction class is configured to detect contract between the foot and ground. If no contract is provided by the GRF class then the model may fail in the way you see.

This can happen if the distance between plate and foot is large (as it can be with a treadmill). One solution is to move the ground floor up (by changing the PLATE_BASE_FRAME argument in the GRF class). The other option is to increase the trigger volume where the GRF plate considers the foot and plate to be in contact. This can be done by increasing the variable Settings.LimitDistHigh in the class.

The relative speed between the foot and ground is another thing the GRF plate takes into account when detecting foot contact. This is done to avoid detecting contact in the swing phase where the foot is moving. When using a treadmill, that causes problems because the ground has a velocity. Luckily, the GRF plate also supports that. You need to set the Settings.GroundVelocity vector in the class, so it detects the foot as stationary when it moves with the force plate.

It should be easy to see if the GRF plate detects contact. The nodes in contact should “highlight” and the small blue support forces become visible. So tweak the settings of your GRF plate until it works correctly.









I am doing a project about Jumping to the slope in Anybody Modeling System. But after a long time of research on the software, I find it hard to finish the Jump process without C3D file. So would you please lend me yours and I just use it to see how to add the C3D file. When I am able to add the C3D file successfully, I will do my own experiment and get my C3D file. In a word, I don not want to waste my time and I sincerely hope that you can lend yours to me. My e-mail is Thank You!


Hi @Lyd

Are you asking @Nickel_Lee about him sharing his C3D file?

Otherwise, Carnegie Mellon University has an open database of MoCap recordings which you may be able to use. The only downside is, that they often lack force plates and that the marker protocol may be very different.

Best wishes,


I want to ask if you have a link to this open database? As I am in the early stages and I am studying how to import the ground model, that is, the jumping platform into the software. I once imported a jumping platform made in solidworks, into the software, but it is not solid and the segment can pass through it. I am wondering if this problem can be solved by the C3D file? If not, how can it be solved? Thank you!
Best wishes,


Hi @Lyd

The link is:

I once imported a jumping platform made in solidworks, into the software, but it is not solid and the segment can pass through it

AnyBody is an Inverse Dynamics software. So you have to specify the motion, and the software will calculate the forces for you. So if you specify that the segments should pass through the platform they will, of course, do so.

What a C3D file contains is data from a MoCap experiment. So it can help provide you with a plausible motion. That is one where the segments don’t pass through your jumping platform. You can also specify the motion yourself but it is often difficult to get right.

You also need to know the boundary forces between the human the jumping platform. That can either come from measurements (i.e. you instrument the platform with force transducers) or you could use a technique to estimate the forces. That is called ground reaction force prediction, and it allows you to use c3d files without force plate measurements.


@Lyd If you have more questions please create a new thread since these questions are kind of unrelated to the original topic.


Thank you very much for your careful reply! And I will create a new thread if I have some further problems.

Best Wishes,