SIMM (Software for Interactive Muskuloskeletal Modeling) is a powerful tool kit that facilitates the modeling, animation and analysis of 3D musculoskeletal systems. In SIMM, a musculoskeletal model consists of representations of bones, muscles, ligaments, and other structures. Muscles span the joints and develop force, thus generating moments about the joints. SIMM enables an analysis of a musculoskeletal model by calculating the joint moments that each muscle can generate at any body position. By manipulating a model using the graphical interface, the customer can quickly explore the effects of changing musculoskeletal geometry and other model parameters on the muscle forces and joint moments. SIMM is now used by hundreds of biomechanics researchers to create computer models of musculoskeletal structures and to simulate movements such as walking, cycling, running, and stair climbing.
In SIMM, a musculoskeletal model consists of a set of body segments that are connected by joints. The joints are modeled using detailed, accurate kinematic functions, or as simple pin or ball-and-socket joints. The model includes muscle-tendon actuators that span the joints and develop force, thus generating moments about the joints.
Using SIMM, models of the lower and upper extremities were developed to examine the biomechanical consequences of surgical procedures including tendon surgeries, osteotomies and total joint replacements. A lower-extremity model was used to estimate muscle-tendon lengths, velocities, moment arms, and induced accelerations during normal and pathologic gait. Studies have been conducted to investigate the treatment of individuals with spinal cord injury, to analyze joint mechanics in subjects with patellofemoral pain, to calculate forces at the knee during running and cutting, and to investigate causes of abnormal gait. SIMM has helped bring simulation to biologists who have created computational models of the frog, tyrannosaur, cockroach, and other animals.
Leading sports performance and clinical gait analysis centers use SIMM to visualize the relationships between external forces, muscle activity and the resulting body motion. Using SIMM, our movement analysis customers display 3D animations and help determine ways to improve an individual's performance.
- SIMM Viewer: Allows colleagues and students who do not have a SIMM license to view SIMM data. View and animate models, as well as plot muscle properties and motion variables.
- Motion Analysis File Importer: SIMM can import .htr files from a Motion Analysis system for playback and detailed musculoskeletal analysis. It can also import data in real-time and animate a 3D model while the data is being captured.
- Muscle Wrapping: You can interactively define spheres, ellipsoids, and cylinders for muscle-tendon actuators to wrap over. SIMM automatically calculates muscle paths over these wrapping objects. Muscle lengths, forces, and moment arms are all calculated correctly for the new, wrapped muscle.
- Bone Deformations: A powerful new tool allows you to warp bones into new shapes to model various bony deformities. Deformations such as tibial torsion and femoral anteversion are straightforward to model and can be implemented with a range of severity of deformation.
- Model Scaling: A scaling utility is able to scale your existing model to match any size individual. Body segments (and corresponding joints kinematics) can be individually scaled by specifying X, Y, Z scale factors for each segment. Muscle paths are scaled with the segments, but muscle force-generating parameters are not scaled.
- TIFF/movie export: You can export a single image of your model, or an entire animation sequence to TIFF images that can then be combined into a movie file.
- Muscle display: Muscles are now drawn as smooth-shaded cylinders, making them look more realistic, especially in close-up views. You can also specify the display properties (e.g., color, shininess) of each muscle separately, if desired.
- Muscle point editing: The selecting and moving of muscle points has been made easier. A selection box in the model window helps you identify muscle points for selecting. There is also a new feature for picking a polygon on a bone, which is helpful for cases in which you want to attach the muscle point to the bone surface.
- Motion objects: SIMM has a new class of objects that you can use to improve the animation of your musculoskeletal models. Motion objects are polyhedra for which you can specify the position, orientation, size, and color in each frame of data in a motion file. They are similar to force vectors in earlier versions of SIMM, but now can consist of polyhedra of any shape and you can change more of their display properties in a motion file.
- Norm options: The utility program norm has several new options for processing polyhedron files. It can now fill in holes in polyhedra, subdivide edges, and has new options that improve its ability to find correct vertex normals for polyhedra that are not closed objects.
- GUI tools: Many new user interface elements make it easier to interact with a model and to change the display properties of the bones, muscles, and other model components.
- Musculo skeletal modeling
- Animation viewing of data in either real-time or post processing
- Provides immediate feedback to patients
Although SIMM helps formulate models of the musculoskeletal system and create dynamic simulations of movement, it provides little assistance with the computation of muscle excitations that produce coordinated movement and has limited tools for analyzing the results of dynamic simulations. These complementary capabilities are provided by OpenSim. Together, these two software systems offer biomechanics researchers unsurpassed capabilities for modeling and simulation of the musculoskeletal system.
OpenSim is an open-source software system that lets users create and analyze dynamic simulations of movement . It is being developed at Simbios, a NIH center at Stanford University for physics-based simulation of biological structures. The underlying software is written in ANSI C++, and the graphical user interface is written in Java. Version 1.0 was released on August 22, 2007. Since then, over 600 people have downloaded the software. It contains modules that scale a generic musculoskeletal model to fit a specific subject, fit the model to recorded marker data (inverse kinematics), perform inverse dynamics, and generate muscle-driven forward simulations from recorded gait data. Version 1.0 can import and export most SIMM models. It contains a muscle editor, model viewer, coordinate viewer, and plotting tool, but no other model editing tools (e.g., there is no joint editor, body editor, wrap editor, marker editor, deform editor, or constraint editor).
Because OpenSim can import and export SIMM models, users can easily take advantage of features in each package. They can import their SIMM models and motion data into OpenSim, perform residual reduction and computed muscle control analyses, and export the results back to SIMM. If users want to modify muscle properties and run additional simulations, they can do this in OpenSim. If they want to make other changes to the model, they should load their model into SIMM for editing, then re-import it into OpenSim.
The main benefits of OpenSim over SIMM are that it:
- has a more full-featured model scaling utility (e.g., can require that left and right sides be of equal size)
- has a more full-featured inverse kinematics utility (e.g., can explicitly specify some joint angles while using markers to track others)
- contains "residual reduction algorithm" to make recorded motion data more dynamically consistent with recorded ground reaction forces, resulting in more accurate inverse dynamics results
- can generate muscle-driven forward dynamic simulations that reproduce recorded gait data (using computed muscle control algorithm)
- can perform dynamic simulations without SD/FAST or a C compiler
- has more extensive analysis features for dynamic simulations
- is free
Some of the limitations of OpenSim compared to SIMM:
- contains fewer model editing tools
- importing motion data requires MATLAB (or SIMM) to process analog data, resample it at the video frequency, and synchronize it with the marker data
- the dynamics capabilities are limited (no closed loops, user-defined constraints, etc. when using the Simbody dynamics engine)
- has no user guide
- has no technical support