Skip to content

Releases: ComputationalBiomechanicsLab/opensim-creator

0.5.0: Workflows, frame definition, and mesh warping

11 Jul 18:07
Compare
Choose a tag to compare

0.5.0 adds support for "workflows", and implements two of them: frame definition and mesh warping.

Overview

The frame definition workflow makes it easier to define locations/rotations/frames on meshes according to ISB-style relationships. For example, it has support for defining landmarks, midpoints, edges between points, cross product edges, and frames that are defined w.r.t. those points/edges. This enables users to visually place frames on bone scans according to ISB rules with visual feedback and on-the-fly calculations, which should be useful to model builders.

The mesh warping workflow introduces a UI for the Thin Plate Spline (TPS) algorithm. The UI asks users to pair landmarks from two separate meshes in order to create a TPS warping kernel. The warping kernel can be then be used to warp any point in 3D space. We anticipate that this will be a useful tool for performing morphology-driven model scaling and creating blended models.

The "workflows" feature, including the frame definition and mesh warping workflows, are work in progress. If you think something is missing, or broken, report it on the issues page. We anticipate that interesting features from each specific workflow (e.g. the calculate feature in the frame definition UI) will gradually be ported to existing UIs (e.g. the model editor).

Other Highlights

  • 3D renderers are now correctly gamma-corrected, which makes the visualizations look nicer (#600)
  • Added support for editing int property values, which is handy for some component types (e.g. PrescribedController, #704)
  • Selected elements (e.g. when selecting a frame in an add component dialog) are now easier to differentiate from not-selected elements in the UI (thanks @aseth, #677)
  • Various internal changes were made to OSC to support generalized workflow UIs and splitting the OSC engine from OpenSimCreator (e.g. for creating other tooling UIs)

See CHANGELOG.md for a full list of changes.

0.4.1: Geometry path editing, minor bugfixes, and build improvements

13 Apr 12:20
Compare
Choose a tag to compare

0.4.1 is a patch release that fixes some bugs that were found in 0.4.0. The only noteworthy user-facing feature is that GeometryPaths can now be edited, giving users a new way to define muscles and other path-based geometry (e.g. PathSpring).

Highlights:

  • Added basic support for editing GeometryPath properties (i.e. moving/deleting/adding/editing points in paths), so that the GUI supports adding Ligaments and PathSprings (#645, #522, #518, #30)
  • Fixed a segfault that would occur when adding a body with an invalid name. It now throws an exception and prints an error to the log instead (thanks @AdrianHendrik, #642)
  • Fixed the manipulation gizmo rotation operation being broken when rotating scene elements (mostly, when rotating PhysicalOffsetFrames - thanks @AdrianHendrik, #642
  • Fixed deleting a backing osim file while editing it via the model editor no longer causes the editor tab to close with a "file not found" error message (thanks @JuliaVanBeesel, #495)
  • ... plus 25 other changes, many of which are minor, or are internal and primarily serve the purpose of making OSC developers feel fuzzy inside (see the CHANGELOG for a full list)

0.4.0: More visualization options, 3D manipulators, and icons

07 Mar 05:47
Compare
Choose a tag to compare

0.4.0 focuses on improving the 3D visualizer in the model editor tab by adding things like custom visualization options, 3D manipulation gizmos, and graphical improvements. Overall, 0.4.0 contains ~50 changes over ~200 commits. See the CHANGELOG for more details.

Highlights:

  • Added 'Lines of Action (effective)' and 'Lines of Action (anatomical)' rendering options to the model viewer
    (#562). They can be seperately toggled for muscle insertion/origin (#577). Clicking a line of action selects
    the associated muscle (#571). Thanks to @modenaxe for open-sourcing https://github.com/modenaxe/MuscleForceDirection
  • Stations (#85), PathPoints (#85), PhysicalOffsetFrames (#583), WrapObjects (#588), and
    ContactGeometry (#596) can now be translated (or rotated, #584) in a model editor viewport with a
    clickable gizmo
  • The editor and simulator screens now have toolbars at the top containing common actions (e.g. undo/redo,
    save, load, scrub the simulation, etc.)
  • OSC's logo was updated to make it visually distinct from OpenSim, and new icons have been added for toggling
    frames, markers, contact geometry, and wrap surfaces
  • Shadow rendering is now default-enabled (#489). The scene light's slope/height no longer tracks along with the camera, which makes the shadow angle look a little bit better (thanks @tgeijten, #549)
  • The "Reload [Model]" button now forces OSC to also reload any associated mesh files, which is handy when seperately editing mesh files in something like Maya/Blender (thanks @JuliaVanBeesel, #594)
  • Hotfixed a bug from OpenSim where inertia edits were not applied to the model (#597, related: opensim-core/#3395, thanks to @jesse-gilmer for spotting this :))
  • ... and many other changes (see the CHANGELOG)

0.3.2: Minor updates and bugfixes

09 Jan 13:06
Compare
Choose a tag to compare

0.3.2 is a patch release that contains a bunch of bug fixes, along with some minor quality-of-life improvements.

0.3.1 is missing because a crash was spotted last-minute (#418). 0.3.2 fixes that bug, along with fixing other things, and includes some minor quality-of-life improvements. See the CHANGELOG for gory details.

Highlights:

  • The add component dialogs now print addition errors inside them, rather than relegating the error message to the log
  • Clicking path actuators or frames in the 3D visualizer selects the actuator/frame, rather than the related geometry component
  • You should be able to add any type of OpenSim component without a crash (fingers crossed: previously, some components contained edge cases that could cause a crash)
  • Rendering performance has been improved by 10-30 % on typical machines
  • The socket assignment UI is more consistent in its behavior during erroneous assignments
  • Vec3 editors are color-coded
  • The 3D visualizer in the editor now also supports rendering shadows, which you can enable via the options menu. That option will be default-enabled in later releases - give it a try!
  • .... and a bunch of other little changes (see the CHANGELOG)

0.3.0: Live muscle plotting, output watches, and better graphics

15 Sep 07:18
Compare
Choose a tag to compare

0.3.0 is large release that contains a variety of changes. See the CHANGELOG if you'd like to know all of them.

Here are some highlights:

  • NEW: "Muscle Plotting" (right-click a muscle, "Plot vs. Coordinate") is now greatly improved. It live-plots a muscle curve whenever edits are made, saves previous curves, enables users to lock previous curves, and revert to previous model versions, along with support for CSV import/export (#352 #346 #354 #355 #353 #365 #364 #363 #366 #362 #361 #367 #359 #370 #368 #371 #230 #231 #394 #409 #398 #395).

  • NEW: "Output Watches" panel in the editor. You can now right-click anything in the 3D editor, hierarchy, etc. and watch any associated OpenSim output of that thing (e.g. muscle stiffness, model kinetic energy, etc.). Editing the model automatically updates the output watch's value (#356).

  • The 3D rendering backend was entirely rewritten. In general, 3D renders should look better, and have better performance. Please report any funky behavior/crashes to the GitHub issues page.

  • The backend was upgraded from OpenSim 4.3 to OpenSim 4.4. In general, it is a little bit faster and is more stable in multithreaded contexts (#330)

  • You can now show/hide model components more easily in the editor. The behavior is similar to OpenSim GUI (#415).

  • The mesh importer has more translation options (e.g. "translate to mass center", #88, #92).

  • There is now basic support for exporting any 3D viewport's content to a .dae file, for rendering the scene in external software, such as Blender. The feature is hidden away in each viewport's scene menu for now, until it's improved (#314)

  • The new rendererer is more resilient to meshes that that have inconsistent triangle windings or normals (#318). This is particularly useful if you work with custom meshes built from (e.g.) X-ray data.

  • The mouse is handled more consistently in the editor screen's panels. Left-click usually selects stuff. Right-click usually opens a context menu (previously: panels like the hierarchy panel behaved differently)

  • Some (effectively) "crash the UI" buttons have been temporarily removed until the backend can handle the edge-cases better (#329 #331). This also applies to the mesh importer (#331).

  • The "Add Component" menus in the editor have been put into the main menu and right-click context menu. They are now cleaner and contain fewer duplicated entries (#312)

  • You can now visualize OpenSim Scapulothoracic joints by ticking a checkbox in a 3D viewport's "scene" menu (#334)

  • Plus a bunch of other UX improvements, stability improvements, crash hardening, etc. changes (see CHANGELOG.md)

0.2.0: Tabbed interface and more

04 Jul 14:15
Compare
Choose a tag to compare

Tabbed interface support, alternate muscle visualization options, OpenSim 4.3 support, live muscle plotting, simulation performance measurements, and a variety of other improvements.

OpenSim Creator 0.2.0 contains all of the features that have been rolled out since 0.1.0 (6th Feb) and beyond, including the new tabbed interface but, unlike smaller releases, this release has been QAed against a more comprehensive series of checks including (e.g.) things like exercising all memory allocations with libASAN. Any user-facing documentation has also been updated to reflect any UI changes that have been implemented since 0.1.0.

Users should find that the new (tabbed) UI is easier to work with - especially when running multiple simulations or working with multiple models. Live muscle plotting support, along with coordinates now being saved to the model as actual model edits, should make it much easier to tweak a model's parameters + configuration. Alternate muscle visualizations, including the ability to view tendons, should also be useful for users that need to tweak (e.g.) tendon lengths.

Future releases are likely to focus on pushing model-editing, including in-editor support for editing muscle paths. There is also a desire to expand the live-plotting feature with support for importing muscle curves from 3rd-party sources, and to live-plot any model output (e.g. marker position, acceleration), rather than only muscle outputs (e.g. moment arm, activation).

See the CHANGELOG for a comprehensive list of all changes.

0.1.6: Tendon Visualization, Muscle plotting, OpenSim 4.3

12 May 09:17
Compare
Choose a tag to compare

New muscle visualization options, experimental support for live muscle plots, and OpenSim 4.3 support:

  • Muscle tendons can now be visualized in the 3D viewer (#165):

    • You can try this out by experimenting with the new dropdown menus that were added to the Options menu,
      available in each 3D viewer panel
    • Muscle decoration style can now be changed (e.g. to SCONE-style) in the 3D viewer's options menu (#188)
    • Muscle coloring logic can now be changed in the 3D viewer's options menu (#189)
    • Muscle thickness logic can now be changed (e.g. to PCSA-derived) in the 3D viewer's options menu (#190)
  • (EXPERIMENTAL) There is now partial support for plotting muscle parameters (e.g. moment arm, pennation angle)
    against a particular coordinate (e.g. knee_angle_r) in the model editor (see #191):

    • The easiest way to do this is to right-click a muscle Add Muscle Plot vs and then select a coordinate (#196)
    • Alternatively, add a new plot panel via the Window menu in the editor's main menu
    • You can right-click a plot to change what it's plotting
    • You can left-click a plot to change the coordinate's value (#195)
    • The plot will auto-update whenever either the model is edited or a state is edited (e.g. by changing a
      coordinate value). It will also update if the model's backing file changes (e.g. because it is being
      edited in a third-party editor)
    • You can have multiple muscle plots open simultaneously (related: #191)
    • Plot data is computed on a background thread (#200)
    • See issue #191 on ComputationalBioMechanicsLab/opensim-creator for general progress on this feature
  • You can now change how muscles are colored by the backend (#189):

    • Previously, muscles were always colored by the OpenSim backend (i.e. by activation)
    • You can now also color by activation, excitation, force, or fiber length
    • See the Options menu of a 3D viewer in the model editor for more information
  • OpenSim was updated to v4.3 (#192)

  • Fixed a bug that prevented model rollbacks from working correctly

0.1.5: Minor bugfix release

12 Apr 11:44
Compare
Choose a tag to compare
  • Fixed thread race that causes visual glitches when running forward-dynamic simulations on models containing wrapping surfaces
  • Fixed AABB/BVH visualization being broken in 3D model viewer panels
  • Updated Mac OSX application icon to match other platforms
  • Added googletest unit testing support (internal)

0.1.4: STO file support and more components (+other stuff)

12 Apr 11:31
Compare
Choose a tag to compare

This release adds support for STO file loading and the ability to add a wider variety of components via the editor, plus a variety of other nice-to-have changes - plus some bugfixes to things we found during the model-building workshop. This release also includes changes from 0.1.3, which was not released, because it contained a crash we found internally.

See CHANGELOG.md for a comprehensive list of all changes, but here's a few of them:

  • A simulation can now be loaded from an STO file
  • You can now add a much wider range of components in the editor UI (#154):
  • Added a "Want to save changes?" prompt when closing the editor (#72)
  • Simulation playback can now be paused/resumed (#16)
  • All output plots, including meta plots (e.g. number of integration steps), are now scrubbable and can be saved as a CSV
  • Switching between grab(G)/rotate(R)/scale(S) is now displayed as icons in the mesh importer (#65)
  • Added reorient 90 degrees option in the mesh importer context menu (#160)
  • Output plots are now rendered with ImPlot, which should make them easier to view and make them pop less while a simulation is running
  • Hovering over a body in the UI now shows where the center of mass is as a black sphere (#60)
  • Added option for switching between degrees/radians input when editing 'orientation' properties (#55)
  • Renamed "Open" and "Save" in the mesh importer to "Import" and "Export" (#143)
  • Fixed scale factors property being ignored for some types of OpenSim geometry in the osim editor (#141)
  • Fixed an edge-case segfault that happened when editing the properties of a body that was synthesized by OpenSim to break a graph cycle (#156)

0.1.2: Hotfix release

16 Feb 19:12
Compare
Choose a tag to compare

This release fixes a bug in the "Convert to OpenSim Model" part of the mesh importer screen.

The bug was causing scenes containing scaled meshes to incorrectly move the meshes around during the conversion step (see #153). This was due to some bad math in the export converter (a diff is attached to the issue).

The "Uninstall failed" bug (see #131) bug is still present. If you are re-installing OpenSim Creator to update your version, just click "no" to the "uninstall previous version?" prompt. The new version will still install correctly.