Using Thoracic.main.any to construct spinal curvature in scoliosis

When aiming to create an initial model that exhibits a curvature, could you specify which sections of the code within the model need to be manipulated and how they should be adjusted to achieve this effect? A comprehensive explanation would be greatly appreciated.

Dear Jack,

Thoracic.Main is a good example to start with the new thoracic model. There in the main file, you can specify the range of motion of flexion-extension, lateral bending, and axial rotation. You simply input the whole spine angle and the model uses some rhythms to drive the whole spine.

Regarding Spine Rhythm: In the new thoracic model, there are 12 thoracic vertebrae. As default, we have spherical joints between the vertebrae, which leaves 36DOF to drive (3DOF for each joint). Basically, rhythms are the drivers for these needed DOFs.

If you want to create a spine posture from a dataset, then you need to remove the rhythms and make drivers for all these DOFs.

But basically, you need to adjust the spine angles in order to use the model, and the ribcage will find its posture based on the spine posture and that is the beauty of it :slight_smile:
I hope it helps.
Hamed

Dear Hamed,
Now that I can adjust the rhythm, how do I adjust the initial state of the relative positions of the spinal vertebrae in the kinematics dynamics?
If you can provide more detailed help, it will bring me a great help! :wave:
Jack

We've found how to adjust rhythm's code to build scoliosis.We change the value of 'DriverPos' to adjust the initial state of relative positions of the spinal vertebrae.

1 Like

Dear Jack,
How to adjust rhythm's code to build scoliosis?I've been working on that too.Change the value of 'DriverPos' in which place.

I would appreciate it if you could reply!

To zyax:
First of all, I would like to say that I can't disclose too many details, I can only provide an idea that can help you, because the main work of rhythm construction is done by my teacher, and our research group has no plan to open source our model.
In order to study scoliosis, you need to first have a split thoracic model. In order to restrict the distribution of the Angle of motion of the vertebral body, we need to use the motor rhythm.
In the model of our research group, my teacher created a file called JointsSpine.any, which integrated the rhythms of all vertebral bodies into a big matrix named Coef. There are three Coef matrices, which constrain lateral bending, forward bending, backward extension, and axial rotation of the vertebral body. Accordingly, at the bottom of each Coef matrix there is a DriverPos variable which can set the value of the jointlist variable according to the equation: coef*jointlist +const = DriverPos, which can also modify the initial position of the spine in the analysis process.
In the sample provided by AMMR you can find the TOS Model. Open the following path in the Model tree for this model: Main\Model\BodyModel\Trunk\Joints\Cervical\Flexion or LateralBending or Rotation. To locate in AnyScript, you will open a similar "JointsCervical.any" file. In this file you will find that the logic of the code is very close to what I said.
Similarly, you can open the Lumber folder under Joints. Within this, you will find a class called SpineRhythmDrv, which defines the motor restraint of the lumbar spine.
There have been a number of studies on thoracic movement rhythms and movement rhythms in patients with scoliosis, which can be found at ScienceDirect.com.
I hope my answer can help you, it is not an easy job, but I wish you can push forward the research work smoothly, and I am very glad to know the progress and breakthrough of your work!
Yours Sincerely, jack

Dear zyax,

To make a scoliosis model, one way is to exclude the spine rhythms. Then make a new rotational measure between the consecutive vertebrae (you can also use intervertebral joints) and put new drivers on them. In this way, you can drive all the the intervertebral angles and make scoliotic spine postures.

You can also exclude the rhythms using MechObjectExclude in your study, and then add the new drivers. You just need to be careful when you remove the rhythms, each intervertebral joint needs 3DOF driver.

Thanks to Jack for the suggestion :slight_smile: . You can also modify the rhythm coefficients as Jack said :slight_smile: But I think the excluding them is an easier way in most of the applications.

Dear Hamed,
Is there any good way to learn to write drivers?I found that after reading the tutorial on the official website, I still felt very unfamiliar with this software.
Besides,thanks to Jack for the suggestion.