OpenSim Change Log
This document catalogs the changes in OpenSim since release 1.0. It describes new features, enhancements to documentation, and major bug fixes. For a more completed and detailed listing of bug fixes, consult the OpenSim Bug Report Page.
1. Added the ability to set the bounds on controls for actuators in Static Optimization
2. Added an option to show the list of available object types and their corresponding XML representation
1.: Included setup files to run Static Optimization on gait model
2.: Included setup files to run Joint Reaction analysis on gait model
1.: Enable JointReaction analysis to work on models with muscles.
2.: More robust error checking of Storage file headers
1. Added the ability to display Joints Parent and Child frames.
2. Added Constraints to the model tree in the Navigator Window.
3. Added the ability to enable/disable Forces and Constraints in the GUI with Undo/Redo support
4. Added ability to control the display preference, color and texture of individual bones and optionally add a transform.
5. Added a Preference to control the refresh rate (in ms.) when displaying results live while running tools.
6. Added a module to enable creating custom GUI for educational use in K-12.
7. Added the ability to set bounds on actuator activation when solving Static Optimization.
8. Added the ability to run forward tool using controls provided as a storage file (rather than xml).
1. Updated User's Guide
2. Updated Developer's Guide
1.: Windows 7 (64 bit) is supported out of the box (bugs 1224, 1352)
2.: Incorrect bounds on InverseDynamics analysis when creating setup files from GUI (bugs 1259, 1314)
3.: Can't turn off wrap surfaces in osim file (bug 1308)
4.: Create up-to-date states file while running CMC for recovery/troubleshooting (bugs 1304, 1305, 1164)
5.: Restore functionality to preview static pose while scaling (bug 1293)
6.: Enable PrescribedForce's to be added to the model (bug 1291, 1253)
7.: Saving scale and inverse kinematic setup files (bug 1150, 1152, 1244)
8.: Excitation editor min-max visualization inconsistent with cmc (bug 1189)
9.: Incorrect Schutte activation1 and 2 in example models (bug 1180)
10.: Extensions xml, .mot, .sto not automatically added in GUI (bug 1176)
11.: Additional default forces printed with API (bug 1151)
1. The Perturb application has been removed from the distribution.
1. Added the ability to display segment axes.
2. Added option to set default pose from GUI.
3. API: Now available components including BushingForce as well as a SpringGeneralizedForce.
1. Updated Developers' Guide and plugin example
1.: Can't interrupt running tasks. (Bug 1068)
2.: Crash previewing motion data files (Bug 1065)
3.: Distorted display of muscles wrapping around a sphere. (Bug 1140)
4.: Problem parsing xml elements that use no closing tag. (Bug 1124)
5.: Old model (before 1.8) can't be opened. (Bug 1110)
6.: Crash when restoring a muscle from GUI. (Bug 1069)
7.: Scale Tool does not preserve locking and clamping. (Bug 1045)
8.: Crash trying to change the type of a muscle point. (Bug 1041)
9.: Plotting quantities with identical column headers is problematic. (Bug 998)
1. Contact functionality has been integrated using two different contact models.
2. Ability to use more than 2 external forces in various tools (used to be up to 2). Forces are added programmatically.
3. Switch to an error-controlled and more robust RungeKutta-Merson- Integrator from SimTK.
4. The API to allow creating new Model Components particularly Actuators, Analyses and Controllers.
1. Full Doxygen documentation of the API classes included with the distribution
2. Release of the OpenSim Developers' Guide
3. Examples using the API to create models, run Optimization Studies, define Controllers and create new Muscle Models.
1. Model Gait2354 in the examples directory now has more realistic optimal fiber-length (.05).
2. Installer does not wipe out client PATH if more than 1000 char.
1. The Perturb application has some limitations: gravity perturbation is always off and the muscle perturbations are not being reset.
1. The ability to preview motion capture data from trc files and ground reaction forces and the ability to transform the data to match model assumptions.
3. Annotation Tool to annotate various objects in the 3D View.
1. RRA throws exception from GUI if no model adjustment was required. (bug 909)
2. Editing XML files from GUI requires user to lose focus before committing change. e.g. by using tab/enter (bug 908)
3. Display of segment axes based on the flag in the .osim file is implemented. (bug 577)
1. Excitation editor enhancements to show file name in title-bar and to limit control point movement to specified range.
1. Models with coordinate-coupler constraints work in various tools in the GUI. (bug 736)
2. Fix NullPointerException when animating motion produced by Forward Tool. (bug 715)
3. Coordinate motion type (rotational, translational) is sometimes incorrect(bug 721)
1. Exposing the API to build plugins for OpenSim and a GUI to allow loading plugins into the OpenSim application.
2. Update to SimTKCore 1.5.1 (as a result, support for SDFast is dropped):
. 2.1. Simbody support for constraints is included.
. 2.2. Simbody support for Welds is now included.
3. New model file format that's more easy to edit and maps to dynamics (old file formats are still readable).
4. New Marker-Editor to edit marker positions graphically.
5. The ability to do live plotting of residuals during RRA/CMC.
6. The ability to associate result files to a motion file and have them display together.
1. Templates for building plugins (for Analyses, Forces and Controllers) and an example.
2. Updates to User's Guide.
1. Filtering bug that caused incorrect magnitude for filtered signals with large number of samples or at high cut-off frequency. (bug 706)
2. Padding bug which caused evaluation of splines outside their defined domains while running tools. (bug 597)
3. Plotter always assumed 0. activation for muscles if activation was not specified. (bug 709)
1. Static Optimization tool to allow solving for muscle forces and activations directly from a motion frame.
2. Enhancements to the Excitation Editor.
. 1. OpenSim User's Guide first public release.
1. Function editing is now possible for kinematic constraint functions and for moving-muscle-point trajectory editing.
2. An Excitation Editor has been developed to allow for visual editing of muscle excitations and constraints of muscle excitations to enhance user control and give feed back on muscle excitations computed by the Computed Muscle Control algorithm.
1. Motion files that contained both muscle activations and ground reaction forces could not be played. (bug 597)
2. Application closes if model is closed while object is selected. (bug 575)
3. Perturb utility does not work with Simbody models. (bug 530)
4. Browsing for a directory in Simtrack disables further file selection throughout the application. (bug 529)
5. Import a Simbody based model without a ground segment crashes the application. (bug 493)
6. Motion is reversable while recording an AVI. (bug 583)
7. Camera dolly editor is fully funcitonal. (bug 584)
8. In the muscle editor, restoring a muscle that uses wrap objects causes OpenSim to crash. (bug 525)
9. When a muscle name is changed and then later restored, the navigator does not update to the restored name unless the muscle is the current muscle in the muscle editor. (bug 532)
10. If the muscle editor is set to a model and that model is renamed, the muscle editor will reset itself to the first muscle in the model. (bug 533)
11. SDFast based models that have constrained coordinates cause exception in the coordinate viewer. (bug 545)
12. In the plotter's advanced panel, numbers entered into the xmin and xmax fields are rounded to integers, which can cause incorrect plot values near the limits of a coordinate's range of motion. (bug 546)
13. Moment arms for some muscles exhibit glitches at the min/max of a coordinate's range of motion, due to limitations of the difference-based calculation method. (bug 547)
14. When a muscle wraps less than 2mm over a cylinder or sphere, the wrapping algorithm ignores the wrapping. (bug 548)
15. OpenSim crashes when loading a model that contains a joint with no DOFs, which includes all SD/FAST models. (bug 553)
16. When a muscle point is added to or deleted from a muscle that uses wrapping, the start and end points for the wrap instances are not updated accordingly, which can cause a crash. (bug 561)
17. The list of selected objects in the text bar is not updated when the name of one of them is changed. (bug 564)
1. Camera position can be specified when making movies. The interface for camera control is accessed by clicking the camera-dolly icon in a 3D view. The interface allows a series of camera positions and orientations to be specified at times throughout motion. As the motion is played, camera position and orientation are set by linearly interpolation between the specified values.
2. OpenSim models that use Simbody as the dynamics engine support joint locking. Models based on the SIMM kinematics engine or SDFast supported joint locking in release 1.0.
3. Plot Tool dialogs can be minimized making it possible to see more of the OpenSim workspace without having to close plots of results.
4. The “Reset” and “Set” buttons in the muscle editor have been replaced by “Restore current”, “Restore all”, “Backup current” and “Backup all”. Also, all of the muscles in a model are backed up when the model is loaded. Previously, the muscle editor backed up only one muscle, and only when the editor was set to that muscle.
5. The performance criterion used by the Computed Muscle Control Tool to resolve force sharing across muscles takes into account the force-length-velocity properties of the muscles. Previously, only maximum isometric force was considered.
6. A perturbation tool for computing muscle induced accelerations is available via the command-line. A setup file for the perturbation tool is included in the Gait2354_Simbody example (subject01_Setup_Perturb.xml). The perturbation tool can take hours to run to completion and is not yet available via the OpenSim graphical user interface.
1. Tutorials 1 and 2 have been updated.
2. A new tutorial, Tutorial 3, on inverse dynamics is available on the downloads page.
3. A step-by-step recipe for building OpenSim models that use SDFast as the underlying dynamics engine is available on the dowloads page.
1. All dialogs use the OpenSim icon. Previously, some dialogs used the Java icon. (bugs 428, 485)
2. A number of memory leaks have been fixed. Previously, repeated running of certain tools would use up enough memory that performance would be degraded and/or cause OpenSim to crash. (bug 499)
3. Failure to load an OpenSim model that uses Simbody as the dynamics engine is handled more gracefully; a message explaining the reason for the failure is displayed. Previously, OpenSim would often crash. Weld joints and general, user-defined constraints are not yet support by Simbody, and their use in a model was often the cause of crash.
4. Muscle lengths and moment arms in SDFast-based models are computed correctly for muscles that span joints that have constrained degrees of freedom. Previously, constrained coordinates were not always being updated properly for SDFast-based models.(bugs 509, 510)
5. Illegal characters in the names of model components, such as in muscle names, are replaced with legal characters. Specifically, XML meta characters like ‘&’ are replaced with underscores. (bug 505)
6. The plotter doesn’t allow the Add button to be pressed for a curve unless all necessary inputs have been specified. (bugs 474, 487)
7. Clamped variables can be summed in the plotter. This feature is valuable when, for example, you want to get the maximum positive muscular moment generated by muscles about a joint. The way to do this is to clamp all muscle moments to be between 0 and some large number, and then sum the curves. (bug 508)
8. Plots are generated over the full range of data. Previously, a small portion of the data at the positive end of the range was not being displayed. (bug 503)
9. In the plotter selection dialog, muscles can be filtered by muscle group. (bug 451)
10. Motion files (*.mot) with a single column of data and no time column are handled properly. (bug 504)
11. The color of a body can be changed when the body is selected or not selected. Previously, the color of a body could only be changed when it was not selected. (bug 447, 465)
12. Deletion of models that are not current is handled properly. For example, the model drop-down box in the Toolbar is updated to display the new current model. (bug 464)
13. Poses and default poses for deleted models are cleaned up and handled properly. (bugs 455, 457)
14. Canceling when specifying an output file for video creation works properly. Previously, a Java exception was being thrown.(bug 466)
15. Error checking when exporting models is more comprehensive. (bugs 506, 507)
16. Missing sections in inverse kinematics setup files are created by the IK Tool. (bug 492, 498)
17. Entries in the preferences dialog are accepted without having to change focus (e.g, without having to hit return or tab). (bug 460)
18. Ellipsoid wrap objects are handled properly when computing muscle length. (bug 452)
19. New muscle points are inserted in the correct position in the .osim file. (bug 450)
20. Text fields and buttons in the muscle editor are inactive until a model is loaded.
21. When a new muscle attachment point is created in a model that is based on a SimbodyEngine, the point is placed at unique location. Previously, the new point was placed at the same location as an adjacent point. (bug 514)
22. The z component of the velocity of moving muscle points is computed correctly. Previously, the z component of the velocity was not being multiplied by the generalized speed. (bug 518)
23. Querrying the velocity of a moving muscle point in OpenSim models that are based on the SIMM Kinematics Engine no longer causes an error. The SIMM Kinematics Engine considers only position, not velocity. Now, instead of causing an error, the velocities are assigned to be 0.0. (bug 517)
24. The transformPosition() method in the SimbodyEngine returns the correct value when the from body and the to body are the same. Previously, in this situation, the position was not being assigned at all. (bug 514)
25. The forward tool can be run without external loads, even when corrective springs are attached. Previously, OpenSim was crashing when it tried to add the corrective springs with no external loads because there were no bodies specified for the corrective springs. (bug 519)
26. Start and end muscle points for wrap objects can be edited. (bug 521)
27. The field of view of a 3D view can be reset when no geometry is visible. Previously, an exception was be thrown. (bug 515)
28. Large arrays are written to XML files faster. (bug 511)