-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathchanges.txt
876 lines (738 loc) · 47.3 KB
/
changes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
~~NOCACHE~~
====== SCONE Version History ======
==== SCONE 2.4.1 ====
=== New Features ===
* New SconePy functions:
* Model.set_control_parameter(name, value)
* Model.get_control_parameter(name)
* Model.get_control_parameter_names()
* SconePy.Scenario.get(key)
* New ScriptController features:
* controller.get_control_parameter()
* controller.create_control_parameter()
* Added support for LuaSpring
* New viewer shortcut Shift+X/Y/Z to place camera in opposite direction of X/Y/Z
* Static Camera shortcut
* Model Info now includes Contact Geometries
=== Updates ===
* BodyMeasure now supports target_position and target_orientation
* GaitMeasure now has option use_height_wrt_feet to measure termination height relative to average foot position
* GaitStateController now supports Reset()
* com_offset is now shown in Body Model Properties
* sconetools.py now checks SCONE_PATH environment variable and LocalAppData (Windows)
* Convert Model now has Use Body Mass Threshold option
* Object geometries are show as body geometry
=== Fixes ===
* Convert to Hyfydy no longer crashes when the model is already a Hyfydy model
* Calling reset() on a model with neural delays no longer causes a crash (SconePy)
* Parameter init statement with locked = 1 now respects include and exclude
==== SCONE 2.4.0 ====
//Released October 28, 2024//
=== Major New Features ===
* New Interactive Mode, which lets you interact with models in real-time (see the new "Interactive Demo" example)
* You can now load .scone scenarios and run optimizations via the SconePy Python interface (see "SconePy/optimization_example.py")
* Hyfydy now supports double-precision floating point simulation through ModelHyfydyPrecise
* ScriptControllers can now modulate reflex parameters of child Controllers during a simulation
* Optional soft lower and upper limits for muscle inputs (see the new "Soft Limits" examples)
* Several new and updated Examples (see the "Examples" folder)
=== Updates ===
* Viewer
* Improved the visualization of force and moment arrows
* Viewer camera light position can now be configured via viewer.camera_light_offset
* Changing the camera during playback now uses smooth transitions
* Camera orbit velocity can now be set to Slow, Medium or Fast
* 3D Viewer can now display auxiliary geometry such as wrapping geometry
* Creating videos now defaults to the same base filename as the .par or .scone file
* New View option: Joint Reaction Forces
* SconePy
* sconepy.Vec3 and sconepy.Quat now have constructors and support multiplication and division, addition and subtraction, negation, length(), dot() and normalize()
* SconePy Body now has members point_pos(), point_vel(), and point_acc()
* SconeGym
* External sconegym evaluations are now queued to reduce processor load
* Checkpoints (.pt) are now evaluated in the background, with additional configuration options
* Improved display of sconegym results in Results Browser
* Added option to evaluate multiple .pt files by right-clicking on a selection
* Coordinates
* Coordinate slider number boxes are no longer clamped to ranges
* New option file.playback_start, for setting the default playback start time
* The Reset Coordinates button now reverts all coordinates to their default values instead of zero
* Model Conversion Tool
* Model Conversion now provides option to keep OpenSim Body origin
* Convert to Hyfydy now unchecks 'Use pin joints' by default
* Data storage
* New data channel: simulation_frequency_average
* Data storage now has separate 'detailed muscle properties' setting
* SequentialController can now use the same controller(s) multiple times, individual parameter names can be specified using the child_names setting
* EffortMeasure now supports MuscleActivation measure
* ModelHfd option: enable_collision_between_objects
* Optimizations now use a thread pool by default (see settings -> optimizer -> evaluator)
* BodyMeasure now has 'scale' parameter to scale the magnitude of measured X, Y and Z components
=== Fixes ===
* Fixed "Assertion failure: model_" error messages
* Empty line comments (starting with ''#'') are now handled correctly
* Muscle Analysis moment arms are now derived directly from MTU length change, avoiding occasional incorrect values
* ReflexController parameter names now always respect ''symmetric = 1''
* ScriptController now writes data from child Controllers
* Contact force stiffness is now converted to Hyfydy correctly with OpenSim4 models
* Mesh color settings are now handled properly
==== SCONE 2.3.1 ====
//Released April 26, 2024//
=== SCONE Updates ===
* New examples: Model Scaling, 3D Treadmill Gait, Joint Motor Jump
* Added option to scale Hyfydy models using new ''BodyModifier'', ''MuscleModifier'' and ''ModelModifier'' (see scaling example)
* CompositeMeasure now has a setting 'use_first_non_zero_result', which makes it behave like a tiered objective function, in which subsequent child measures are only used after previous measures become zero.
* Added ''Constant'' function for ''FeedForwardController''
* Scripting Features
* ScriptContoller and ScriptMeasure can now store global values in a LuaModel, which can be accessed in other scripts acting on the same model, via ''set_custom_value()'', ''get_custom_value()'' and ''has_custom_value()''
* Added ''set_gravity()'' script function to LuaModel
* LuaFrame now supports ''set_vec3()''
=== SCONE Studio Updates ===
* Users can now right click on a .par file to directly copy it from the results browser to the current scenario folder, making it easier to initialize optimizations from previous results
* 3D Viewer updates
* Muscle visualization width can now be set to Fixed, PCSA and Dynamic PCSA (default)
* Camera positions can now be stored and retrieved using 'Control + 1-9' and '1-9'
* Clicking on a body in the 3D viewer now shows the local point coordinates
* Model Geometry folders are now automatically remembered, so that geometry loads correctly during results playback
* New viewer setting to control if joint forces and torques are in parent or child direction
* Display geometry can now be mirrored, either by finding a mirrored mesh file or mirroring a vtp on load
=== Fixes ===
* Improved detection of the main .scone file when multiple .scone files are open
* Line number column in editor window is now always at least two characters wide
* Selecting bodies with named geometry now works correctly
* Improved visibility of selected items in inactive windows
* SCONE Studio now shows a more informative error message when trying to use an OpenSim 4 model on Linux or macOS
* Show/hide contact geometries from single bodies now works correctly
* Model Conversion now correctly handles rotational joints attached to the ground
* GaitMeasure can now handle min_velocity = 0 (useful for treadmills)
* SequentialController signature is now the same as CompositeController
* Model Converter now correctly computes inertia for 3D welded OpenSim bodies
* SequentialController now corrects for child controller start time
* ModelConverter now correctly rounds down small numbers
* GaitMeasure and EffortMeasure now handle scenarios in which the ground body is moving
* Updated SconePy examples to use the latest models and settings
==== 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 gait 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 ====
//Released June 19, 2020//
=== New Features ===
* New ''Parameter View'' window that shows all optimization parameters in the current scenario.
* New ''Evaluation Report'' window that shows the measure results from the most recent evaluation.
* Context-sensitive help: pressing F1 in the scenario shows on-line help for the keyword under the cursor.
* New ''StepMeasure'' for penalizing stride length and/or step duration, thanks to **Dimitar Stanev**.
* ''GaitStateController'' can now have single-sided controllers, using the ''legs'' parameter.
* Help menu now has links for ''About...'' and ''User Forum''
* New (very useful!) text editor option: Press ''Ctrl + /'' to toggle comments for the current selection.
* ''.scone'' files now support ''%%//%%'' and ''/*'' ''*/'' style comments.
* New menu option ''Window -> Reset Window Layout'' to restore the original window layout.
* ''EffortMeasure'' now supports ''SquaredMuscleActivation''.
* ''SequentialController'' now outputs which controller is active in the AnalysisWindow, as 'active_index'. Closes #200.
* ''FeedForwardController'' now has ''include'' and ''exclude'' settings for targeting specific actuators.
* Measures now have a ''threshold_transition setting'' for gradually decreasing the measure if they approach the threshold (if any).
* ''BodyMeasure'' now uses ''direction'' and has option for magnitude.
* ''GaitMeasure'' ''base_bodies'' now use model foot bodies by default, instead of toes_l / toes_r. This will result in a slightly different outcome for existing scenarios that have no ''base_bodies'' specified.
* New command line option -b for benchmarking a scenario
* ''MimicMeasure'' now has ''average_error_limit'' and ''peak_error_limit'' options for early termination
* Option to store linear and angular momentum.
=== Updates and Fixes ===
* ''Edit -> Find'' and ''Find Next'' now also work with .lua files.
* Find Text now starts at the next occurrence. Added a hint for using F3 / Shift + F3. Closes #188.
* ''RangePenalty'' documentation now shows min and max parameters instead of 'range'.
* The ''RangePenalty'' default of (-inf, inf) now works correctly with angle types, such as in ''DofMeasure'' postion / velocity.
* When creating a video while ffmpeg is not found, an error message is shown instead of a silent exit.
* Fixed issue where loading an invalid OpenSim model could crash SCONE.
* Fixed tab order in AnalysisView tab order between filter and select checkbox.
* Error for unnamed child controllers is now warning again.
* Fixed rare invalid cycle detection in Gait Analysis.
* Fixed Lua automatic indentation when using 'for' or 'while'.
* Simulation no longer crashes when no controller is defined.
* Models are now called ModelOpenSim3 / ModelOpenSim4 to be consistent with the online help. Tutorials have been updated.
* Current optimization progress is now shown in optimization window tooltip.
* SCONE now always logs to the terminal under Linux.
* Message "Invalid scenario settings" now shows invalid setting(s) in message window.
* Gait Analysis now provides more useful error messages when loading a template.
* No longer is a restart required after selecting a different gait analysis template.
==== SCONE 1.4.0 ====
//Released March 3, 2020//
=== New Features and Updates ===
* Gait Analysis support, allowing users to extract gait cycles from simulation results, and compare gait parameters to norm data
* Scripting improvements and updates:
* Greatly improved error handling in Lua scripts, closes #184, closes #80, closes #81
* ScriptMeasure and ScriptController now support 'external_files', which can be used to add files included by a 'require' keyword. closes
* Support for automatic indentation when editing Lua files
* Renamed LuaMuscle::fiber_force() to LuaMuscle:force()
* Video output and visualization:
* Add option to automatically set resolution of a video by resizing the viewer window (floating windows only)
* Video output now supports mp4 (default), avi and mov container formats
* Added optional visualization of Body Center of Mass (COM)
* Data analysis:
* Added option to permanently 'Keep' specific graphs in the Analysis window (''Ctrl+Shift+k''), allowing easy comparison between different results
* Added option to extract specific channels to separate tab-separated file, via ''Tools -> Preferences -> Advanced''
* Added option to output relation between dof and muscle length to file, via ''Tools -> Muscle Analysis''
* Added option to show model information to the messages window, via ''Tools -> &Model Analysis''
* FeedForwardController now supports ''SineWave'', with parameterizable ''amplitude'', ''frequency'', ''phase'', and ''offset''
* Added ''initial_equilibration_activation'' parameter for to Model
* Pressing ''F2'' in Optimization Results now allows renaming files and folders
=== Fixes ===
* Fix several crashes related to scenario or script errors
* Progress window now report error message in case of flat fitness on first generation
* Fixed message "Could not find Optimizer": SCONE no longer tries to evaluate a .scone file that doesn't have the word "Optimizer" in it
* Pressing "Cancel" when asked to "Save Changes" now works correctly
* Fixed default file type when using "File -> Save As...", closes #186
* Fixed crash when trying that write to an .sto that is open in anther program, closes #185
* Fixed GaitMeasure step length and step duration reporting
* EffortMeasure Wang2012 is now guaranteed to be non-negative
* Fixed potential crashes in SconeStorageDataModel::timeValue(), SconeStorageDataModel::label() and SconeStorageDataModel::getSeries()
* Many documentation fixes and updates
* Viewer no longer gets keyboard focus after evaluating a .par file
* Double-clicking a folder in "Optimization Results" now opens the folder instead of showing an error
==== SCONE 1.3.3 ====
//Released January 7, 2020//
=== New Features and Updates ===
* Updates to ScriptController and ScriptMeasure:
* LuaBody now has support for mass(), inertia_diagonal(), closes #176
* LuaDofs can now be used as actuators, through is_actuated(), add_input(), input(), min_input(), max_input(), min_torque(), max_torque(). See online documentation for details. closes #177
* Added Lua string library to ScriptController and ScriptMeasure, closes #95
* ScriptController init function now has 'side' parameter, which denotes if the controller is for a specific side (-1 = left, 0 = any, 1 = right). closes #96
* Documentation updates
* Added support for concurrent_optimizations in CmaPoolOptimizer
* New output channels for muscles: mtu_length, mtu_velocity
* Improved performance of writing .sto output
* Added simulation statistics in output
=== Fixes ===
* StudioModel no longer crashes when objective is no ModelObjective
* Fixed crash when trying to save as an unknown file format
* Improved error message when an invalid state is entered in GaitStateController. closes #179
==== SCONE 1.3.2 ====
//Released December 10, 2019//
=== New Features and Updates ===
* Added support for displaying .obj and .stl files
* Display geometries that exist in the model folder are now automatically copied to the output folder during optimization. **To prevent excessive copies, please copy the display geometries to the shared 'geometries' folder**.
* Optimizer report now includes time, number_of_evals, evals_per_sec
=== Fixes ===
* Fixed issue causing the initial parameter file (''init_file'') of an optimization not to be copied to the output folder, making it impossible to playback optimization results that use ''init_file''
* ''GaitStateController'' now displays a proper warning message when no legs are defined in the model
* Increased maximum data output frequency to 1e6
==== SCONE 1.3.1 ====
//Released November 27, 2019//
=== New Features and Updates ===
* Support for building SCONE on Linux, many thanks to **Dimitar Stanev**
* Support for Travis-CI build integration, many thanks to **Dimitar Stanev** and **Chris Dembia**
* Added support for optimizing OpenSim models with ''ContactMesh'' contact geometry
* 3D Viewer settings are now remembered when restarting SCONE
* Added joint force visualization option to 3D viewer
* Improved support for the concept of //legs//, which is used by ''GaitController'' and ground reaction force reporting. Model-specific leg elements can now be specified through ''leg_upper_body'' and ''leg_contact_force'' parameters in OpenSim3Model. Previously, these values were hard-coded to their default values ''femur'' and ''foot''.
=== Fixes ===
* Fixed issue where duplicate external resources would cause an error during optimization
* GaitMeasure documentation of upper_body and base_bodies
* Fixed infinite loop when no suitable initial state could be found in models that define contact geometry but no contact force
* Resolved issue where SCONE could crash if a ContactGeometry for a foot body segment did not exist
==== SCONE 1.3.0 ====
//Released November 12, 2019//
=== New Features and Updates ===
* SCONE scenarios are now loaded an visualized immediately after a file is opened or saved
* Improved support for editing and optimizing more model properties (using ''Properties { ... }'') directly in the SCONE scenario. These include ContactGeometry (position, radius, etc.), Joint, and Coordinate properties. Closes #78
* Major performance improvement of the SCONE User Interface when the 3D visualizer is not actively used
* 3D viewer now supports keyboard shortcuts for orbit (''Left'', ''Right'', ''PgUp'', ''PgDn''), pan (''Shift + Arrow keys'') and zoom (''Up'' and ''Down'')
* ''Ctrl + Space'' now toggles playback
* ''Ctrl + E'' now evaluates the currently selected scenario
* Visualizer no longer uses emissive component, added ambient_intensity parameter
* SCONE Unit tests are now performed in parallel for improved performance
=== Fixes ===
* When optimizing a scenario, the //copied// versions of models and scripts are now used, so you can freely edit the originals during an active optimization
* Fixed incorrect "Please select a .scone file" error while optimizing or evaluating a scenario
* ''PieceWiseLinear'' and ''PieceWiseConstant'' functions now check if ''dt > 0''
* ''ImitationObjective'' was broken, now it works again
==== SCONE 1.2.3 ====
//Released September 13, 2019//
=== Fixes ===
* ScriptMeasure / ScriptController: Fixed issue causing contact_force(), contact_moment() and contact_point() to return zero
* ScriptMeasureJump.lua (from Tutorial 6a) now demonstrates use of body:contact_force()
==== SCONE 1.2.2 ====
//Released September 9, 2019//
=== Fixes ===
* ScriptMeasure / ScriptController: Contact forces are now accessed correctly using contact_force(), contact_moment() and contact_point()
* File Save (''Ctrl + s'') now works with .lua files (closes #77)
* Open File (''Ctrl + o'') now shows all supported file formats by default
* Jumping tutorials now explicitly maximize results
* Documentation fixes
* Minor performance enhancements
==== SCONE 1.2.1 ====
//Released July 25, 2019//
=== Fixes ===
* ScriptController and ScriptMeasure: Lua scripts now support 'require' for including other scripts located in the same folder
* FeedForwardController now supports CoordinateActuators
* FeedForwardController no longer crashes when no actuators could be found
==== SCONE 1.2.0 ====
//Released June 25, 2019//
=== New Features and Updates ===
* Contacts forces are now correctly reported and displayed in the SCONE 3D visualizer.
* Ground plane visualization now supports tilt and offsets.
* GaitMeasure takes into account ground plane slopes when detecting falling.
* 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):
* Added support store_data() for writing data to .sto and SCONE analysis window
* Improved error handling and reporting for scripts
* added body:point_pos and body:point_vel
* added functionality to LuaVec3 and LuaQuat (see reference manual)
* Added warning in folder preferences dialog to avoid network drives (issue #53)
* Pressing F5 will now evaluate the currently active scenario (if any)
* When pressing Ctrl + T or Ctrl + F5 while a .lua file is active, scone tries to open a .scone instead.
* Updated tutorials and documentation
=== Fixes ===
* All open files are now checked for modification when running a scenario
* Close current tab (Ctrl+W) now works correctly
* Jump tutorials now use correct init_file
* JumpMeasure now supports both 'body' and 'target_body', matching documentation and maintaining backwards compatibility
* Text modification detection now works properly with undo
* Text documents are now automatically focused when opened
==== SCONE 1.1.1 ====
//Released May 29, 2019//
=== New Features and Updates ===
* Added new MuscleMeasure for penalizing muscle activation, length and contraction velocity (issue #36).
* RangePenalty now supports 'mode' setting, allowing the final penalty to be the 'average' (default), 'lowest', or 'highest' of all recorded
* New measure_type in EfforMeasure: SquaredMuscleStress. This minimizes the sum of (F/PCSA)^2 for all muscles.
* Controllers now have 'name' member that is used as a prefix for all parameter names. This should prevent undesired parameter name clashes when combining controllers. CompositeController displays warning when child controllers have identical names.
* Added warning in folder preferences dialog to avoid network drives (issue #53)
* Documentation updates
* Tutorial updates
=== Fixes ===
* SequentialController now works correctly
* NoiseController more accurately handles cases where the noise STD is zero
* tutorial 6b, renamed 'gyro' to 'external balance device'
==== SCONE 1.1.0 ====
//Released May 20, 2019//
=== New Features and Updates ===
* SCONE now has a powerful new scripting interface for custom controllers and measures
* Using the lua scripting language (http://lua.org)
* Create custom controllers using ScriptController
* Create custom measures using ScriptMeasures
* Support for writing custom data to .sto and SCONE Analysis window
* The SCONE Studio editor now supports Find (Ctrl+F) and Find Next / Previous (F3 / Shift+F3)
* The .SCONE file format is now more strict:
* Comments using '';'' ''%%//%%'' ''/*'' and ''*/'' are no longer supported
* Only single line comments '#' and multi-line comments '###' are supported
* Improved unit testing
* Many documentation updates and fixes
=== Fixes ===
* Jump tutorials now use correct init_file
* Editor now handles undo/redo of document formatting as single step
* JumpMeasure now supports both 'body' and 'target_body', matching documentation and keeping backwards compatibility
==== SCONE 1.0.0 ====
//Released April 18, 2019//
=== Updates ===
* Documentation updates
* Depricated StateController, TimeStateController and SensorStateController
==== SCONE 0.22.1 BETA ====
//Released April 16, 2019//
=== Updates ===
* Documentation updates
* Updates to unit testing
* SCONE now uses OpenSceneGraph 3.4.1 (see https://openscenegraph.org)
=== Fixes ===
* SCONE now ignores the initial_load setting when a model does not have contact geometry, preventing the software from hanging.
==== SCONE 0.22.0 BETA ====
//Released April 4, 2019//
=== Updates ===
* SCONE now displays a warning dialog when a scenario contains invalid setting
* New and updated tutorials
* Added keyboard shurtcuts in SCONE viewer:
* 'r' reset viewer camera
* 'x' view model along x direction
* 'y' view model along y direction
* 'z' view model along z direction
* Improved reading and error reporting of SCONE scenarios
=== Fixes ===
* Fixed visualization of scaled OpenSim models (OpenSim3)
* Restored DATE_TIME_EXACT tag in signatures
==== SCONE 0.21.0 ALPHA ====
//Released February 13, 2019//
=== Updates ===
* New tutorials
* Improved scone scenario notation, 'type' parameter can now be omitted
* Model properties can now be set via ModelProperties
* External files can now be included using << FILENAME >>
* Improved appearance
* Added unit tests
* DATE_TIME year now uses 2 digits
=== Fixes ===
* NoiseController now works when noise sigma is zero
* Better handling of upper / lower parameter bounds during optimizaiton
==== SCONE 0.20.1 ALPHA ====
//Released January 8, 2019//
=== Fixes ===
* Issue where negative tendon lengths would cause a crash in the visualization
* Issue where simulations with a duration with a decimal point would not terminate correctly
==== SCONE 0.20.0 ALPHA ====
//Released December 14, 2018//
=== Updates ===
* Ground reaction force is now output both as normalized [gBW] as unnormalized [N] data.
* New data output: Center of Pressure (CoP) and Ground Reaction Moment [Nm]
==== SCONE 0.19.4 ALPHA ====
//Released December 6, 2018//
=== Fixes ===
* Fixed regression reading vector data
==== SCONE 0.19.3 ALPHA ====
//Released December 6, 2018//
=== Fixes ===
* When evaluating a scenario from sconecmd.exe, the average parameters are now used instead of the best, in order to be consistent with scenario test (Ctrl + T) from SCONE studio.
==== SCONE 0.19.2 ALPHA ====
//Released December 5, 2018//
=== Fixes ===
* Fixed issue reading state_init_optimization.exclude from legacy scripts
* Fixed issue where data output settings were not read when running from command-line
==== SCONE 0.19.1 ALPHA ====
//Released November 19, 2018//
=== Updates ===
* Ground plane can now be hidden
=== Fixes ===
* Fixed auto-formatting issues in scone editor
* Correctly handle transform and scale of display geometry
==== SCONE 0.19.0 ALPHA ====
//Released November 14, 2018//
=== New Features and Updates ===
* Improved support for batch processing through the command line interface
* Added setting for output video quality and video frame rate
* Example updates
==== SCONE 0.18.0 ALPHA ====
//Released October 17, 2018//
=== New Features and Updates ===
* MuscleReflex can now act with activation as source (using KA, A0 and allow_neg_A)
* 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
=== Fixes ===
* Sided reflex data in analysis output is now displayed correctly
* Invalid initial_load settings now produce a warning instead of an error
* Documentation fixes
==== SCONE 0.17.1 ALPHA ====
//Released October 12, 2018//
=== Fixes ===
* Fixed issue where settings could not be loaded the first time
* Fixed error in the Gait GH2010 example
==== SCONE 0.17.0 ALPHA ====
//Released October 11, 2018//
=== New Features and Updates ===
* Many visualization improvements
* New, more robust system for storing settings
* Example gait model updates (fixed gastroc length issue)
* Documentation updates
=== Fixes ===
* Several minor stability improvements
==== SCONE 0.16.0 ALPHA ====
//Released October 5, 2018//
=== New Features and Updates ===
* NoiseController for simulating Motor Noise
* BodyMeasure for measuring position, speed and velocity of a point on a body
* JumpMeasure now has offset on body for measuring height
* Controllers can now be defined outside Model
* Updated Examples
=== Fixes ===
* Simulation errors are now properly reported
* .par filenames are now written correctly with extremely high / low fitness
==== SCONE 0.15.0 and earlier ====
//Changes to SCONE are officially published since version 0.16.0//