how to dispose the spine rythm


i wonder if someone has replaced the SpineRythm and the PelvisThoraxExtension by predefined 7 intervertebral flexion/extension angles?

How must this be written in the anysript syntax? I am only interested in the sagittal rotations. All non-sagittal rotations should be zero.

I would like to have direct control of the intervertebral rotations rather than just vary the portions of the PelvisThoraxExtension angles.

Thanks in advance,


Hi Thomaz,

Please take a look in SpineFixationDevicedWithFDK example. The spine rhythm is removed and all joints are driven using FDK/explicitly prescribed. You can use similar approach and drive individual joints angles.

Best regards,

Hi Pavel,

thanks for the quick answer. Where do i find the SpineFixationDevicedWithFDK example?

Best regards,


“Applications\Examples\SpineFixationWithForceDepKinematics” application in the repository (v1.3+).


i could not figure out how to predetermine all single rotations between thorax and pelvis even with the FDK example. In Driver.any of the FDK example, the values are only an initial guess, AND they are defined as a fraction of the PelvisThoraxExtension.
Due to some special reason i would like to define all single rotations (T12L1, L12, L23, L34, L45, L5Sacrum, SacrumPelvis) explicitly. How can this be done?

What i tried as an alternative approach for simplification:

[li]I replaced the AnyRevoluteJoints to AnySphericalJoints between L1 and Pelvis with Axis=z, leaving T12L1 unchanged.[/li][li]I removed the SpineRythm.[/li][li]I inserted drivers between pelvis and L1, leaving T12L1 unchanged.[/li][li](additionally i had to comment 3 lines in the JointMomentMeasure in TrunkSelectedOutput.any)[/li][/ul]

This generates a problem:
The muscle activity is very different from the original model (especially for the transversus muscles) although i took care (and checked) to have exactly the same intervertebral rotations for each joint between thorax and pelvis.

Where might be the cause of these different muscle activities?



Hi Thomaz,

You probably do not get good kinematics or it essentially differs from the original one.

So what you need to do is:

  1. Remove spine rhythm drivers, thorax-pelvis drivers (if you want to define the curvature by individual angles).
  2. Prescribe your desired drivers to the spherical joints:
    JointsLumbar.T12L1Jnt, JointsLumbar.L1L2Jnt, … , JointsLumbar.L5SacrumJnt, JointsLumbar.SacrumPelvisJnt
  3. Make sure that kinematics looks good.


Just a small clarification:
So each individual driver will look like: DriverPos = {FlexExAngle,0,0}; or DriverVel = {FlexExVelocity,0,0};

I do not quite understand why the results can be different when i replace a spherical joint by a revolute joint as long as the rotations are the same.

But leaving aside that the DriverPos must be {0,0,FlexExAngle} and not {FlexExAngle,0,0}, your hint to keep the sperical joints helped. Now the results agree.

Thanks and a nice weekend,


It should just work, yes. Probably there is an error in the implementation. You mentioned Z axis, but please also take a look at: refJoints.T12L1Jnt.Orientation.Type

When I suggested to use the first component - I had Orientation.Type = RotAxesAngles. I am sorry for not noticing this small difference before.

Best regards and good weekend,