Releases: ComputationalBiomechanicsLab/opensim-creator
0.5.20: Hotfix file dialog opening on Ubuntu
Another week, another hotfix 😉 . 0.5.20 fixes a segfault that occurs when opening a file dialog in Ubuntu (#993).
The segfault was due to a symbol collision between two unrelated libraries that OpenSim Creator uses. That type of bug should happen less frequently when OSC is refactored to exclusively talk to the operating system via SDL3.
0.5.19: Hotfix for STL mesh loader memory usage
0.5.19 is a hotfix release that's coming so soon after 0.5.18 because it patches a bug in the STL parser that causes models using STL meshes to consume a very very large amount of memory.
Additionally, it adds a MacOS-specific bootup icon, adds support for negative scale factors (a handy trick for mirroring meshes), makes it possible to toggle a single ContactGeoemtry
component through its is_visible
toggle, replaces the custom ExpressionBasedBushingForce
frame visualization with OSC's in-built frame visualization (which is toggle-able), and filters out any NaNed geometry coming from OpenSim (which can sometimes break OSC's hittest). See the CHANGELIST.md file for a full overview of the changes.
0.5.18: Apple Silicon support, icons, feedback when manipulating frames
Happy new year!
Santa brought me a shiny new M4 mac mini, so 0.5.18 adds native Apple silicon (Mx processor) support and tries to fix the aggressive zooming behavior (work in progress). Additionally, custom icons are now used throughout the UI, the 3D viewers try to provide some written feedback when manipulating frames, and the model-level display toggles are now also in the Display
menu, in order to make them harder to overlook (they operate separately from toggling things as hidden/shown). There's also a some nice bugfixes, such as a fix to the annoying muscle plot flickering issue (sorry about that).
Read the CHANGELOG.md file in the repository for a comprehensive overview of what has changed.
0.5.17: High DPI support, smaller installer, and various other fixes
0.5.17 is a minor release that focuses on integrating HighDPI support into OSC's various subsystems. Various engine assets and model meshes were also removed, compressed, or decimated, roughly halving the size of OSC's installers. Additionally, there's now an easier way to zero coordinates in the coordinates panel (#959), the socket reassignment popup has had a makeover (#957), and various little bugs/regressions were fixed (#958, #952).
Change highlights (see CHANGELOG.md for a full list):
- The 2D backend was updated to support HighDPI scaling (3D is WIP). This means that the
[experimental_feature] high_dpi_mode
in the configuration is now alwaystrue
. - Several (potentially, but unlikely, breaking) changes to the shared geometry/ directory and example models were made. This is to accomodate minimizing the shared geometry directory. Looking forward, model designers should prefer a model-local Geometry/ directory. See CHANGELOG.md for specific changes.
- The Coordinates panel now contains a
Pose
dropdown that exposes the ability to zero all joint coordinates in the model (thanks @tgeijten, #959). - The socket reassignment popup was given a makeover, and tries to draw more attention to the
Re-Express $COMPONENT in new frame
option (thanks @tgeijten, #957). - The "Frame Definition" workflow is now labelled as deprecated, because we anticipate that it isn't used very much. If you think otherwise, then post a comment on issue #951.
- Fixed a regression where the
Display
context menu would always be greyed out in the model editor (thanks @tgeijten, #958). - Fixed 'Wireframe' appearance causing the component's decoration to disappear, rather than showing as a wireframe (#952).
0.5.16: Muscle color scaling, smaller installer, and more documentation
0.5.16 is a patch release that focuses on improving how the software is packaged and its documentation, with a few nice-to-haves thrown in for good measure. Read the CHANGELOG.md for a full list of changes, here are some featured ones:
- There is now a Color Scaling option in the muscle coloring/styling panel, which enables auto-scaling the min/max (e.g. blue-to-red) color range based on the model-wide min/max of the chosen Color Source. This is useful for visualizing differences between muscles that are all within a tight numeric range (#933).
- The installation, building, development environment setup, and contribution guides have been moved into the documentation pages (https://docs.opensimcreator.com/), so that there's a centralized location for all documentation.
- Finished off tutorials 5 and 7 in the documentation.
- After dragging a file into OSC, the next file dialog that opens should now default to the same directory that the files were dragged from (thanks @mrrezaie, #918).
0.5.15: Preview experimental data, other UI improvements
0.5.15 adds (🪄 experimental) support for visualizing/linking experimental data, which lets users combine OpenSim models, trajectories, raw experimental data, and OpenSim tool files (e.g. ExternalLoads
) in one place. 0.5.15 also improves the UI in a variety of ways, mainly with the aim of eventually unifying previewing experimental data, model editing, and viewing simulations in one workflow.
Key features:
- A
Preview Experimental Data
workflow has been added. This is work in progress, but ultimately has a similar intent to the official OpenSim GUI'sPreview Experimental Data...
. The documentation has been updated (also work-in-progress), more details available in the CHANGELOG. - The simulator tab now has much more similar behavior to the model editor tab, in terms of supported panels. E.g. you can now view the coordinates panel while viewing a simulation.
- Viewing function curves has been improved. The function curve viewer now spawns a separate panel that can be docked in the UI, enabling plotting multiple curves and viewing them while performing other model edits.
See CHANGELOG.md for all changes.
0.5.14: `navigator` autoscroll, better rim highlighting, better force visualization
0.5.14 is a minor release with some nice-to-have improvements:
- The Navigator panel in the model editor now automatically scrolls to the selected component when selecting the component via some other panel (e.g. a 3D viewer, reported by @mrrezaie, #908)
- Added Point Forces and Point Torques visualization options, which enables drawing force vectors in their point-force form (as opposed to their reduced body-force form). This feature currently only works for ExternalForces in the model (#904) and GeometryPaths (#907).
- The Show Forces' Linear/Rotation Component option was reworded to Forces on Bodies and Torques on Bodies to reflect what's actually being shown.
- The rim highlights now more-clearly distinguish between hovered, selected, hovered+selected elements in the scene when they are overlapping (#24).
- The documentation now contains work-in-progress tutorials for the mesh warper and model warper UIs.
- The (experimental) model warping UI is now available from the splash screen. Note: it's still in development, and things may break!
0.5.13: `Force` and `Function` visualization, easier joint center placement
0.5.13 adds support for visualizing force vectors in the model editor, the ability to visualize OpenSim::Function
properties (e.g. the ActiveForceLengthCurve
of a MillardEquilibriumMuscle2018
), and easier visual joint parent/child/center placement in the model editor - along with a bunch of other smaller changes/fixes!
- The model editor's/simulator's 3D visualizers now have an experimental
Show > Forces' Linear/Rotational Component
visualization option, which adds arrows indicating how eachOpenSim::Force
in the model applies its linear/angular force component to each body in the model. This can be useful for debugging model creation orExternalForce
s - The model editor UI now has experimental support for viewing
OpenSim::Function
curves. This is currently exposed as an eye icon in the property editor panel (#695) - Selecting an
OpenSim::Joint
that hasOpenSim::PhysicalOffsetFrame
s for both its parent and child frames now shows a 3D manipulation gizmo that lets you move the joint center without moving anything else in the model (#159) - ... and much more! (see CHANELOG.md in the main repository for more information)
0.5.12: `CustomJoint` support, better output handling in simulation tab
0.5.12 adds support for adding a templated CustomJoint (i.e. a PinJoint-like joint), cleans up some of the UI buttons/menus, and fixes various little issues, such as not being able to delete outputs from the simulation screen.
- MacOS is now built using the macos-13 (Ventura) GitHub Action runner, which means that OSC will only work on Ventura or newer
- Right-clicking a 2D output plot in the simulator tab now shows a context menu with the option to export the plot to a CSV or stop watching the output (#841)
- Fixed the Save All button only showing in the output plots tab if any of the plots happens to be 1D floating-point data (it should now show when 2D data is being plotted, too, #840)
- Fixed using Save All > as CSV in the simulation tab when plotting 2D outputs (e.g. phase diagrams) wasn't exporting the 2nd dimension as a column in the CSV (#840)
- CustomJoints can now be added via the UI. They default to having a single rotational degree of freedom along the Z axis (i.e. a PinJoint-like CustomJoint). Editing a CustomJoint still requires manually editing the .osim file, though
- The simulation tab now has an Actions menu, which includes the ability to extend the end time of a simulation by some multiplication factor (2x, 4x, etc. #839)
- The chequered floor texture is now rendered with Nearest sampling, which makes it appear sharper in the foreground
- Memory usage was reduced by optimizing font loading and log message storage
- The loading bar on the loading tab is now more centered and scales with the overall window size
- Fixed "Plot Against other Output" feature not working with non-model-sourced outputs, such as the integrator's "Step Wall Time"
- The "empty" state of some panels (e.g. "nothing selected", "nothing watched") was tidied up and now shows a centered message with, where applicable, a tip for showing information in the panel
- Each plot in the Output Plots panel of the simulator tab now shows a little trash icon, to match the deletion button that's shown in the model editor tab
- The right-click menu of an output plot in the simulator tab will now show a little trash icon and the button text Stop Watching (previously, Watch Output with a tick box) to match the deletion button that's shown in the model editor tab
- The Selection Details panel that's shown in the simulator tab was cleaned up to prioritize showing property values (similar to the editor tab), followed by a toggleable outputs section (#838)
- Fixed a bug in the Selection Details panel where drawing too many output plots would cause drawing to fail
- README.md now explicitly mentions that a C++20 compiler is required to build the project
0.5.11: Wrap Objects and 2D output plots
0.5.11 adds support for adding wrap objects to a model in the model editor, along with associating the wrap object with a GeometryPath
. It also adds support for creating 2D plots, which is handy for creating phase diagrams during simulation.
- Right-clicking a 1D plot in the simulator tab now shows a
Plot Against Other Output
option, which lets you create a 2D output by combining two existing model outputs (handy for phase diagrams, etc.) - Right-clicking on a
PhysicalFrame
/Body
in the model editor now shows anAdd
menu that includes the ability to add geometry, offset frames, and wrap objects. Previously: wasAdd Geometry
andAdd Offset Frame
were shown, but now there's also the ability to add wrap objects. (#7) - Right-clicking a
GeometryPath
in the model now shows anAdd
menu that includes the ability to add aPathWrap
to theGeometryPath
, which is handy in conjunction with the above. - Added
Export > Non-Participating Landmarks to CSV
as an export option to the mesh warper - The mesh warper can now has the option to export source/destination/result meshes in OBJ format with/without surface normals (note: Simbody/OpenSim ignore this information, but it's useful if you plan on using the OBJ file in other software, e.g. Blender)
- Pressing
Ctrl/Super
andPageUp
/PageDown
now toggles between each tab. Alternatively, you can press (WindowsKey or Command) + (Alt or Option) + (Left or Right) for the same behavior (matches how MacOS apps tend to handle tab navigation) - Pressing
Space
while in the simulator screen now (un)pauses the simulation - There is now a
loop
checkbox in the simulator screen, which will cause playback to loop back from the start when playback hits the end of a simulation - Internal: more of the UI code was ported from ImGui:: to ui:: to hide an implementation detail
- Internal: Added
MeshPhongMaterial
, which is handy for graphics development - Internal: The
OutputExtractor
APIs were redesigned to support use-cases such as synthesizing outputs at runtime by combining other outputs (ConcatenatingOutputExtractor
) - Internal: The
OutputExtractor
APIs were redesigned to support emittingstring
,float
, andVec2
outputs (previously: only string/float) to facilitate 2D plotting