------------------------------------------------------------------------ SIMMChangeLog.txt - changes to SIMM for Windows(R) since version 1.0 ------------------------------------------------------------------------ -------------------------------- Changes in version 4.2.1 -------------------------------- - SIMM can now import and export model archives, which are compressed, encrypted archive files containing an entire musculoskeletal model (joint file, muscle file, motion files, and all bone files). These files are meant to be used in conjunction with SIMM Viewer, but are also useful for saving models and sharing them with fellow SIMM users. - A bug has been fixed in the Motion Module which caused the force plate forces to be computed incorrectly if the analog channels are in a non-standard order in the ANB/ANC/C3D file. - A bug has been fixed in the placements of the lumbar vertebrae bones in dynamic.jnt. - Support has been added for Kyowa-Dengyo force plates in C3D files. - The Motion Module has been enhanced to better support the tracking of marker data with models that have closed loops. - The process of loading very large models has been sped up. -------------------------------- Changes in version 4.2 -------------------------------- - Support has been added for using SIMM on computers with multiple screens. See the ReleaseNotes file for details on using this new feature. - Norm has been enhanced to support the import of Wavefront .obj files. - The Motion Module has been enhanced to support Kyowa Dengyo 8-channel force plates. - The C3D import utility in the Motion Module has been enhanced to better determine which POINT fields are markers and which are "other" data, and to handle duplicate marker names. - The latest drivers for the Keylok and Sentinel SuperPro hardware keys (with Windows Vista support) have been added. - A bug has been fixed which caused SIMM to improperly handle closed loops that contained unclamped gencoords. - A bug has been fixed which caused SIMM to crash when reading very large ANB files. -------------------------------- Changes in version 4.1.1 -------------------------------- - A new output option, joint torques w/corrections, has been added to the Dynamics Tool. This option provides a second method of calculating torques during an inverse dynamics simulation. It uses a PD controller to find corrective torques that will keep the simulation following the input motion. For more details on the algorithm and how to use it, read the file InverseDynamics.pdf in the Simm\Documentation folder. - Added EMG mappings to importVariables.txt for the muscles in mocap3D.msl. This enables you to use EMG signals to change the colors of the 3D muscles when importing motions onto the 3D Mocap Model (mocap3D.jnt). - Changed the interpretation of the length and width force plate parameters in forcepla.cal, to match the change made in EVaRT in version 4.2. - Fixed a bug that was preventing SIMM from properly processing force data from type 1 force plates in a C3D file. - Fixed a bug in the updating of the Muscle Editor window when various events occurred (e.g., changing the selected muscle, adding a model). - Fixed a bug in the Plot Maker so that the current state of the model is properly restored after a "muscle orientation" plotting option is executed. - Fixed a bug that was crashing SIMM when a muscle was deleted in the Muscle Editor. -------------------------------- Changes in version 4.1 -------------------------------- - A new output option, optimized muscle activations, has been added to the Dynamics Tool. This option, for use in inverse dynamics simulations, uses a least-squares algorithm to solve for the individual muscle activations/forces that sum to the calculated joint torques. - A new Y variable, moment arm (numerical) has been added to the Plot Maker. This option uses a numerical method (dl/dtheta) to calculate muscle moment arms. It is useful for models that have constraint objects or certain configurations of closed loops, so that a change in one gencoord results in changes in one or more other gencoords. In the absence of such constraints, this method calculates moment arms identical to the existing method. - Added support for reading MVC values for EMG signals from personal.dat when reading ANB/ANC or C3D files. MVC values can still be specified in importVariables.txt, but it is often easier to specify them in personal.dat because they are subject-specific. - Two options have been added to the dialog box for opening the Mocap Model to allow more control over the scaling of mass and inertia parameters. These options have no effect for mocap.jnt and other models that lack mass parameters, but they are used when loading dynamic.jnt. The "mass" field allows you to specify the total mass of the model after it has been scaled to fit the subject. If "preserve mass distribution" is off, then each body segment's mass is scaled proportionally with its size. Once this has been done for each segment, all the segments' mass parameters are scaled up or down by a single percentage so that the total mass of the model equals the mass entered into the "mass" field. If "preserve mass distribution" is on, then each segment's mass parameters are not scaled with their change in size. However, as above, every segment's mass parameters are scaled up or down by a single percentage so that the total mass of the model equals the mass entered into the "mass" field. - The "pre-solve root segment" option has been removed from the dialog boxes for opening the Mocap Model and for loading a motion file. This option is now set automatically by SIMM as it is needed for creating the scaled model and solving motions. - Fixed a bug in the Dynamics Tool that was causing the smoothing option for external forces be ignored when generating the input file for a simulation. - In version 4.0.1, the optimal_fiber_length and resting_tendon_length parameters for semimem were incorrectly changed in mocap.jnt and dynamic.jnt. They have now been restored to their correct values. - Fixed a bug in the Joint Editor that would cause SIMM to crash when restoring a joint after adding a point to a kinematic function. - Fixed a bug in the Dynamics Tool that would cause SIMM to crash when initializing a simulation for a model that was missing some necessary muscle parameters. - Fixed a bug that would cause SIMM to crash when saving dynamics for models with fewer than three body segments. - Fixed a bug in the Dynamics Tool that would cause SIMM to crash when running a simulation whose output is fewer than three frames of motion. - Modified the code that reads the force plate offset values from forcepla.cal so that the Z value can be specified as positive or negative. - Fixed a bug in SIMM's use of the Windows function 'xcopy' that prevented SIMM from overwriting existing files when saving dynamics. -------------------------------- Changes in version 4.0.2 -------------------------------- - A new Mocap Model has been developed for use by the Motion Module and C3D Module. Several changes were made to the model so that the joint angles calculated for it (to fit 3D marker data) match more closely the joint angles calculated by OrthoTrak. The biggest change between the new model and the old is that the reference frame for the pelvis has been rotated 13 degrees. In the "normal" standing position, the pelvis is rotated forward 13 degrees (and thus lumbar_pitch, hip_flexion_r, and hip_flexion_l are also 13 degrees). In addition, several small changes were made to segment scale factors and marker weights. The new model uses the default name of mocap.jnt. The old model is available as mocapOld.jnt. A third model, mocapOT.jnt, has been added for an even more direct comparison between SIMM and OrthoTrak. This model is based on the new mocap.jnt, but has 3-degree-of-freedom knee and ankle models, like the joint models that OrthoTrak uses. - The arrow keys can now be used in the model window to animate the model according to a motion, as well as scroll through the array of motions to choose the "active" one. The up and down arrow keys change the "active" motion, and the left/right arrow keys decrement/increment the display of the active motion by one frame. In addition, information about the currently displayed motion and frame number are displayed in the bottom left corner of the model window. This display can be turned off by setting DISPLAY_MOTION_INFO to "off" in Resources\preferences. - Two output options were added to the Dynamics Tool interface: fiber lengths and fiber velocities. - Several bugs were fixed in the Wrap Editor, Constraint Editor, and Segment Editor interfaces that were either causing number boxes to be grayed out or were preventing numbers from being entered into them. - A bug was fixed in the Segment Editor that was causing SIMM to crash when the drawmode of a body segment with no bones was changed. - A bug was fixed in the Segment Editor that was causing SIMM to crash when saving or restoring a body segment that had a spring floor. - A bug was fixed that was causing SIMM to hang when the "save dynamics" command needed to overwrite existing files (Windows XP only). - A bug was fixed in the Motion Module that was preventing data in XLS files from being properly synchronized with TRC data (because the "starting frame" parameter was not being read from the XLS file). - A bug was fixed in the Plot Viewer that was preventing the "show events" radio button from being updated properly when a plot was selected. - A bug was fixed in the Dynamics Tool that would cause SIMM to crash when the following events were performed: 1. initialize the simulation for a particular model 2. add or delete a motion in the same model 3. reset the simulation without running it. - A bug was fixed in the Motion Module that was causing a gencoord to be set to its default value when it was locked, rather than its current value. - Several bugs were fixed in scalemodel that were resulting in negative masses, inertias, wrap object sizes, and constraint object sizes when negative scale factors were entered. - The KeyLok dongle library within SIMM was updated to fix a bug which was preventing non-administrator users from running SIMM after installing SIMM as administrator (Windows NT and 2000 only). - A bug was fixed in the Motion Module that was preventing the fingers of the left hand from being scaled properly when the "full" hand model was used. - A bug was fixed in the update of the muscle pop-up menus which was creating incorrect menu items when a muscle was added to a model which previously had none. - A bug was fixed that was preventing the Motion Module Demo from running if a model was already loaded into SIMM. -------------------------------- Changes in version 4.0.1 -------------------------------- - Fixed several bugs in the initialization of a DLL simulation in the Dynamics Tool: * all closed-loop models were being incorrectly identified as inconsistent with the DLL, thus preventing the simulation from running. * the index of the muscle model for each muscle was not being properly passed to the DLL. * spring points were not being properly passed to the DLL. * spring forces were not being properly returned from the DLL. - When saving dynamics, SIMM looks for unconstrained gencoords by finding DOFs with a 2-point, slope=1 function of the gencoord. SIMM was failing to check that these functions also passed through zero, resulting in the generation of an incorrrect dynamics model if one of them did not. This case now results in an error when attempting to save dynamics. - Fixed a bug which caused SIMM to crash when deleting a model, if the Plot Maker had its X or Y variable set to a motion curve in one of that model's motions. - Fixed a bug which was generating spurious warning messages about constraints and loops not being properly enforced when joint parameters were modified. - Fixed a bug which caused SIMM to crash in the Dynamics Tool when resetting and then restarting a simulation that included one or more wrap objects. - Fixed a large memory leak in the "norm" function in the Bone Editor. - Spring points are now drawn with lines connecting them to the body segment to which they are attached. - Fixed a bug which occasionally caused SIMM to crash when deleting a model that included a spring floor and spring points. - Fixed a bug which was preventing spring points from being drawn with a radius of min_thickness. Instead they were always being drawn with radius 0.002. - The sizes of the mass spheres in the Segment Editor are now scaled to the size of the model. - Fixed a memory leak in the display of body segment inertia vectors - The optimal fiber length and resting tendon length parameters for semimem_l were specified incorrectly in mocap.jnt and forward.jnt -------------------------------- Changes in version 4.0 -------------------------------- This section describes only the changes to SIMM between versions 4.0 beta2 and 4.0. For a complete list of the changes between 3.3.1 (the last release version) and 4.0, scroll down to "Changes in version 4.0 (alpha 1)" and read those changes and all later ones. - Enhanced editable text and number fields to support strings that are longer than the width of the display box. They can now be edited by scrolling left and right within the string. - Fixed a bug which caused SIMM to crash when right-clicking in a model window that contained 3D muscle surfaces displayed in wireframe mode. - Fixed a bug in the Muscle Editor related to updating the tool window when a default muscle was created. - Fixed a bug in the Segment Editor that was preventing force mattes, contact objects, and spring floors from being saved/restored along with the segment's other parameters. - Fixed a bug in the Constraint Editor which was giving false warnings about unsatisfied constraints while changing joint kinematics, when in fact the model has no constraint objects. - Fixed a bug in the save/restore mechanism in the Deform Editor. - Moved some of the buttons in the Bone Editor to group them by function. - Removed the "show normals" and "show axes" checkboxes from the Bone Editor since that functionality is now available in the Segment Editor. - Fixed a bug in the Bone Editor which was causing an incorrect display of the bone when vertices were moved interactively. - Fixed a bug in the Muscle Editor which was causing SIMM to crash when the last muscle in the model was deleted. - Fixed a bug in the Muscle Editor which was causing SIMM to crash when the first muscle was created in the model. - Fixed a bug in "save dynamics" which was printing a false error message when certain types of planar joints were converted to SD/FAST joints. - Support was added for including spaces in all file/path names (for force mattes, contact objects, spring floors, etc.). - Dynamics Tool: gencoord torques in input files are now smoothed by the same parameter as external forces, when initializing a dynamic simulation. - Fixed several bugs in the Dynamics Tool which were causing events to be lost from motions as they were input to and output from dynamic simulations. - Fixed a bug in the Dynamics Tool which was preventing input motion files to be loaded properly when doing forward dynamics (i.e., when no input motion was chosen). - Fixed a bug which would occasionally crash SIMM when muscles were deleted from a model, and the model contained motions with excitation data for the deleted muscles. - Fixed a bug so that motion curve menus are updated properly when muscles are added or deleted. -------------------------------- Changes in version 4.0 (beta 2) -------------------------------- - Fixed a bug in the joint definitions of the left thumb in mocap.jnt and leftArm.jnt. - Moved the radius and ulna markers in mocap.jnt, rightArm.jnt, and leftArm.jnt so that they are stored in the proper reference frames. - Updated all mocap models to include proper htr_* definitions so that the skeletons will display properly in EVaRT. - Fixed a bug in the Muscle Editor so you can now create a new muscle if the model does not have any to begin with. - Fixed a bug in the Motion Editor so the model display updates when values are typed into the crop start and end fields. - Fixed a bug in the Muscle Editor which was crashing SIMM occasionally when muscle properties were plotted. - Fixed a bug in the Dynamics Tool to enable it to load a DLL of a closed-loop model. - Fixed a bug in the Plot Maker so that the x-variable and y-variable labels are updated properly when motion curves are chosen for them. - Changed the behavior of the Motion Editor to make the user confirm deletion of a motion. - Fixed a bug in the Plot Maker which was improperly displaying events in plot windows when a motion curve was plotted against another motion curve. - Fixed a bug in the Deform Editor which was causing problems with the window display when "save all" was selected. - Fixed a bug in the Segment Editor which caused norm to improperly modify a bone's bounding box and display properties when the bone contained more than one polyhedron. -------------------------------- Changes in version 4.0 (beta 1) -------------------------------- - Added the Motion Editor tool for cropping and deleting motions. - The Dynamics Tool has been renamed FIT (Forward and Inverse Dynamics Tool) and has been fully implemented. - The ability to plot any motion curve versus any other motion curve has been added to the Plot Maker. - Fixed several bugs in the Segment Editor related to adding spring points and changing their properties. - Enhanced the mass and inertia display in the Segment Editor to properly display very small numbers. - Fixed an inconsistency in the way the events are read from and written to motion files. - Fixed a bug which caused SIMM to crash when reading very large numbers from input files. - Fixed a bug which prevented SIMM from deleting solved motions when no frames of the motion were solved properly. - Fixed a bug which caused SIMM to improperly scale body segments with zero mass or inertia. -------------------------------- Changes in version 4.0 (alpha 4) -------------------------------- - Support has been added to the Motion Module for reading floating point numbers from ANC files. - Several bugs were fixed that were causing SIMM to crash when a TRC file contained missing or extra data. - A bug was fixed in the center of pressure calculation for Kistler force plates. - A bug was fixed in the Motion Module that was preventing it from properly reading C3D files that did not start at frame 1. - Several bugs were fixed in the Segment Editor graphical interface, most having to do with updating the window contents when parameters were changed. - Several bugs were fixed in the Muscle Editor graphical interface, most having to do with muscle parameters inheriting and disinheriting from the default muscle. - Fixed a bug preventing SIMM from reading material definitions from a joint file in order to override the built-in default materials. - Fixed a bug preventing the Motion Module Demo from working. - Fixed a bug in the Motion Module's writing of the 'time' column in a motion file: the time values did not match the time range specified in the header. -------------------------------- Changes in version 4.0 (alpha 3) -------------------------------- - The Bone Editor has been added to SIMM. This tool allows you to translate, rotate, and scale the bones within their reference frames, as well as move them to different body segments. You can also edit the vertices and polygons that comprise the bones. There are also boolean operations available so you can add and subtract bone surfaces. In this alpha3 release of SIMM 4.0, some of the Bone Editor functions are not fully implemented. - Fixed a bug in the Segment Editor which caused SIMM to enter an infinite loop if a bad filename was entered into the force matte filename field. - Fixed a bug which was preventing the checkboxes in the Plot Maker from being displayed. - Fixed a bug in the Marker Editor which caused the state of the "global visible" checkbox to be incorrect when the "restore" button pressed. - Fixed a bug in the C3D Module which was preventing SIMM from reading certain C3D files whose data fields did not start with frame 1. - Improved the TRC and C3D import functions so that "other" data (data in the 3D marker fields that is not marker data) is not checked when looking to see if a frame of data contains all the required markers. - Added support for splining and smoothing suffixes (e.g., "_gcv" and "_gcv_10") on the ends of column names in motion files. -------------------------------- Changes in version 4.0 (alpha 2) -------------------------------- - Changed the password mechanism. SIMM 4.0a2 and later versions will require a new password in order to run. - Added an optional module that allows for trial use of the Dynamics Pipeline. When activated, the module allows the user to save the dynamics of any model, and run simulations (without access to the source code) for a time period determined by the SIMM password. - Fixed several bugs in the Muscle Editor related to updating the graphical interface when muscle properties are changed. - Fixed a bug which prevented the muscle excitation format from being written to the muscle file. -------------------------------- Changes in version 4.0 (alpha 1) -------------------------------- - Added the Segment Editor. This tool allows you to view and change the mass, mass center, and inertia parameters for the body segments. It also allows you to turn on/off the display of the segment's reference frame and the vertex normals of the segment's bones. - Enhanced the Muscle Editor to provide access to every muscle parameter, including the dynamic parameters, force-length curves, and excitation curves. In addition, every parameter can be "made unique" or linked to the default muscle. Also, muscles can be added or deleted. - Added the field "visible yes/no" to a gencoord definition in a joint file so that the display of gencoord sliders in the Model Viewer can be specified when the model is loaded. - Fixed a bug that prevented default values of gencoords from being written to an output joint file unless the input joint file also had default values defined in the gencoord definitions. - Fixed a bug in the Motion Module which incorrectly processed analog data when the analog data frequency was not a multiple of the video data frequency. - Added support in the Motion Module for alternative critical markers on the wrist and the pelvis. For example, instead of using R.Wrist.Lateral and R.Wrist.Medial, which go on the top and bottom of the wrist, respectively, it is now possible to define R.Wrist.Front and R.Wrist.Back, which go on the sides of the wrist (on the radius and ulna, respectively). Also, on the pelvis, R.PSIS and L.PSIS can be used instead of the sacral marker. See MotionModuleMarkers.pdf for more details on using these new critical markers. -------------------------------- Changes in version 3.3.1 -------------------------------- - Added support for reading math expressions from joint and muscle files. These expressions, which must be enclosed in curly braces, can contain any number of terms, as well as +, -, *, /, and parentheses. Here is an example using #defines: #define PARAM1 10.0 #define PARAM2 {PARAM1 * 2.0 + 3.5} #define PARAM3 {(PARAM1 + PARAM2) / 4.0} - Added "tendon length" to list of available Y variables for plotting of muscle properties. - Fixed a bug which allowed wrap objects and constraint objects to be moved while invisible. - Fixed a bug in the handling of translational gencoords which went outside their defined range of motion. - Fixed a bug which occasionally caused fixed markers to become unfixed when other markers were deleted from the model. - Fixed a number of bugs which caused SIMM to crash when reading C3D files that contained improperly defined parameters. Whenever possible, SIMM now recovers from these C3D errors and prints warning messages to the screen. - Improved the organization of data under the "motion curves" button in the Plot Maker. - Fixed a bug which prevented SIMM from calculating forces for muscles with a resting tendon length of zero. - When gencoord values are saved/restored in the Model Viewer, their locked and clamped states are now saved/restored as well. - Improved the error messages when attempting to "save dynamics" and some body segments have undefined masses or inertias. -------------------------------- Changes in version 3.3 -------------------------------- - The Motion Module has been enhanced to support the reading of C3D files in addition to TRB/TRC files. - Fixed a bug in the Motion Module so that it now correctly reads TRB/TRC files with marker coordinates specified in units other than millimeters. - Fixed a bug in the muscle/cylinder wrapping algorithm. The code now finds better tangent points in cases in which the muscle line forms an acute angle with the axis of the cylinder. - Fixed a bug which caused SIMM to incorrectly read muscle names from a motion file when one name was contained in another (e.g., "gmed1" and "gmed10"). - Fixed a bug which caused SIMM to crash if there were more than several hundred columns of otherdata. - Added support for reading the direction of gravity (in the ground frame) from a joint file. This gravity vector is used by the Dynamics Pipeline when "saving dynamics." -------------------------------- Changes in version 3.2.3 -------------------------------- - Added support to joint files for specifying the tolerance used when solving motions from TRC files. - Added a mechanism to motion files to allow the user to turn on and off enforcement of loops and constraints during playback of a motion. This is helpful when playing back a motion which you know to satisfy all constraints because it saves unnecessary calculations. - Added support for force mattes, which are used by the Dynamics Pipeline to transform forces from the ground frame into body segment frames. - Motion names in motion files can now contain spaces. - Fixed a bug which caused moment arms to be calculated incorrectly for gencoords that are used only in translational DOFs. - Fixed several bugs in the Constraint Editor which were causing constraints to be checked at inappropriate times. - Fixed a bug in the Plot Maker which caused SIMM to hang when displaying plots with a Y range that is very close but not equal to zero. - Fixed a bug in the processing of ANC files which created an extraneous data column (the X component of a force vector) in motion files. - Added support for USB dongles. -------------------------------- Changes in version 3.2.2 -------------------------------- - Many new markers have been added to the Mocap Model, making it easier to put more markers on the mocap subject without having to edit the SIMM model. A list of all the markers in the model is in the new document Guide to Motion Module Markers. - Added the concept of "fixed" markers to SIMM. Fixed markers are optional markers whose offsets in the Mocap Model are not calculated by SIMM when a static trial is loaded. Rather, their offsets in the model file are used as is. Making a marker fixed is useful when it is on a small body segment or one that is at the end of a chain (e.g., the fingers and toes). In these cases solving for their offsets can be problematic. - The real-time Motion Module has been enhanced to give better error messages when there is a problem connecting EVaRT to SIMM. - Fixed the dof values for the translations (TX, TY, TZ) in the hip joint in the Mocap Model. These were incorrect in SIMM 3.2.1 (but correct in SIMM 3.2), when the pelvis model was changed to be more anatomically accurate. - Enhanced the scalemodel utility to scale inertia matrices with the model. The algorithm for doing this is described in README.txt in the scalemodel folder. - Fixed a bug which caused the motion slider in the Model Viewer to change values when a plot was made with that motion as the X-variable. - Fixed a bug in the Constraint Editor which was preventing constraint properties from being updated properly when several models were loaded in SIMM. - Fixed a bug which prevented spring points and constraint points from being displayed on the model if their segment of attachment contained no bones. - Several bugs were fixed in the Muscle Editor related to updating the GUI as muscle and wrap object properties were changed. - Fixed a bug in the Wrap Editor so that the muscle menus are properly updated when muscles are restored in the Muscle Editor. - Fixed a bug which caused SIMM to crash when repeatedly restoring the muscles in a model, if the muscles used wrap objects. - Motion events in a plot are now written to the plot file when a plot is saved. -------------------------------- Changes in version 3.2.1 -------------------------------- - The Motion Module has been enhanced to better model upper extremity motion (if additional arm markers are used). There are several parameters in the joint file that you can set to customize the complexity of the shoulder and elbow models. Also, the Motion Module will scan the static pose marker file for finger markers, and automatically add degrees of freedom to the hand models according to the locations of the markers. - Enhanced the Mocap Model (in Resources\mocap\mocap.jnt) in several ways. The pelvis was reshaped and reoriented to better match the regression equations (Bell et al, 1990) that the Motion Module and OrthoTrak use to locate the hip center from external markers. Almost all of the hip muscles still have the same length and moment arm behavior, however. Also, the shoulder model has been improved to include an ellipsoid constraint between the thorax and the scapula. The default shoulder model does not include scapula motion, but it can be activated by setting a parameter in the joint file. Lastly, all of the degrees of freedom in the fingers have been added to the hand model, though they are activated only if the relevant finger markers are present in the static pose TRC file. - When loading joint files, SIMM nows checks for duplicate names when reading definitions of segments, joints, gencoords, and materials, and prints an error if duplicates are encountered. - Added a "loop tolerance" variable to the Gencoord Editor so that you can control the accuracy with which SIMM maintains loop constraints. - Fixed a bug in norm which caused it to crash when using the option "-tx mid" - Fixed a bug in SIMM which caused it to improperly read plot files if one of the x-variable names started with a number instead of a letter. - Fixed a bug which caused SIMM to crash when reading a muscle file if the file contained more than ten dynamic muscle parameters. - Fixed a bug which caused SIMM to improperly "save dynamics" for a model that had muscles attached to the ground segment (whether or not that segment was named "ground"). - Fixed several bugs in the Deform Editor which were preventing some of the GUI elements from working properly. - Fixed a memory leak in the muscle wrapping code which caused SIMM to use more and more memory as wrapping was calculated. - Fixed a memory leak in the Wrap Editor save/restore functions. - Fixed a bug in norm which caused it to crash when no output file name was specified on the command line. - Fixed a bug which caused SIMM to crash while reading muscle files if a default muscle was defined after a regular muscle. - Fixed a bug which caused SIMM to crash when "saving dynamics" to a very long path name. - Fixed several bugs in the Constraint Editor related some of the GUI elements, and the display of the constraints. -------------------------------- Changes in version 3.2 -------------------------------- - Enhanced the Mocap Model (in Resources\mocap\mocap.jnt) to optionally allow varus/valgus knee motion, force parameters for the lower extremity muscles, and increased range of motion of the arms. See the comments at the top of mocap.jnt for a description of each enhancement and instructions for activating it. Also changed the definition of knee flexion so that positive angles now indicate flexion, as in OrthoTrak. - Added the Constraint Editor tool. This tool allows you to specify kinematic constraints that may be too complex to model with a traditional joint. A constraint is specified by a geometric primitive (sphere, ellipsoid, cylinder, plane) and one or more points. The points are constrained to remain on the surface of the primitive. For example, in the shoulder you can constrain the scapula to remain in contact with the ribcage by defining a constraint ellipsoid that models the ribcage, and defining several points on the interior side of the scapula. See the SIMM User Guide for more details on how to use this tool. - Enhanced muscle wrapping to allow a muscle to wrap over more than one wrap object. See the Muscle Editor and Wrap Editor sections of the SIMM manual for more details. - Added support for specifying units for a musculoskeletal model. You can now specify "force_units" and "length_units" in the joint file. These units are not used to convert any data values, they are only used for display in plots. - Fixed several bugs in the Motion Module that prevented Kistler force plate data from loading into SIMM. - Fixed several bugs in the Motion Module that caused XLS files to load incorrectly. - Added many more error and warning messages to the Motion Module, notifying the user of missing and extra markers, and missing and extra XLS data. - Enhanced SIMM and the Motion Module so that marker names can now contain spaces. To support this in SIMM joint files, tabs must now be used to mark the end of a marker name. - Fixed a bug in the Motion Module that caused an incorrect calculation of the hip joint location when ASIS->hip percentages were entered into personal.dat. Note: if no percentages were entered in the file, the hip calculation was correct. - Added a fourth muscle wrapping primitive: the torus. The torus is very useful as a pulley or tunnel for muscles. The torus object works best if the muscle path remains roughly perpendicular to the plane of the torus. - The wrapping behavior of the cylinder primitive was modified in two ways. For the purposes of calculating wrapping, the cyliner is no longer infinite in length- its length as specified in the Wrap Editor is now used to limit the extent of the wrapping. Also, the wrapping algorithm was changed slightly to make it less likely that the muscle path will 'jump' to the other side of the cylinder. - Fixed several bugs in the Wrap Editor that caused the window to not update properly when a wrap object was modified. - Enhanced the display of wrap objects so that it is easier to tell which one is current, and which ones are inactive. Inactive wrap objects are now drawn in red. - Fixed a bug that caused the muscle points to be highlighted incorrectly when a point is added to the muscle. - Added a parameter to the joint file, called "MV_gear" that allows you to specify the gear in the Model Viewer window. - Enhanced the Joint Editor display to show the parent and child segments of the current joint, as well as the order of the joint transformations. - Enhanced scalemodel to scale several more muscle parameters: min_thickness, max_thickness, max_isometric_force. Scalemodel now also scales the default muscle properties. - Fixed a bug which caused SIMM to crash while saving the dynamics if you chose to save sdfor.c but not model.sd - Fixed walk1.trb and walk2.trb in folder CrouchGait. These files had contained unidentified markers so that SIMM would not solve them. -------------------------------- Changes in version 3.1.1 -------------------------------- - Added support in the Motion Module for TRB file import. You can now open TRB or TRC files when loading tracked marker files. - Enhanced I/O module so that SIMM can now read filenames and paths that have spaces in them (e.g., "muscle_file" and "bones" in the joint file). -------------------------------- Changes in version 3.1 -------------------------------- - Revamped the Motion Module to load TRC files instead of HTR files. It can now import TRC files and calculate, for each frame of data, the SIMM gencoords that best fit the model to the marker data. Also, the real-time Motion Module now receives gencoord data from EVaRT, rather than HTR data which needs to be mapped to SIMM gencoords. This reworking of the Motion Module makes it much easier to import motion into SIMM, and to change the SIMM model to which the motion is applied. See the Motion Module section of the SIMM 3.1 manual for more information. - Added a Marker Editor tool. This tool enables you to create and edit markers, which are used by the Motion Module to fit a SIMM model to 3D marker data collected by a motion capture system. See the Marker Editor section of the SIMM 3.1 manual for more information. - Fixed a bug which caused SIMM to crash when loading a model with no gencoords or no functions. - Fixed a bug which caused SIMM to occasionally crash when deleting a model that had been used to create plot curves. - The cylinder wrapping algorithm has been improved to better handle cases in which a muscle point is very close to the cylinder. - Fixed a bug in scalemodel which prevented it from properly scaling kinematic functions that were used by translational DOFs and which had two control points but a slope not equal to 1.0. - Fixed a bug which caused SIMM to incorrectly read motion files containing muscle names with extra letters on the ends. - The GUI items in the Model Viewer have been rearranged to make it easier to interact with the model. - Several bugs in the Dynamics Pipeline have been fixed. See the ChangeLog.txt file in SIMM/Resources/Pipeline for details. -------------------------------- Changes in version 3.0.2 -------------------------------- - Fixed a bug in the Muscle Editor so that the muscle parameters form is now updated when you switch between models. - Fixed a bug in the Wrap Editor so that muscle wrapping is now updated when wrap objects are restored. - Fixed a bug in the Plot Maker which prevented it from choosing the right X-variable when switching between previously-generated plots. - Fixed a bug which caused SIMM to crash when you restored the muscles in a model and then deleted a muscle point from a muscle in that model. - Fixed a bug in the Muscle Editor related to the saving and restoring of excitation values for the muscles (which are used only for the Dynamics Pipeline). - Fixed a bug which caused SIMM to crash when a model is deleted and the next topmost window is the Muscle Editor. - Fixed a bug which was preventing the SIMM tools from properly redrawing their windows when a model was added or deleted. - Fixed a display bug that occurs when tabbing through the fields in the Gencoord Editor. - Fixed a bug in the Gencoord Editor which caused a gencoord's current value to be changed when its default value is set. - Fixed several bugs related to saving and restoring in the Wrap Editor. - Fixed several bugs related to saving and restoring in the Deform Editor. - Fixed an inverse kinematics bug which prevented SIMM from loading valid models when the joints are ordered a certain way in the joint file. - Fixed a bug which caused display problems when joint axes of zero length are defined in the joint file. - Fixed a bug so that spring elements are no longer displayed when the drawmode of the segment they are attached to is set to "none." - Fixed a bug which caused SIMM to crash when loading a motion that has 'datarows' specified as a negative number. - Several improvements were made to the Deform Editor to make it easier to see which deform is active and to understand what the various buttons (especially "position," "deform start," "deform end," and "auto reset") do. - Added a feature to muscle wrapping to give the user more control over how a muscle wraps. You can now specify the starting and ending points of a muscle path for the purposes of wrapping. When wrapping is activated for a muscle, two new fields appear in the muscle parameters form in the Muscle Editor. These fields contain the starting and ending points of the region of the muscle which is allowed to wrap over the wrap object. Only muscle path segments which are between these two points (and which span a joint) are able to wrap over the wrap object. The default values of -1 mean that all path segments should be used. The muscle points are numbered starting at 1 and are in the order they are listed in the muscle definition. You can also specify this range of path segments in the definition of each muscle in the muscle file. The new method of specifying wrap objects within a muscle definition looks like this: wrapobject object_name The wrap algorithm is optional, and is used only for ellipsoid wrap objects. The range is also optional and must follow the wrap algorithm, if specified. For example: wrapobject distal_femur hybrid range 2 5 Specifying a range of muscle points for wrapping is most useful when using a hemi-cylindrical wrap object. In this case SIMM uses a special algorithm to determine how to wrap the muscle over the cylinder, which can sometimes choose an inappropriate segment. - Added more muscle options to the Gait Module. The full set of mappings between EMG names in the GCD file and muscles in the SIMM model is: GCD name SIMM muscle[s] -------- -------------- ILIOPSO RtIliacus, RtPsoas GLUTMAX RtGlutMax1, RtGlutMax2, RtGlutMax3 GLUTMED RtGlutMed1, RtGlutMed2, RtGlutMed3 ADDLONG RtAddLong VASTLAT RtVastLat VASTMED RtVastMed LATHAMS RtBiFemLH, RtBiFemSH, RtTenFascLat MEDHAMS RtSemiMem, RtSemiTen, RtSartorius, RtGracilius RECTFEM RtRectFem GASTROC RtMedGas, RtLatGas SOLEUS RtSoleus ANTTIB RtTibAnt POSTTIB RtTibPost PERLONG RtPerLong PERBREV RtPerBrev FLDLONG RtFlexDig FLHLONG RtFlexHal EXDLONG RtExtDig EXHLONG RtExtHal ADDMAG RtAddMag1, RtAddMag2, RtAddMag3 GRACILIUS RtGracilius TENSFAS RtTenFascLat SARTORIUS RtSartorius SEMITEN RtSemiTen SEMIMEM RtSemiMem BIFEMLH RtBiFemLH BIFEMSH RtBiFemSH MEDGAS RtMedGas LATGAS RtLatGas For muscles on the left side, use the prefix "L" or "Left" in front of the EMG name in the GCD file. For example: LILIOPSO or LeftILIOPSO. You can also use the "R" and "Right" prefixes for right-side muscles, but if no prefix is used, the right side is assumed. The mapping for 3D muscles has also been updated to: GCD name SIMM 3D muscle[s] -------- -------------- ILIOPSO RtIliacus, RtPsoas GLUTMAX RtGlutMax GLUTMED RtGlutMed VASTLAT RtVasti VASTMED RtVasti LATHAMS RtBiFemLH MEDHAMS RtSemiMem RECTFEM RtRectFem GASTROC RtMedGas, RtLatGas ANTTIB RtTibAnt MEDGAS RtMedGas LATGAS RtLatGas -------------------------------- Changes in version 3.0.1b -------------------------------- - Updated scalemodel utility program to read SIMM 3.0 joint and muscle files. - Fixed a bug that caused SIMM to crash when loading a model with closed loops. - Fixed a bug that caused SIMM to crash when saving dynamics files for a model with closed loops. - Increased the precision of floating point numbers written to dynamics files. - Fixed a bug in the "About SIMM" box that incorrectly displayed the password expiration date. - Fixed a bug that wrote out an incorrect parameter to a joint file ("IK_solver" was written instead of "inverse_kinematics_solver"). - Fixed a bug that caused SIMM to crash when doing inverse kinematics on a model with large closed loops -------------------------------- Changes in version 3.0 -------------------------------- - An inverse kinematics solver has been added so that closed loops of body segments will remain closed. Whenever you change a gencoord value that is used in a loop, the IK solver adjusts the other gencoords in order to satisfy the loop constraints and keep the loop closed. The IK solver can be turned on and off from within the Gencoord Editor. - Added the Gencoord Editor tool. You can now access and change any property of a gencoord using this tool. You can change the default value and range of gencoords, and can also create and edit restraint functions, which are used by the Dynamics Pipeline and the inverse kinematics solver. Read Section 2.8 of the SIMM manual for a complete description of the Gencoord Editor. - Added "look at" to the drawmode menu so that you can change the "fixed" segment in the model window by right-clicking on it and choosing the "look at" option. - Improved the way that materials and drawmodes are specified. They are now specified on a per-bone basis. By right-clicking on a bone in the model window, you can change its material or drawmode, independent of the other bones in that body segment. When you save a joint file, these per-bone materials and drawmodes are saved to the file. - Added three more default motion objects: contact, joint_force, joint_torque Please read Section 3.3.13 of the SIMM manual for a description of how these new motion objects make it easier to display forces during a motion playback. - "model view" has been changed to "camera." All references to model views have been changed to cameras, to make it clear that it is a camera transform that is being saved or restored. "Reset view" has been replaced by "restore camera," and you must choose one of the five saved camera positions to restore. - Added buttons in the Model Viewer to save and restore the current set of gencoord values. These commands function independently of save/restore camera buttons. - Fixed a bug which caused muscles to be initialized as not visible if the muscle file did not contain a default muscle. This has been fixed. - Added support for reading in and displaying contact objects that are used in the Dynamics Pipeline. See Section 2.1 of the Dynamics Pipeline manual for information on how to specify contact objects and view them in SIMM. - A new method of coloring muscles has been added. When the color factor parameter in the Muscle Editor is set to a positive value, all of the muscles in the model window are colored according to their length. White indicates a length near the resting length of the muscle. Blue indicates a shorter length, and red indicates a longer length. This display technique is especially useful when you want to know which muscles are longer or shorter than normal when playing back a recorded motion. - Norm now correctly reads and writes binary and ascii bone files on both the PC and the SGI platforms (and can read bone files written by norm on the other platform). - Norm now correctly reads and processes bone files with polygons that have zero vertices. - Fixed a bug which caused SIMM to occasionally crash when deleting a model. - Fixed a bug which caused SIMM to occasionally crash when deleting a plot curve. - Added support for "outlined" drawmode for world objects. - Fixed a bug which caused the Wrap Editor window to redraw once for every wrap object that is restored when the user pressed the "restore" button. - The options under the "File" menu would not update properly when the topmost window was changed. This bug has been fixed. The options under the "File" menu now properly reflect the available options for the current model or plot. - Values for deforms and deformities were not initialized properly when a model was loaded. This bug has been fixed. Additionally, the deform sliders are now clamped so that deform values cannot go outside their specified range. - Current values for deforms and deformities were not properly written to the joint file when a model was saved. This has been fixed. - Fixed a bug which caused SIMM to write inconsistent wrap object names to joint files, muscle files, and Dynamics Pipeline source files. If you include spaces or other special characters in wrap object names, they are now correctly written to all output files. - Several bugs were fixed related to SIMM's handling of materials. You can now specify new materials with only some components (e.g., ambient color but no diffuse color), and can override default materials such as def_min_muscle. - Fixed a bug which caused SIMM to crash when the user attempted to select muscle points on a model which was currently displaying body force vectors. - The Deform Editor now checks the user-specified min and max values for a deform range, and swaps them if they were specified in reverse order. - Fixed a bug in norm which prevented the "-sep" option from working with ascii output. -------------------------------- Changes in version 2.0.2 -------------------------------- - Added "segment axes" toggle to dramode menus for individual body segments and segment groups. - Added "normal vector" toggle to dramode menus for individual body segments, segment groups, world objects, and muscle surfaces. - Added a default material for world objects (a shade of blue). In the past world objects that did not specify a material would be drawn using an unspecified material which typically ended up being black. - Improved the appearance of muscle wrapping paths and optimized muscle drawing in general. To get the fastest possible muscle renderding add the line 'FASTER_MUSCLE_DRAWING on' to the SIMM 'preferences' file. This will degrade the visual appearance of muscles slightly -- muscle points will not be drawn during animation, and muscle points between wrapping path segments will never be drawn. - Fixed a bug that was making it impossible to select the contents of the 'w' and 'h' text fields in the Model Viewer window. - (SIMM SGI only) Fixed a bug that allowed drawmode menus to accumulate checkmarks incorrectly. - Fixed a bug that was causing ground reaction force vectors to point in the opposite direction under certain cirmcumstances. - Removed a threshold that was causing force vectors shorter than 0.05 to become invisible. Now force vectors of any length will be rendered by SIMM. - Fixed a bug that caused text and number forms to be occasionally drawn in an incorrect color. This bug did not affect the values within the forms, just their display on the screen. - Fixed a bug that could cause SIMM to crash when deleting all curves from a plot window. - Changed the name of the "ground>" button in the Model Viewer window to "look at>". The behavior of the "look at>" button is similar to the behavior of the old "ground>" button, however there are a few subtle differences. In both cases clicking on the button displays a pop-up menu allowing you to pick any segment in the model. In both cases the body segment that is chosen remains in its current position within the 3D model window as the model is animated. The difference lies in the way in which SIMM keeps the selected segment in its current position within the window. The old approach changed the arrangement of the model's transform hierarchy such that the newly selected segment became the model's "ground" segment. The new approach attaches the virtual 3D "camera" to the selected segment without changing the model's transform hierarchy or the ground segment. While this change is mostly transparent to the user, it does have the following visible results: 1. World objects will now move as expected if the camera is attached to a segment that moves relative to the world reference frame. 2. The "look at" segment will not translate within the 3D model window, however it can rotate within the window. This allows the camera's view of the scene to remain upright relative to the world reference frame even as the "look at" segment rotates. The new behavior of the "look at >" button is designed to make it easier to view animation generated from motion capture data. - Norm has been extended to process more than one file at a time. The following additions have been made to norm: 1. The existing method of specifying an input file and an output file as a pair of file names has been extended as follows: a. Multiple pairs of input/output file names can be specified on the command line such as: norm infile1 outfile1 infile2 outfile2 ... b. If only a single file is specified, then norm assumes the output file is the same as the input file. Norm will prompt you to make sure that you understand that the contents of the file will be overwritten. c. File names may appear anywhere on the norm command line. In other words, you can now intersperse options and file names passed to norm in any order. Norm identifies filenames by their lack of an initial dash (-). 2. A list of input files can be specified using the new -files option. For example: norm -files *.asc In the above example, all files ending with .asc will be passed to norm as input files. For each file, norm will process the file and then prompt you to make sure you want to overwrite the file with norm's output. Use of the -files option may be combined with the use of input/output file name pairs on the command line. 3. You can instruct norm to automatically overwrite existing files without prompting you by specifying -overwrite. 4. You can instruct norm to put all output files in a specified directory with the option -outdir . If the directory you specify doesn't already exist, then norm will create it. -------------------------------- Changes in version 2.0.1 -------------------------------- - Upgraded Dynamics Pipeline support from version 1.1 to 1.2. If the Dynamics Pipeline Module is present, SIMM 2.0.1 will now write out dynamics files that work with version 1.2 of the Pipeline. - Improved the muscle wrapping algorithms. There were several cases in which muscles would choose an unlikely wrapping path. These have been eliminated. Additionally, for multi-segment muscles, SIMM now chooses the best muscle segment for wrapping by determining which muscle segment will experience the least change in length due to wrapping. - Fixed a bug in which the model could dissappear behind the far clipping plane if a translation gencoord were to slide it away from the viewer. - Fixed a bug in Norm that would compute an incorrect bounding box for an input file with multiple polyhedra. - Fixed a bug which caused SIMM to improperly write out the names of wrap objects and deform objects to joint files. - (SIMM SGI only) SIMM now uses the "output path" in the Preferences tool as the location for snapshot images. - (SIMM SGI only) SIMM no longer occupies the CPU when it is idle. -------------------------------- Changes in version 2.0 -------------------------------- - Added the Wrap Editor tool. You can now interactively define spheres, ellipdoids, and cylinders for muscle-tendon actuators to wrap over. SIMM automically calculates muscle paths over these wrapping objects. Muscle lengths, forces, and moment arms are all calculated correctly for the new, wrapped muscle. See Section 2.9 of the User Guide for more information on the Wrap Editor. - Added the Deform Editor tool. This 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. See Section 2.10 of the User Guide for more information on the Deform Editor. - Added a snapshot capability. The 'snapshot' button in the Model Viewer makes it easy to capture images and animations from the SIMM 3D model window. See Section 2.4.2 of the User Guide for more information on taking snapshots of a model window. - Added motion objects. SIMM 2.0 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. See Section 3.5 of the SIMM User Guide for more details. - Added segment and gencoord grouping. Body segments and gencoords may now be organized into groups, making it easier to navigate and display large models. See Sections 3.3.1 and 3.3.4 of the User Guide for more details. - Added options to norm. Norm has several new options for processing polyhedron files. It can now fill in holes in polyhedra, subdivide edges, and it has new options that improve its ability to find correct vertex normals for polyhedra that are not closed objects. See Chapter 4 of the User Guide for more details on these and other new options. - Added a drawmode pop-up menu. You can now right-click on bones and world objects in the model window to change their draw mode or turn on/off the display of the reference frame of the body segment. When you right-click on the object, a pop-up menu is displayed from which you can choose from the various draw modes, or choose "segment axes" from the bottom of the menu. See Section 2.4.6 of the User Guide for more information. - Made muscle point editing easier. The selecting and moving of muscle points has been made easier in SIMM 2.0. 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. See Sections 2.7.3 and 2.7.4 of the User Guide for more information. - Improved specification of model-specific colors. Model-specific colors have been removed from the simmcolors file and replaced with commands in the joint file. You can now specify the color of the model window background, body segment axes, joint rotation axes, polygon vertex labels, and crosshairs by putting the appropriate keyword and RGB values in the joint file. See Section 3.3 for more details. You can also specify materials that are used to draw muscles at activations of 0.0 and 1.0. If the activation is between these values, SIMM will interpolate between the two materials that you specify. See Section 3.4.1 for more details. - Added buttons for displaying joint axes. There are now toggle buttons in the Joint Editor window for turning on/off the display of rotation axes for each joint. - Added scale and offset fields to Plot Maker. The scale field in the Plot Maker allows you to multiply plot data points by a scale factor when creating plot curves. The offset field allows you to add a factor to plot data points. See Section 2.5.7 of the User Guide for information on how to use these fields. - Fixed a bug in norm that would compute an incorrect bounding box for and input file with multiple polyhedra. - Fixed a bug that was preventing muscle point coordinates from being displayed in model windows (i.e. the Muscle Editor's "show coordinates" button was not working). - Fixed a bug in the display of number fields (in all tools) which caused SIMM to improperly display large numbers. - Fixed a bug that could cause SIMM to crash when plotting numerous motion curves in the same plot window. - Fixed a bug that would cause SIMM to quit immediately when a popup menu was dismissed by clicking a window *other* than the window that originated the menu. - Fixed a bug that could make SIMM hang when keys in the keyboard's numeric keypad are pressed. - Fixed a bug that prevented SIMM from recognizing input files with capital letter in the filename extension. For example, SIMM would not load a joint file if it ended in '.JNT'. - Improved the shading of muscles so they are easier to see when there is no light shining directly on them. - Fixed a bug in the Joint Editor: making r1 a constant (while other dofs are still functions) now works robustly. - Fixed a bug that would cause SIMM to hang when a function's x-range was exactly the range of a gencoord that uses it. - Fixed a bug that was preventing world object scale factors from being saved to the joint file. - Fixed a bug that was preventing user-specified default views from being saved to the joint file. - Improved the drawing speed of muscles. - Improved the way muscle point coordinates are drawn in the model window, making them easier to read. - Improved the readability of XY coordinates in plot windows by adding some space between the X and Y componants. - Updated the Rainbow Sentinal hardware key drivers included with the SIMM installer to version 5.38. This was prompted by a report that the drivers shipped with previous versions of SIMM did not work with the new SGI 320 visual workstation. The latest Sentinal drivers may also be downloaded and installed seperately from Rainbow's web site: http://www.rainbow.com/tech - Improved the C-preprocessor that is used to scan SIMM joint and muscle files. Preprocessor warnings and errors are now sent to the SIMM Message window. In the past these messages were included in the preprocessor output file which would lead to cryptic messages from SIMM such as: "Unreconized string "warning:" found in joint file.". ---------------------------- Changes in version 1.0.6b ---------------------------- - Added PipelineUserGuide.pdf and GaitModule.wri to Documentation folder. - SIMM now reads SIMM/SGI plot input files in addition to the new SIMM/PC plot input/output file format. - Hitting the tab key when a 3d model window is frontmost now cycles through the saved views for that model. ---------------------------- Changes in version 1.0.6 ---------------------------- - Fixed a bug which could cause SIMM to crash when adding muscle points to a muscle. - The upper limit on muscle points per muscle was increased from 30 to 200. - SIMM now correctly prints an error message if the user attempts to add more than 200 muscle points to a muscle. ---------------------------- Changes in version 1.0.5d ---------------------------- - Fixed a muscle-point highlighting bug that could cause muscle points to be hilighted even when they were not selected. - Added the Dynamics Pipeline add-on module to SIMM. ---------------------------- Changes in version 1.0.5c ---------------------------- - Fixed a bug that was preventing model windows from redrawing during "live" resizing of the window borders. ---------------------------- Changes in version 1.0.5b ---------------------------- - Fixed a bug that occasionally caused SIMM to crash when closing a window. ---------------------------- Changes in version 1.0.5 ---------------------------- - The File menu now includes "Save Joints", "Save Muscles" (and possibly "Save Dynamics") when tool windows are frontmost. Previously a model window had to be frontmost. If the frontmost tool window has a model associated with it, then the File menu will now include the appropriate "Save..." commands for that model. The same goes for File > "Save Plot" and tool windows with associated plots. - Fixed a bug that was making SIMM behave erratically after several models were opened. Models with many gencoords would allocate many popup menus. When several such models were opened it created more popup menus than MS-Windows could handle. SIMM now avoids allocating popup menus until the moment they are displayed. - Improved the shading of segments in wireframe draw mode. - Improved the display of (non-3d) muscle action lines. - Added 'scalemodel' utility program to the SIMM Extras folder. - Added better default views for models that ship with SIMM. - Added Dynamics Pipeline Demo tutorial. - Fixed a bug in which the window close box [X] would occasionally stop working. ---------------------------- Changes in version 1.0.4 ---------------------------- - Fixed a bug which would leave all windows inactive upon closing a help or tutorial window. This could lead to further problems such as new help windows opening behind all other windows and incorrect items appearing in the File menu. - Fixed a bug which could lead to the following Windows message when creating an unscaled gait model with 3D muscles: "This program is set to run in MS-DOS mode and cannot run while other programs are running. All other programs..." This message would only appear under Windows 95/98, and only if the user's c:\windows\command.pif file had the "MS-DOS mode" check-box checked within Properties > Program > Advanced Settings. - Added Gait Module Demo tutorial. ---------------------------- Changes in version 1.0.3 ---------------------------- - Added help contents for the Gait Module add-on. ---------------------------- Changes in version 1.0.2 ---------------------------- - Added "unclamped" feature to joint file and Model Viewer. It is now possible to toggle a gencoord's clamped/unclamped state using a new check-box in the Model Viewer. The check-box appears between the gencoord's text-entry field and its slider. Additionally the keyword "unclamped" may be added to gencoord definitions in a joint file to prevent SIMM from clamping the gencoord to its minimum/maximum boundaries. - Changed the "step_size" variable in Plot Maker to match range of the X variable. ---------------------------- Changes in version 1.0.1 ---------------------------- - Fixed a bug that would cause SIMM to occasionally create corrupt data files when writing joint, model, motion or plot files. Specifically, when the file being written replaces a file of the same name and is shorter than the file it replaces, the remnants of the previous file would remain at the end of the newly created file. This corrupts the new file, making it unusable. - Fixed a bug in which popup menu items were incorrectly grayed-out in menus that are shared among multiple SIMM windows. - Added the Gait Module add-on product to SIMM. ====