changes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

changes [2021/06/28 11:04] – created thomaschanges [2023/12/14 15:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ~~NOCACHE~~ ~~NOCACHE~~
 ====== SCONE Version History ====== ====== SCONE Version History ======
 +
 +==== SCONE 2.3.0 ====
 +//Released December 14, 2023//
 +
 +=== New Features ===
 +  * Full integration and support for Reinforcement Learning research via the SconePy Python API, see https://scone.software/doku.php?id=sconepy for more details
 +  * New Model Analysis window, for plotting muscles properties against model coordinates
 +  * New Examples and Tutorials based on improved models, including 3D examples
 +
 +=== SCONE Studio Updates ===
 +  * 3D viewer updates
 +    * Ground tiles now remain visible when the model moves beyond the ground plane size
 +    * Viewer now has a separate default color for object geometry
 +    * Improved shadow rendering when mulitple objects are in the scene
 +    * Improved shadow rendering for scenes with static geometry
 +    * Added option to disable shadow casting for force arrows and static geometry
 +    * Contact geometry can now be hidden without hiding static geometry
 +    * Default contact geometry color is now the same as bone color
 +    * Contact force arrows can now be semi-transparent
 +    * Added option to automatic orbit the camera during playback
 +    * Playback speed can now be changed while making a video
 +  * You can now click on the Analysis graph legend to move it out of the way
 +  * Fixed dark mode support for macOS
 +
 +=== SCONE Updates ===
 +  * Models now support min/max_muscle_activation and min/max_individual_muscle_activation; both can be used as optimization parameters
 +  * Hyfydy models now support ligaments (preview)
 +  * NoiseController now supports deterministic randomized random seeds when random_seed = 0
 +  * GaitMeasure option continue_after_fall [s]
 +  * Removed warning "Multiple child controllers have no name"
 +  * Muscles in Model Info now contain muscle path
 +  * LuaModel find_body_index
 +
 +=== Fixes ===
 +  * 3D viewer camera now keeps focus point when setting the camera position (using r, x, y or z)
 +  * Muscle excitation values in OpenSim models are now correctly clamped when queried; this slightly increases the overall metabolic energy consumption measures for OpenSim models (fixes #7)
 +  * Removed defunct sconepy.Muscle.set_excitation(), fixes #6
 +  * Automatic reload now also works after Save As
 +  * Active scenario now favors current tab
 +  * Missing Gait Analysis plot data is now a warning instead of an error
 +  * SCONE Studio now opens .scone files when clicked
 +  * The 'discard' button now works properly when reloading a file with edits
 +
 +==== SCONE 2.2.1 ====
 +//Released June 7, 2023//
 +
 +=== New Features ===
 +  * SCONE Studio now automatically reloads open files that were modified in another editor
 +  * ScriptController can now have child Controllers, which can be enabled/disabled from within the script update() function
 +  * Hyfydy now supports sphere-capsule and capsule-capsule collisions
 +  * Hyfydy has a major increase in collision performance when there are many collision geometries
 +
 +=== Updates ===
 +  * Reflex min/max_control_value can now be optimized
 +  * Added SconePy.Model.get_tendon_length()
 +  * Simulation statistics now includes simulation_step_size and simulation_step_count
 +  * EffortMeasure now stores individual muscle efforts for Wang2012 and Uchida2016
 +  * Default contact geometry transparency is now 0.5
 +  * Progress bar during evaluation is now more responsive
 +  * Model asymmetry check now shows specific asymmetries
 +
 +=== Fixes ===
 +  * DofMeasure units are now in meters for translational Dofs, added "in_degrees" setting for rotational Dofs (default = 1)
 +  * SequentialController now only writes data for the active controller, preventing controller data from being overwritten by inactive controllers
 +
 +==== SCONE 2.2.0 ====
 +//Released April 9, 2023//
 +
 +=== New Features ===
 +  * gui_profiler
 +  * Messages log level can now be set in Preferences -> Scone Studio -> User Interface Settings
 +
 +=== Updates ===
 +  * Updated progress graph refresh rate and message
 +  * 3D Viewer can now visualize contact forces using a single arrow per body (Preferences -> User Interface -> Combine body contact forces)
 +  * Objectives can now be evaluated even if they contain no free parameters
 +  * Analysis view now has maximum zoom level and better edge handling
 +  * Data analysis and playback now remains available after simulation errors
 +  * Models can now be evaluated without ModelObjective; S: scone
 +
 +==== SCONE 2.2.0 ====
 +//Released April 3, 2023//
 +
 +=== New Features ===
 +  * SCONE is now officially supported on macOS
 +  * SconePy now supports using SCONE Measures to be used for Reinforcement Learning via ''current_measure()''
 +  * Hyfydy models now use a new integrator by default, increasing both performance and accuracy
 +
 +=== Updates ===
 +  * Hyfydy Tutorials and Examples no longer include HfdConfig
 +  * Optimization / Evaluation
 +    * Optimizers now have use_best_as_mean setting
 +    * Objectives can now be evaluated even if they contain no free parameters
 +    * Models can now be evaluated without ModelObjective; S: scone
 +    * Controllers and Measures can now be defined inside Models without type property
 +  * SconePy
 +    * sconepy.quaternion.get_rotation_vector()
 +    * sconepy.Body.com_acc(), ang_acc()
 +    * sconepy.model.log_measure_report()
 +    * sconepy.model.set_simulation_end_time(), has_simulation_ended()
 +    * sconepy.current_measure(), final_measure()
 +  * Progress graph
 +    * Progress graph refresh rate can now be configured
 +    * Progress window now shows optimization time
 +  * Analysis view
 +    * Analysis view now has maximum zoom level and better edge handling
 +    * Data analysis and playback now remains available after simulation errors
 +  * 3D Viewer can now visualize contact forces using a single arrow per body (Preferences -> User Interface -> Combine body contact forces)
 +  * Messages log level can now be set in Preferences -> Scone Studio -> User Interface Settings
 +  * Asymmetric model components are now shown in the Model Info window
 +  * GaitStateController now has use_model_com_reference_pos for state transitions based on sagittal_pos
 +
 +=== Fixes ===
 +  * OpenSim models now correctly load init_state when initial_load = 0
 +  * ModelConverter now mirrors joint limits correctly
 +  * ''FeedForwardController'' now displays an error message when there are no matching actuators
 +  * scone_version is now added in LoadScenario() if a .par file is loaded
 +  * Model components are now properly cleared, fixes User Input / Blueprint crash
 +  * CmaPoolOptimizer now has better documentation
 +
 +==== SCONE 2.1.0 ====
 +//Released January 9, 2023//
 +
 +=== New Features ===
 +  * SCONE now includes a **Python API**, designed and streamlined for **machine learning** applications. Click [[https://scone.software/doku.php?id=sconepy|here]] for more information. 
 +  * SCONE now fully supports Linux (Ubuntu 20.04 or higher). It can be [[https://scone.software/doku.php?id=install|installed]] via a ''.deb'' package and a ''.tar.gz'' archive.
 +  * Added support for converting OpenSim4 models and scenarios to Hyfydy, via ''Tools -> Convert to Hyfydy...''
 +
 +=== Updates ===
 +  * Measures:
 +    * MuscleMeasure now supports ''force'' measurement.
 +    * EffortMeasure now supports measure type ''ActuatorTorque'', use in combination with ''order'' for quadratic, cubic, etc. penalties.
 +    * DofMeasure now supports ''actuator_torque''
 +    * DofMeasure 'force' is renamed to 'limit_torque' (backwards compatible).
 +  * Optimization:
 +    * Improved ''MimicMeasure'' optimization performance through data caching.
 +    * Optimizers now have the option to specify multiple init files, each with its own settings, using the ''init { ... }'' syntax (also in 2.0.6).
 +    * CmaOptimizer now has ''enable_boundary_transformer'' option.
 +    * Added Optimizer setting ''output_individual_search_points'' to write .par files for each individual search point (useful for debug purposes).
 +  * 3D visualizer:
 +    * The 3D visualizer can now follow specific bodies via the setting view.camera_follow_body.
 +    * Perturbation forces are now visualized with longer and thinner arrows.
 +  * Gait Analysis:
 +    * Gait Analysis plots now automatically extend the Y-axis range to fit the data.
 +    * Added option to set font sizes for gait analysis plots (Tools -> Preferences -> User Interface -> Gait Analysis).
 +  * ScriptController / ScriptMeasure:
 +    * Lua scripts can now convert quaternions to euler angles, via SconePy.Quat.to_euler()
 +    * LuaJoint.reaction_force(), limit_torque(), limit_power(), load()
 +    * Added muscle_tendon_length() and muscle_tendon_velocity(), renamed contraction_velocity() to fiber_velocity()
 +    * The current timestamp can now be accessed in Lua script update() functions, via update( model, timestamp ). This allows ScriptController scripts to easily access the time since a controller is activated.
 +  * .sto files can now be played back without Optimizer.
 +  * Extracted data channels now includes time column.
 +  * Model now supports ''neural_delays'', used SconePy Python API.
 +  * OpenSim 4 simulations now only log errors.
 +  * Added option to enter a Hyfydy License Key via the SCONE command line interface (sconecmd).
 +  * Updated Help -> About license information.
 +
 +=== Fixes ===
 +  * Fixed issue where 3D Viewer window would stop working after a simulation error.
 +  * Improved finding the SCONE install folder and related error handling.
 +  * Fixed issue where SCONE Studio would not work properly if the system locale has comma as decimal separator (Linux).
 +  * Folders are no longer stored in settings if they are the default.
 +  * ''BodyEulerOriSensor'' could return invalid number in rare cases, output can be slightly different now.
 +  * Default ModelOpenSim3::GetSimulationEndTime() is now set to MAX.
 +  * Fixed signs for contralateral ''BodyEulerOriSensor'' and ''BodyAngularVelocitySensor''.
 +  * Reflex parameters with source from opposite side now have _o postfix.
 +  * Move text editor cursor to line start after ''Ctrl+/''.
 +  * Improved error handling when updating tutorials and examples.
 +  * Updated error message when ffmpeg is missing.
 +  * Removed warning for when muscle tendon length is smaller than zero.
 +
 +==== SCONE 2.0.6 ====
 +//Released July 26, 2022//
 +
 +=== New Features ===
 +  * Optimizers now have the option to specify multiple init files, each with its own settings, using the ''init { ... }'' syntax.
 +
 +=== Updates ===
 +  * Lua Scripts now support the following functions:
 +    * ''muscle:muscle_tendon_length()''
 +    * ''muscle_tendon_velocity()''
 +    * ''muscle:active_fiber_force()''
 +    * ''muscle:active_force_length_multiplier()''
 +    * ''muscle:passive_fiber_force()''
 +    * ''muscle:max_contraction_velocity()''
 +    * ''model:mass()''
 +    * ''model:gravity()''
 +    * renamed ''muscle:contraction_velocity()'' to ''muscle:fiber_velocity()''
 +  * Lua scripts can now convert quaternions to euler angles, using ''quat:euler_angle_xyz()''.
 +  * ReflexController ''delay'' is now a parameter that can be optimized.
 +  * MuscleMeasure now supports "force" measurement.
 +  * ''.sto'' files can now be played back if the folder contains a ''.scone'' file without an ''Optimizer''.
 +  * Perturbation forces are now visualized with longer and thinner arrows, to improve visibility.
 +  * Added option to set font sizes for gait analysis plots (Tools -> Preferences -> User Interface -> Gait Analysis).
 +  * Removed scone_settings_schema.zml external file dependency.
 +
 +=== Fixes ===
 +  * Fixed signs for contralateral BodyEulerOriSensor and BodyAngularVelocitySensor.
 +  * Reflex parameters with source from opposite side now have _o postfix.
 +
 +==== SCONE 2.0.5 ====
 +//Released May 27, 2022//
 +
 +=== Updates ===
 +  * New Lua Script functions for muscles: tendon_length(), normalized_tendon_length(), tendon_slack_length().
 +  * Gait Analysis plots now have 'mirror_left' option for non-sided channels (e.g. pelvis_list, pelvis_rotation).
 +  * Reflexes now have 'par_name' option to override the parameter name.
 +  * Model conversion tool now remembers previous input name
 +
 +=== Fixes ===
 +  * Measure "name" property now works correctly again (regression in 2.0.4).
 +
 +==== SCONE 2.0.4 ====
 +//Released May 13, 2022//
 +
 +=== New Features ===
 +  * Writing evaluation data to .sto files is now optional (via Preferences -> User Interface -> File settings), data can now be written manually to .sto files via File -> Save Evaluation Data (Ctrl+Shift+E).
 +  * config.scone can now be opened directly from the Optimization Results browser.
 +  * GaitStateController, EffortMeasure, GaitMeasure now support omnidirectional use, via ''omnidirectional'' and ''use_initial_heading'' settings.
 +  * New BodyEulerOriSensor to replace broken BodyOrientationSensor, used by default in BodyOrientationReflex
 +  * DofReflex and BodyOrientationReflex now have ''mirror_left'' option, which mirrors the output for left sided actuators. Useful in combination with pelvis_list, pelvis_rotation, etc.
 +
 +=== Updates ===
 +  * Evaluation results are now written to file in the background to decrease waiting time.
 +  * Greatly improved MimicMeasure performance through data caching.
 +
 +=== Fixes ===
 +  * Fixed issue when pressing enter on a directory to evaluate the latest .par would fail after the file had been deleted.
 +  * BodyOrientationReflex opposite bodies now work correctly, using bodyname_o.
 +  * Performance evaluation (Ctrl+P) with ReplicationObjective now works properly.
 +
 +==== SCONE 2.0.3 ====
 +//Released April 19, 2022//
 +
 +=== Updates ===
 +  * Updated Model Conversion user interface
 +
 +=== Fixes ===
 +  * Fixed issue causing the Model Conversion Tool to remove bodies attached by WeldJoints
 +  * Fixed automatic indentation with '{' or '[' inside line comments
 +
 +==== SCONE 2.0.2 ====
 +//Released April 6, 2022//
 +
 +=== Updates ===
 +  * Added option to export muscle activations from Coordinates
 +  * Actuator Input data now includes muscle excitation
 +  * Added support for activations in state_init_file, new settings state_init_file_ignore_activations and initialize_activations_from_controller
 +  * Optimization Results and Analysis can now be activated through shortcut shown in Windows menu
 +
 +=== Fixes ===
 +  * Fixed joint_motor_force max_torque application
 +  * Fixed rounding error of sliders in CoordinateEditor
 +  * Fixed video generation during playback (closes #4)
 +
 +==== SCONE 2.0.1 ====
 +//Released March 17, 2022//
 +
 +=== Updates ===
 +  * MimicMeasure can now read both .sto and .txt
 +  * MimicMeasure now has activation_error_weight
 +  * ReflexController now has new BodyOrientationReflex (experimental)
 +
 +=== Fixes ===
 +  * Fixed rounding error of sliders in CoordinateEditor
 +  * Fixed visualization of .obj files with extra orientation in transform
 +
 +==== SCONE 2.0.0 ====
 +//Released February 18, 2022//
 +
 +SCONE 2.0 is a **major new release** with following new features:
 +  * Support for //new simulation engines// OpenSim 4.3 and Hyfydy, allowing for the latest features and drastically improved optimization speeds (using Hyfydy).
 +  * //Select muscles and bodies// directly in the 3D viewer.
 +  * New //Model Information// window that contains information on all model components.
 +  * New //Coordinate Editor// that allows you to tweak model coordinates and change initial poses.
 +  * Updated //Tutorials and Examples//.
 +  * Several improvements to the //Editor//, //Analysis// and //Optimization//, as well as //many bugfixes//.
 +
 +=== New Simulation Engines ===
 +SCONE includes support for the following simulation engines:
 +  * [[https://opensim.stanford.edu|OpenSim 3.3]] (Open Source)
 +  * [[https://opensim.stanford.edu|OpenSim 4.3]] (Open Source)
 +  * [[https://hyfydy.com|Hyfydy]] (Proprietary)
 +
 +All Controllers and Measures can be used interchangeably with each of these simulation engines. All engines are included in the Windows 64 bit installer for SCONE.
 +
 +**Hyfydy** is state-of-the-art musculoskeletal simulation software that provides a 50-100x speedup over OpenSim. See https://hyfydy.com for more information and a free trial.
 +
 +=== Tutorials and Examples ===
 +  * All Tutorials have been updated and fine-tuned and are now available for both OpenSim and Hyfydy.
 +  * Additional Examples are now included for OpenSim3, OpenSim4 and Hyfydy.
 +
 +=== New Components ===
 +  * New //Model Info// window that shows all model properties. It can be activated by clicking on muscles or bodies in the 3D viewer.
 +  * New //Coordinates// window that allows you to edit the model coordinates and export initial poses.
 +  * New //Evaluation Report// window that shows information about how a Measure is computed in an evaluation.
 +
 +=== 3D Visualizer Improvements ===
 +  * Hover over any muscle or body in the 3D viewer to see its name; click to see its properties.
 +  * Muscle color can now represent activation, force or fiber length.
 +  * Model geometry is now cached and loads much faster when a scenario is reloaded.
 +  * Added visualization of model center-of-mass, joint moments and body moments.
 +  * Viewer now supports static camera (enable via ''View –> Static Camera'').
 +  * Added configuration options for tile size, tile count and contact geometry transparency.
 +  * Fixed shading of scaled geometry files.
 +  * Fixed scaling of .obj geometry.
 +  * Many other visualization improvements and fixes.
 +
 +=== Editor Improvements ===
 +  * Added support for drag-and-drop from the Windows File Explorer to open files.
 +  * Toggle comments via ''Ctrl+/''.
 +  * Duplicate selected text or the current line via ''Ctrl+U''.
 +  * Reload the current document via ''Ctrl+R''.
 +  * Scenario files now support inline macro expansion, e.g. ''"text${var}"'', which can be useful for adding a macro to a signature.
 +  * Many more minor improvements and fixes.
 +
 +=== Analysis Improvements ===
 +  * Added support for outputting muscle moments, moment arms, coordinate moments and powers.
 +  * Added option to keep all data frames for analysis, but not for file storage.
 +  * The Analysis graph now automatically scales the Y-axis to fit the data shown.
 +  * Analysis view filter now supports wildcards (* and ?); activate filter with ''Ctrl+L''.
 +  * Several Gait Analysis improvements and fixes.
 +
 +=== Optimization Improvements ===
 +  * Current SCONE version is now stored in results to improve backwards compatibility in the future.
 +  * Improved error handling and reporting in optimizations.
 +  * New settings ''init_file_include'' and ''init_file_exclude'' to control which parameters are read from file.
 +  * The Optimization Results file browser now allows users to move multiple files or folders to the recycle bin at once.
 +  * Pressing the return key on a folder in Optimization Results automatically evaluates the most recent .par file in that folder.
 +  * Many more fixes and improvements.
 +
 +=== Other Improvements ===
 +  * Optimization Results can now be benchmarked with Ctrl+P and Ctrl+Shift+P.
 +
 +  * When editing preferences, leaving a setting blank now restores its default value.
 +
 +=== Other Fixes ===
 +  * Camera and view settings are now applied correctly on scenario load.
 +  * Added extra checks to prevent crash in case of missing filenames.
 +  * fixed issue where camera control would stop working after saving image.
 +  * Analysis cursor position is now more accurate with irregular time intervals.
 +  * Muscles that connect to both sides of the root segment are now handled correctly
 +  * Analysis windows are now updated correctly after loading a .sto from the optimization results (#247).
 +  * Updated warning message when gait analysis channels are missing, removed message: "lerp_map() was called on empty map" (#247).
 +  * sconecmd now supports -r in combination with -o (#230).
 +  * GaitStateController transition parameters are now optimized individually when symmetric = 0 (#214).
 +  * GaitStateController shows an error message (instead of crashing) when an uneven number of legs has been detected.
 +  * MimicMeasure::stop_time default is now set to match end of storage file.
 +  * SequentialController now correctly stores Analysis data of child controllers.
 +  * Fixed issue where evaluation would start automatically when loading while playback is active.
 +  * Line widths in Analysis view and progress windows now default to 1. It turns out other values lead to poor performance.
 +  * Fixed checking if document is modified, increasing editing performance.
 +  * Editor now gets focus after opening file.
 +  * MimicMeasure error limits are now disabled (0) by default, peak_error_limit is set to 2 * average_error_limit by default.
 +  * Updated documentation for GaitStateController and GaitMeasure (#69).
 +  * EffortMeasure computation is now correct again when use_cost_of_transport = 0.
 +  * CmaPoolOptimizer now works again.
 +  * Fixed inaccurate warning of unused parameters in CmaPoolOptimizer.
 +  * Fixed progress graph zooming with pooled CmaPoolOptimizer.
 +  * pooled_evaluator is now properly initialized so it doesn't need to restart all threads immediately.
 +  * EffortMeasure now shows name in Analysis Window and .sto output.
 +  * Fixed incorrect optimization timing when optimizations took longer than 922 seconds.
  
 ==== SCONE 1.5.0 ==== ==== SCONE 1.5.0 ====
Line 186: Line 548:
   * Improved support for defining symmetric / asymmetric controllsers. The 'symmetric' property now works as expected in all controllers and is inherited from parent controllers if not specified (root controller defaults to true).   * Improved support for defining symmetric / asymmetric controllsers. The 'symmetric' property now works as expected in all controllers and is inherited from parent controllers if not specified (root controller defaults to true).
   * Scripting (ScriptMeasure and ScriptController):   * Scripting (ScriptMeasure and ScriptController):
-  * Added support store_data() for writing data to .sto and SCONE analysis window +    * Added support store_data() for writing data to .sto and SCONE analysis window 
-   * Improved error handling and reporting for scripts +    * Improved error handling and reporting for scripts 
-   * added body:point_pos and body:point_vel +    * added body:point_pos and body:point_vel 
-   * added functionality to LuaVec3 and LuaQuat (see reference manual)+    * added functionality to LuaVec3 and LuaQuat (see reference manual)
   * Added warning in folder preferences dialog to avoid network drives (issue #53)   * Added warning in folder preferences dialog to avoid network drives (issue #53)
   * Pressing F5 will now evaluate the currently active scenario (if any)   * Pressing F5 will now evaluate the currently active scenario (if any)
Line 231: Line 593:
   * The SCONE Studio editor now supports Find (Ctrl+F) and Find Next / Previous (F3 / Shift+F3)   * The SCONE Studio editor now supports Find (Ctrl+F) and Find Next / Previous (F3 / Shift+F3)
   * The .SCONE file format is now more strict:   * The .SCONE file format is now more strict:
-    * Comments using '';' ''%%//%%'' ''/*'' and ''*/'' are no longer supported+    * Comments using '';'' ''%%//%%'' ''/*'' and ''*/'' are no longer supported
     * Only single line comments '#' and multi-line comments '###' are supported     * Only single line comments '#' and multi-line comments '###' are supported
   * Improved unit testing   * Improved unit testing
Line 348: Line 710:
 === New Features and Updates === === New Features and Updates ===
   * MuscleReflex can now act with activation as source (using KA, A0 and allow_neg_A)   * MuscleReflex can now act with activation as source (using KA, A0 and allow_neg_A)
-  * Reflexes can now use contralateral sources, using `_opostfix.+  * Reflexes can now use contralateral sources, using ''_o'' postfix.
   * Added initial_load and initial_load_dof to allow control over the initial position of the model   * Added initial_load and initial_load_dof to allow control over the initial position of the model