Recent Releases of opensim-creator

opensim-creator - 0.5.25: Hotfix broken mesh importer and MacOS keybinds

0.5.25 is a hotfix release that fixes some keybind regressions that 0.5.24 introduced (sorry about that!). It also includes a few other improvements/fixes:

  • Mouse wheel scrolling was improved on MacOS (again) and should now feel much closer to the other OSes.
  • Fixed MacOS keybindings incorrectly using CTRL in places where COMMAND should've been used (#1069).
  • Fixed keybindings not working in the mesh importer workflow (#1072). Unfortunately, this reverses the "keyboard navigation between elements in the UI is now easier" feature that was introduced in 0.5.24.
  • Models that contain muscles that cannot be equilibrated can now be loaded. Instead of halting with an error message, the system will log a warning message mentioning the issue and continue as normal (thanks @modenaxe, #1070).
  • The 'Add' context menu for an OpenSim::GeometryPath now contains an "Add Path Point" option, which operates the same way as the same option on OpenSim::PathActuators (#1061).
  • The "Preview Experimental Data" workflow now filters out data series with names that are incompatible with OpenSim::Component's naming conventions (thanks @alexbeattie42, #1068).
  • Fixed "Preview Experimental Data" crashing when it loads invalid data. Instead, it now emits an error message to the log (thanks @alexbeattie42,#1068).

- C++
Published by adamkewley 11 months ago

opensim-creator - 0.5.24: Improved context menu, better mouse hit-testing

0.5.24 is a regular monthly release that improves the model editor's context menu, makes it easier to click muscle path points, adds a few extra contextual actions, and mostly finishes the first alpha version of the model warper documentation.

Key points:

  • The component context menu was redesigned for consistency, and is able to add any component as a child of any other component, which can be useful when building complex models hierarchically.
  • Mouse hittesting in the 3D viewport now uses an algorithm that prioritizes subcomponents over parent components in the case where the mouse ray intersects multiple components, which makes it easier to (e.g.) select muscle points that are surrounded by fibers (#592).
  • The osc.toml configuration file now supports a model_editor/monitor_osim_changes boolean option, which can be used to explicitly tell the OpenSim model editor whether or not to auto-reload the file when it changes on disk (defaults to true; thanks @mrrezaie, #1000).
  • Attempting to import an incorrect .osim file into the mesh importer now results in a log error message rather than a crashing exception (thanks @davidpagnon, #1050).

See CHANGELOG.md for a full list of changes.

- C++
Published by adamkewley 11 months ago

opensim-creator - 0.5.23: UI Cleanups/Improvements, Customizable Mesh Warping

0.5.23 is a regular monthly release that includes a variety of little UI cleanups, improvements to the mesh warper, and documentation for adding StationDefinedFrames to models.

Top-level summary:

  • Parts of the model editing UI were cleaned up and a few nice-to-haves were added. Namely, the Add menu now has a search bar for searching through all available OpenSim components and the Add Component popup has a cleaner layout with nicer search functionality for sockets. The property editors and associated icons were also cleaned up and more clearly labelled.
  • Features from the (currently, experimental) model warper were backported to the existing mesh warper workflow. E.g. you can now separately toggle scale/rotation/translation/warp and prescaling via the mesh warping UI.
  • A documentation page for StationDefinedFrames were added to OSC's documentation. They are a prerequisite for creating models that can be scaled non-uniformly (documentation for the model warper is next on our list).

The release contains a variety of (other) changes (19 in total), which you can read in CHANGELOG.md.

- C++
Published by adamkewley about 1 year ago

opensim-creator - 0.5.22: Bugfixes, Ubuntu 20.04 dropped

0.5.22 is primarily a bugfix release, the biggest changes are:

  • It drops support for Ubuntu 20.04: Ubuntu 20.04 LTS ended 23rd April 2025, which means that other systems (e.g. GitHub actions, which OSC uses to build releases) no longer support it.
  • It internally handles file dialogs differently (it now uses SDL3, which decouples it from GTK on Linux). This means that the file dialogs will behave a little bit differently, please report any issues.
  • OpenSim::Forces now expose their records (e.g. OpenSim::Force::getRecordLabels) as plottable/watchable outputs, which makes (e.g.) debugging forces easier.

The most important bugfixes are:

  • The is_visible flags on Appearance editors now work again (#1028).
  • Plotting two 1D outputs in a 2D plot was fixed (previously, it was always plotting the first against itself, #1025)

See CHANGELOG.md for more details

- C++
Published by adamkewley about 1 year ago

opensim-creator - 0.5.21: 3D HighDPI, better error handling, smaller installer

0.5.21 is a minor release that drops the demo tabs from the installer, making it ~5 MB smaller. It also adds support for HighDPI 3D rendering, which can be customized via the new graphics.render_scale option. The mesh importer also now has a reload meshes button, which can be handy for editing meshes in Blender while also importing them into a new OpenSim model.

Apart from that, there's a few bugfixes, and the production/development pipeline has been generally updated to accomodate new features, release methods, and so on.

As always, all changes are listed in the CHANGELOG.md file!

- C++
Published by adamkewley over 1 year ago

opensim-creator - 0.5.20: Hotfix file dialog opening on Ubuntu

Another week, another hotfix :wink: . 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.

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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.

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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.

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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 always true.
  • 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).

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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).

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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's Preview 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.

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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!

- C++
Published by adamkewley over 1 year ago

opensim-creator - 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 each OpenSim::Force in the model applies its linear/angular force component to each body in the model. This can be useful for debugging model creation or ExternalForces
  • 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 has OpenSim::PhysicalOffsetFrames 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)

- C++
Published by adamkewley almost 2 years ago

opensim-creator - 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

- C++
Published by adamkewley about 2 years ago

opensim-creator - 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 an Add menu that includes the ability to add geometry, offset frames, and wrap objects. Previously: was Add Geometry and Add 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 an Add menu that includes the ability to add a PathWrap to the GeometryPath, 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 and PageUp/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 emitting string, float, and Vec2 outputs (previously: only string/float) to facilitate 2D plotting

- C++
Published by adamkewley about 2 years ago

opensim-creator - 0.5.10: Add StationDefinedFrame, fix scrolling bug in mesh importer

0.5.10 adds provisional support for OpenSim::StationDefinedFrame, which has now been added to OpenSim and should become widely available with the release of OpenSim 4.6. It also adds more options to the Calculate - primarily so that the Fit Analytic Geometry to This can be used to extract similar values to external scripts (e.g. the shape fitters from 10.1017/pab.2020.46).

It also fixes a scrolling bug in the mesh importer that slipped into 0.5.9 - sorry about that

Notes:

  • Updated opensim-core to a version which includes StationDefinedFrame support:
    • Upstream feature: https://github.com/opensim-org/opensim-core/pull/3694
    • They let you define an OpenSim::PhysicalFrame from stations/landmarks/markers. This more closely matches ISB standards and the way in which people tend to build anatomical models.
    • Because they are an OpenSim::PhysicalFrame, they can be used a joint frames, offset frames, etc.
    • BEWARE: EXPERIMENTAL FEATURE:
    • Upstream OpenSim (+GUI) have not yet released this feature, so models that use it cannot be opened outside of OpenSim Creator (yet), which is why it's only shown in the "Custom OSC components" section. It will become widely available in the next OpenSim release (v4.6)
    • OpenSim Creator's tooling support for the feature (visualization, documentation, etc.) is currently limited, but we plan to improve it over time
  • The Calculate menu for Ellipsoids and Frames now contain additional options, such as being able to ask for the axis directions, so that users can get similar information out of shape-fitted geometry as they would from external scripts
  • The warping algorithm used by the mesh warper and model warper (TPS) now lerps between "not warped" and "fully warped", rather than recomputing the warp kernel based on blended input data:
    • Practically, this means that setting the blending factor to zero guarantees that the warped mesh is exactly the same as the input mesh (previously, it would try to solve for the input positions and sometimes produce a non-identity solution when given a small number of input landmarks)
  • Fixed mesh importer scrolling calculation for the new camera manipulator widget causing unnecessary (+annoying) scrolling
  • Fixed muscles not casting shadows after the surface rendering change
  • There is now a minor delay when mousing over entries in the Add menus in the model editor
  • Internal: google/benchmark, ocornut/imgui, sammycage/lunasvg, nothings/stb, marzer/tomlplusplus, and martinus/unordered_dense were all updated to their latest releases

- C++
Published by adamkewley about 2 years ago

opensim-creator - 0.5.9: improved rendering, camera manipulation, and socket assignment

0.5.9 is a minor release that:

  • Makes rendering more consistent with OpenSim GUI (wireframe support, etc.)
  • Adds support for smooth-shaded normals, giving model builders some control over shading
  • Puts the camera axes top-left and makes them clickable, which is similar to Blender/Godot
  • Adds better socket documentation when adding a component to the model

It also includes a Graphviz (.dot) exporter for the model's socket/ownership graph, which is handy for inducing anxiety. You definitely shouldn't use it to export a complicated model to https://dreampuf.github.io/GraphvizOnline/ . If you do that (you shouldn't), don't delete lines to get over the memory limits, and definitely don't zoom in :wink:

See CHANGELOG.md for a more comprehensive list of changes.

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.8: Custom components, easier PoF translation, and other fixes

0.5.8 makes moving PhysicalOffsetFrames a little bit easier when they're the child of a Joint, and adds user-facing support for OSC-specific OpenSim::Components (explained below). It also contains a few minor bugfixes, plus a variety of internal engine changes.

  • Editing the position of a PhysicalOffsetFrame that's a child of a Joint now behaves more intuitively (rotation still sucks, though)
  • OSC-specific experimental OpenSim components are now exposed to the user via the model editor. So, as a user, you can now (e.g.) manually add a PointToPointEdge to your model in order to measure the distance between two points (previously: PointToPointEdge was only available through the Frame Definition UI)

Beware: OSC's custom/experimental components are incompatible with OpenSim. The intention of this feature is to provide users with a way to test rapidly-developed OSC components that may, with enough interest, be upstreamed to opensim-core.

  • The available socket options when adding a new component to the model should now show all valid options, rather than just showing frames in the model (#820)
  • The camera's location/fov is now editable in degrees
  • The camera's panning behavior is better when viewing a 3D scene via a viewport with a very skewed aspect ratio (e.g. when the model visualizer is tall and narrow, or short and wide)
  • Updated Sphinx to version 7.2.6, and the associated sphinx-book-theme to 1.1.0, which makes the documentation look a little nicer
  • Internal: the engine now uses strongly-typed angles (osc::Radians and osc::Degrees) to reduce unit mismatches in the source code
  • Internal: the test suite now automatically exercises all available UI tabs (mesh warper, model editor, etc.) tabs to ensure they are always working
  • Internal: all header files are now suffixed with .h to match most libraries etc. (previously: .hpp)

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.7: Fix disabled geometry pathpoint editor popup

0.5.7 is purely a bugfix release. The main fix is that the GeometryPath editor popup has now returned. It dissapeared because opensim-core now supports function-based muscle paths.

  • Fixed PathSpring components ignoring the scene scale factor (#816)
  • Fixed a bug where the property editor for a muscle's geometry path was not rendering the customized muscle path point editor popup (#815)
  • Fixed PathSpring not using it's GeometryPath's color correctly in OpenSim (#818, upstream: opensim-core/#3668)
  • Internal: ImGui now renders its content via the oscar graphics API, rather than via its own internal OpenGL backend
  • Internal: oscar pure-virtual interface classes are now prefixed with I (e.g. ITab, IPanel, etc.)
  • Internal: OpenSimCreator pure-virtual interface classes are now prefixed with I (e.g. IOutputExtractor, ISimulation, etc.)

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.6: CSV point import/export and mesh warper improvements

Happy holidays!

0.5.6 tries to make it easier to get 3D datapoints in/out of various workflows. This improves interop between mesh-based workflows (e.g. the mesh warper) and model-/scene-based workflows (osim editor, mesh importer). Alongside those changes, the mesh warping workflow was improved with better UX and more data import/export options.

0.5.6 also includes QoL changes that (e.g.) make .osims load faster, tooltips less annoying, and filepaths easier to copy+paste.

Highlights

  • Added Tools -> Import Points to the osim editor workflow
  • The Import Stations from CSV popup in the mesh importer is now more permissive in what it accepts
  • Fixed a bug where muscle points could not be selected via a 3D viewport if the user is rendering muscles with tendons+fibers (#706)
  • Fixed meshes being double-loaded, which should cause .osim files should load faster
  • Many QoL changes to the mesh warping workflow

See CHANGELOG.md for a detailed list (approx. 22 items)

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.5: MacOS crash hotfix

0.5.4 is purely a bugfix release that fixes a crash that can happen when booting OSC on MacOS (see #811, thanks @SAI-sentinal-ai for reporting it):

  • Fixed a crash on MacOS where a std::sort algorithm usage did not strictly comply with Compare (thanks @SAI-sentinal-ai, #811)
  • osc::App now writes the osc executable's directory and user directory to the log (handy for debugging, #811)

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.4: Shape fitting and mesh importer utils

0.5.4 adds support for basic shape fitting into the model editor, some nice-to-have orientation/translation actions in the mesh importer, and some bugfixes.

  • Stations are now selectable when using the Translate > To (select something) and Reorient > $axis > To (select something) actions in the mesh importer (thanks @emmccain-uva, #796)
  • The mesh importer now has an option to Reorient > $axis > Along line between (select two elements), which is sometimes useful (esp. in conjunction with importing stations, #149) for defining joint/body frames (thanks @emmccain-uva, #797)
  • Right-clicking a mesh in the model editor now shows an Export menu, enabling re-exporting of the mesh w.r.t. a different coordinate system (#799)
  • Right-clicking a mesh in the model editor now shows a Fit Analytic Geometry to This option, which will fit the chosen analytic geometry to the mesh's vertices (#798).
  • If a popup in the editor window throws an exception then the editor window will now try to close the popup, rather than fully erroring out to an error tab (thanks @AdrianHendrik, #800)
  • Fixed a bug where trying to add a ConditionalPathPoint, Marker, PathPoint, PhysicalOffsetFrame, or Station component via the Add menu would crash the tab with a frame-related error message (thanks @AdrianHendrik, #800)
  • Internal: the codebase now contains shape-fitting algorithms for fitting a sphere, plane, or ellipsoid analytic geometry to mesh data. The algorithms were written to closely match the shape-fitting codebase that came with "P.Bishop et. al, How to Build a Dinosaur, doi:10.1017/pab.2020.46" (#798)

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.3: Persistent viewport settings and import stations from CSV (+other changes)

0.5.3 adds support for persisting 3D viewport options between boots of OSC, which is handy if you have preferred visualization options that you typically always toggle on/off. It also adds support for importing stations into the mesh importer from a CSV (File > Import Stations from CSV in the mesh importer workflow), which is useful for importing (parts of) a muscle path into a mesh importer scene.

Change highlights:

  • 3D viewport settings (e.g. muscle styling, show/hide the floor, background color) are now persisted between boots of OSC via a per-user configuration file (thanks @tgeijten, #782)
  • The right-click step size menu for scalar property editors now includes suggestions for masses (it assumes the property is expressed in kilograms)
  • Added Import Stations from CSV to the mesh importer's file menu, which provides a way of importing stations into the mesh importer scene from a CSV file (thanks @emmccain-uva, #149)
  • Hovering over a recent or example osim file in the home screen now displays the full name of the file in a tooltip (thanks @AdrianHendrik, #784)
  • Editors for component double properties (almost all scalar properties) now have - and + stepping buttons (previously: the steppers were only available for Vec3 properties; thanks @tgeijten, #781)
  • The Show, Show Only This, and Hide buttons in the component context menu are now disabled if the clicked component, and all its children, have no Appearance property (#738)

See CHANGELOG.md for a full list of all changes.

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.2: Easier positional editing and bugfixes

0.5.2 adds a few nice-to-haves when editing components' positions w.r.t. other frames, or when re-expressing components in a new frame. It also addresses a few crashing bugs that were introduced during 0.5.1's quite aggressive refactor (sorry about those).

Highlights

  • The Reassign Socket popup now has a Re-express $COMPONENT in chosen frame checkbox, which users can tick to prompt OSC to automatically recalculate what the location/position/orientation properties of the component should be in the new frame, in the current scene state, such that it does not move or rotate. This is handy for (e.g.) re-socketing muscle path points onto different bodies, changing joint topologies, etc. (#326)
  • Property editors for Stations, PathPoints, and PhysicalOffsetFrames now also display a user-editable (parent frame) dropdown, which lets users select which frame the location/translation properties of those components are edited in (#723) Sliders in the coordinate editor now look much more like "typical" sliders, and are now entirely disabled when locked (#36)

And 35 other changes! See the CHANGELOG for the full list.

- C++
Published by adamkewley over 2 years ago

opensim-creator - 0.5.1: Export Points and Non-Participating Warping Landmarks

0.5.1 adds an "Export Points" tool to the osim editor and support for non-participating landmarks in the warping UI.

The exporter enables users to export any point-like quantity in an OpenSim model (e.g. muscle points, stations, markers, and frame origins) with respect to a user-chosen frame as a CSV file.

The non-participating landmark feature enables users to import point data from a CSV file as landmarks that hitch a ride through the warping kernel without participating in how the warping kernel is computed. The resulting warped points can then be re-exported as a CSV file.

  • Added "Export Points" tool, which lets users export points in a model w.r.t. some frame as a CSV (#742)
  • Added support for non-participating landmarks in the mesh warper (#741)
  • Fixed Undo/Redo hotkeys not working in the warping workflow tab (#744)
  • The upper input size limit on many text inputs was removed

- C++
Published by adamkewley almost 3 years ago

opensim-creator - 0.5.0: Workflows, frame definition, and mesh warping

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.

- C++
Published by adamkewley almost 3 years ago

opensim-creator - 0.4.1: Geometry path editing, minor bugfixes, and build improvements

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)

- C++
Published by adamkewley about 3 years ago

opensim-creator - 0.4.0: More visualization options, 3D manipulators, and icons

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)

- C++
Published by adamkewley about 3 years ago

opensim-creator - 0.3.2: Minor updates and bugfixes

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)

- C++
Published by adamkewley over 3 years ago

opensim-creator - 0.3.0: Live muscle plotting, output watches, and better graphics

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)

- C++
Published by adamkewley over 3 years ago

opensim-creator - 0.2.0: Tabbed interface and more

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.

- C++
Published by adamkewley almost 4 years ago

opensim-creator - 0.1.6: Tendon Visualization, Muscle plotting, OpenSim 4.3

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

- C++
Published by adamkewley about 4 years ago

opensim-creator - 0.1.5: Minor bugfix release

  • 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)

- C++
Published by adamkewley about 4 years ago

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

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)

- C++
Published by adamkewley about 4 years ago

opensim-creator - 0.1.2: Hotfix release

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.

- C++
Published by adamkewley over 4 years ago

opensim-creator - 0.1.1: Hotfix release

This is a patch update to the 0.1.0 alpha release. It fixes a couple of edge-case bugs that can happen in the osim editor.

  • Fixed exception-handling code in the UI to automatically recover the model if a property edit results in an exception being thrown by OpenSim/SimTK (e.g. because the resulting model cannot be assembled - see #132 )
  • Fixed a minor bug where having a component selected in the model editor, clicking the textbox to edit its name, followed by selecting something else fails to update the text input to the new selection's name (note: it does not change the component's name - it's a display bug)

- C++
Published by adamkewley over 4 years ago

opensim-creator - 0.1.0: Public alpha release

This public alpha release is intended for use by researchers as part of OpenSim Creator's first model-building workshop event.

It contains a variety of fixes, and features from 0.0.8 that are intended to make the UI more stable and useful. Things like documentation, tutorials, and a variety of UX features. See the issues (closed) list for more details on what's changed, or the CHANGELOG (once updated :wink:).

- C++
Published by adamkewley over 4 years ago

opensim-creator - 0.0.8: Variety of features and bugfixes release

This is a release of 0.0.8. Previous releases can be found at my private repo (here). Main features for 0.0.8:

  • A variety (>50) of little UX improvements were made to the mesh importer
    • Over the 0.0.8 pre-release (here), users can now also assign multiple meshes to a body by multi-selecting them and pressing A
    • Imported bodies also now have a nonzero inertia. Instead they have an inertia vector that is ~1 % of the mass of the body in a diagonal direction
  • Any weird typos and confusing sections in the tutorial were cleaned up

- C++
Published by adamkewley over 4 years ago

opensim-creator - 0.0.5: General UX improvements and new installation location

This release contains a wide variety of general UX improvements which were identified during a model-building hackathon. It also changes the installation location of OpenSim Creator in Windows to ensure that newer versions overwrite older ones.


Important: The default installation location of OpenSim Creator has changed.

In general, the new location(s) do not contain a version number and installing newer versions of OpenSim Creator will overwrite the older versions. The reason for doing this was to prevent the confusion caused by allowing multiple versions to be installed concurrently, which would create multiple start menu shortcuts, etc. and make it difficult to know whether the latest version is being used after an upgrade.

  • e.g. Windows. Old location = C:\Program Files\osc ${version}. New location = C:\Program Files\OpenSimCreator\

You should manually uninstall older versions of OpenSim Creator to ensure that you are always running the latest version.


Changelog:

  • 3D viewer panels now have a close button
  • 3D viewers now have zoom in and zoom out buttons under scene, to help users that can't scroll easily
  • Setting the mass in the add body popup now correctly sets the mass of the added body
  • Plotting an output subfield (e.g. angular_velocity.x) now correctly displays it in the output plots and output CSV export
  • The about tab now contains a shortcut to open OpenSim Creator's installation directory
  • The view tab now contains a shortcut to open the currently-open osim's file directory. Handy for viewing adjacent files, like STOs and Geometry.
  • All output plots now contain a vertical line indicating where, in time, the simulation is currently scrubbed to
  • Output plots can now be clicked to scrub the simulation to that point in time
  • Output plots now have a horizontal X axis at Y=0.00 if the data ever crosses that boundary
  • The mini axis lines in the bottom-left of a 3D viewer are now bigger and labelled with X, Y, and Z
  • The action buttons now have an extra + symbol to make them slightly more visible
  • Contact geometry can now be removed from a HuntCrossleyForce in the UI
  • The Selection View panel is now hidden when editing a model: the information is redundant and appears in the Edit Properties panel anyway
  • 3D viewers now have a Measure button, for measuring 3D distances in the model. Click it, click where you want to start the measurement, drag to where you'd like to measure.
  • In addition to reassigning sockets in the Edit Properties panel, you can now browse to them (i.e. make them the selected component) by right-clicking them
  • Assigning cone geometry to a body now correctly displays cone, rather than cylinder, geometry
  • Fixed a bug where menu padding could break sometimes, causing all the UI elements to bunch up to the edge of UI panels
  • The add_body modal now automatically focuses the body's name when initially opened
  • Dragging an .osim file into the splash screen now loads the osim file in the editor

- C++
Published by adamkewley over 4 years ago

opensim-creator - 0.0.4: General release for Sep2021

This is the latest release of OSC. Depending on the platform, the installer may install OSC alongside previous versions. If this isn't the behavior you want (e.g. because it causes multiple OSCs to appear in your start bar) then uninstall the previous version (e.g. run Uninstall.exe in C:\Program Files\osc on Windows). Later versions of OSC may be packaged to do that automatically.

This contains a variety of fixes/improvements over 0.0.3, including:

  • A coordinate editor in the main editor screen
  • Limited support for ultra-large/ultra-small models, such as fly legs, by scaling the scene
  • The coordinate editor and hierarchy panels now have a search bar
  • The mouse controls are now a union of OpenSim's and Blenders, which should make OSC easier to use in a variety of circumstances (especially laptop touch pads)
  • The scene light now moves with the camera, so the model has no dark spots
  • (work in progress) In-built documentation. Currently contains two introductory tutorials. These will be improved over time.
  • More built-in analytical geometries are supported, such as arrows and cones
  • The rendering pipeline is ~20-30 % faster on lower-end devices (e.g. laptops with iGPUs)
  • The UI renders much less frequently if a user isn't interacting with it. Typically reduces resource usage by 50-70x
  • Rim highlights should now always show correctly, and not occasionally be occluded by other things in the scene (this was particularly annoying when rendering overlapping frames)
  • The camera can now zoom in very far, provided the camera's focal point is set correctly. This enables zooming into (e.g. very small features)
  • The camera has more keybinds (subject to change): X, Ctrl+X, Z, Y move the camera along +X, -X, Z, and Y axes respectively (Ctrl+Z and Ctrl+Y are already taken by Undo and Redo). F resets the camera. Ctrl+F automatically tries to move the camera to view the whole screne
  • The locale now defaults to C, rather than whatever the system is. This handles the edge-case of saving a file while using a locale that has decimal numbers like 3,14. OpenSim will save the file with 3,14 but then fail to read the number in when the file is loaded later, substituting in 3.

- C++
Published by adamkewley over 4 years ago

opensim-creator - General release for Jul2021

Contains a wide variety of improvements over 0.0.2:

  • OSMV (the codename for the alpha) has now internally been renamed to OSC, or OpenSim Creator. The official repository is now at https://github.com/ComputationalBiomechanicsLab/opensim-creator
    • This is mostly a branding change, but also renames the C++ namespaces from osmv to osc
    • OSC uses the OpenSim logo, rather than the custom one that was used in earlier versions
  • All releases of the software now use OpenSim 4.2
    • This adds support for things like ScapulothoracicJoint
    • It also makes simulations slightly faster (typically, 20-40 %)
    • Mac users may (needs verification) need to install gfortran: please report installation issues on fresh mac products
  • OpenSim's log now prints to the OSC log panel
    • This means any warnings, error messages, etc. from OpenSim can be seen in the UI
  • Component default values are now improved
    • These are the property values components have when added through the UI
    • This is an ongoing process. Some components (e.g. ContactSphere) still have poor defaults (e.g. radius=0.0)
  • Fixed a bug where keybinds could be triggered, even when typing something into an input textbox
    • This could occasionally lead to annoying situations. E.g. typing R (reload) into an input box would reload the model
  • Modal dialogs no longer trigger popups/changes in UI elements below the dialog
    • E.g. mousing over something in a modal should no longer trigger tooltips, 3D scene changes, etc. below the modal
  • Simulation states are now saved
    • This means that you can retrospectively view the entire simulation with an animation scrubber
    • It also means you can retrospectively plot outputs from a previously-ran simulation
    • The reporting interval is deterministic, with a fixed time step, so that data+animations are consistent (e.g. datapoints in plots will be evenly spaced)
    • Simulations make their own independent copy of a model before running. This means that you can keep editing a model while a simulation runs on older versions of the model.
  • Simulations are now more configurable
    • This means that users can change the integrator, minimum step size, maximum step size, etc. of a simulation
  • Multiple simulations can now be ran concurrently
    • The UI provides a way for selecting which simulation is currently being viewed
    • There is currently no limit, or queuing, on the parallelism - try not to let your computer explode
  • Simulation metadata--eg. the number of integration steps, error rates, etc.--is now displayed on the simulation screen with basic documentation explaining each plot
  • Any plotted outputs can be directly exported to a CSV file
    • Choose to plot an output, view a simulation, go to the "outputs" tab: there's now a "Export to CSV" button
  • The UI is now uses custom style colors, which are darker and less blue than the ImGui defaults
  • The UI now uses FontAwesome for icon support. FontAwesome icons have been added to the most commonly used actions in the UI
  • The component hierarchy viewer now supports expanding and contracting nodes
  • Switching between editing and simulation mode no longer wipes the undo/redo history of the edited model
  • The "About" menu has been tidied up and now contains more information + documentation.
  • The "Experiments" screen (accessed via the About menu) now prompts the user to select an experimental feature
    • This is because we plan on using this space to ship experimental features to production early.
  • Added "Windows" tab to the main menu
    • Lets users enable/disable UI panels
    • Multiple 3D viewers can be enabled through this
    • Currently does not save which panels were enabled/disabled between UI boots (a future version will support this)
  • The splash screen now contains obvious-looking "New" and "Open" buttons right above the main content
    • This is so that new users don't have to search around in the "File" tab of the main menu
  • Example filenames are now sorted case-insensitively, so that they appear to be logically alphabetical (e.g. A, a, B b vs. A B a b)
  • 3D viewers now use Blender-like keybindings
    • e.g. Left/Right click interact with things. Middle mouse for swiveling, CTRL+middle mouse to pan, etc.
    • This is because it's fairly common for model builders to also be using blender
  • You can now add muscles to a model through the UI
    • Requires selecting N>1 bodies/frames in the model
    • Currently, there is no support for rearranging the attachment order
  • You can now add geometry to a body/frame
    • Previously, you could assign geometry to a body/frame, which would overwrite any previous assignments
    • Adding enables adding multiple pieces of geometry to a single body/frame
    • You can delete geometry by pressing DEL while geometry is selected
  • Added support for attaching analytical geometry (cubes, spheres, etc.)
    • The benefit of using these is that the resulting model file is less dependent on external mesh files (the geometry is generated in-code by OSC)
  • The loading screen now has a progress bar
    • The progress bar always marches forward and is no indication of actual progress: purely there to show the UI is doing something
  • Experimental: Added mesh importer wizard
    • Enables importing multiple mesh files into a 3D scene without having to first build an OpenSim model
    • Users can then rearrange the meshes in 3D space and assign bodies/joints to them while moving things around in a global, Blender-like, coordinate system
    • Once the user has set everything up in this wizard, it automatically generates an OpenSim model from the assignments
    • This is work in progress. It requires further development, but may still save a significant amount of time over manually building the model step-by-step through the main editor UI
  • Experimental: You can now plot subfields of an output, rather than only being able to plot double value types
    • Practically, this means that you can plot a Vec3's x, y, or z coordinates
    • Experimental, because the output names etc. need to be fixed when exporting the resulting (subfield) output to a CSV file

- C++
Published by adamkewley almost 5 years ago

opensim-creator - 0.0.2: April 2021 release (imported from adamkewley/osmv)

see: https://github.com/adamkewley/osmv/releases

- C++
Published by adamkewley almost 5 years ago