Nimblephysics

Latest version: v0.10.52.2

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 17 of 36

0.8.83

Summary of changes
- The enum `MissingGRFReason` was added so that both `DynamicsFitter` and `SubjectOnDisk` can report a value indicating why a frame in a trajectory was marked as having "missing" ground reaction force information. This was implemented to improve reporting tools in AddBiomechanics, but will also help debugging in general.
- When processing multiple data trials, `DynamicsFitter::zeroLinearResidualsOnCOMTrajectory()` now allows small scale factors for ground reaction forces in each trial to get the linear fitter the best chance of converging without dropping frames. In practice, small scaling adjustments for each trial can provide much better performance without significantly changing the original data (tested on running data across four running speeds).
- `MarkerFixer::filterTimestepsBasedOnProlongedStillness()` was added to filter out markers that remain motionless for a certain number of timesteps.
- New methods were added to `dynamics::Skeleton` to all compute IMU quantities (e.g., `Skeleton::getGyroReadings()`) and their gradients (e.g., `Skeleton::getGyroReadingsJacobianWrt`). The quanities that gradients are taken with respect to are handled using `neural::WithRespectTo`.

0.8.82

Joint acceleration regularization adding in v0.8.81 is now supported through the Python interface.

0.8.81

- Added an option to regularize the joint acceleration variables in the optimization problem solved by `DynamicsFitter`.
- The regularization term can be added to the loss function by providing a positive value to `DynamicsFitProblemConfig::setRegularizeJointAcc()`.
- Updated `DynamicsFitter::writeCSVData()` to write out the same name of rows as the the number of timestamps in the original problem. The updates the file located at `osim_results/ID/<trial_name>_full.csv`.

0.8.80

Summary of changes

1. Fixed bug in `DynamicsFitter::zeroLinearResidualsOnCOMTrajectory` where incorrect "b" vector was being used when fitting trajectories for trials left out of mass-fitting step.
2. `DynamicsFitter::timeSyncAndInitializePipeline` now supports the parameters `shiftGRFs` (for enabling/disabling the GRF shifting step) and `maxTrialsToSolveMassOver` (to set the number of trials used to fit the model mass).
3. Test `HamnerMultipleTrials`, with associated data files.
4. The utility function `OpenSimParser::roundToNearestMultiple()`, which was implemented to improve rounding of the detected framerates from TRC and MOT files.

0.8.79

Introduced changes to `MarkerFitter` to allow the main marker fitter optimization to be parallelized across multiple threads. Should provide a large speed up, regardless of the number of trials processed.

This defaults to disabled, but you can call `MarkerFittter::setParallelIKWarps(True)` to enable it.

0.8.78

Added a fix to address a recently introduced bug, where the dynamics fitting step could abort too early when reducing residual moments. This fix makes the abort criteria less stringent, but still good enough to exit the dynamics fitting step if the problem is clearly blowing up.

Page 17 of 36

Links

Releases

Has known vulnerabilities

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.