kdFlex 1.1.5 release
kdFlex 1.1.5 Code Changes Summary
API Changes
- Refactored Multibody to create and manage a ProxyScene instance, and removed
Multibody.setScene. In most cases, users should use Multibody.getScene rather than creating a separate ProxyScene instance. - Removed the
stb_imagethird party dependency. - Moved integrator creation functionality to new factory function
ki::createIntegratorand refactored internal inheritance tree. - Now most set coordinate methods return a bool true value if the new values were accepted. docs
New Features
- Added the
karana-convexifyutility, which can be used to convert an arbitrary mesh file to a set of convex hulls more suitable for collision detection. Seekarana-convexify --helpfor usage and arguments. - Added the PinVelControl model which controls the angular rate of a PinSubhinge.
- Added support for implicit adaptive Runge-Kutta integrators and expanded support for explicit adaptive RK integrators.
- Added fixed-step mode for explicit RK integrators for time-limited scenarios.
- Added more tuning options for adaptive-step time integrators.
- Added support for asynchronous data logging and buffered writes via PacketTableConfig.
KModels can now be easily be run in parallel. This makes use ofCallbackRegistry’s new ability to run callbacks in parallel. TheModelManager::runKModelsInParallelhelper method makes doing this convenient. See running KModels in parallel for more details.- Added the
ParallelVehiclesKModelthat can be used to run trivially parallelizable vehicles in parallel to improve performance. See running vehicles in parallel for details.
Enhancements
- Optimized speed and filesize when serializing Scene.StaticMeshGeometry to YAML or JSON.
- Improved error messages in WebUI.HttpWsServer when there is an issue binding to the port.
- The macOS release now uses Python 3.14, the default Python version on
homebrew. - Added convertsion to/from common time types to/from ephemeris time in
TimeKeeper. See working with simulation time for more details.
Bug Fixes
- Fixed an instancing issue where non-primitive geometries would not appear in web scenes due to an id mismatch.