Added optional argument to SubGraph::enabledConstraints() for filtering type of constraint list and removed the constraint specific methods to simplify the API. docs.
MultibodyDS has been removed and SubGraphDS and SubTreeDS have been added. SubGraphDS has methods to go to and from a Multibody. This allows one to easily clone SubGraphs, e.g., to create two instances of a robotic arm. See SubGraphDS for more details.
KCore.Base names with “/” in them are no longer allowed. These conflict with internal classes like FilesystemLikeDatabase as well as thrid-party libraries like HDF5.
Updated PID models to use ProfileGenerators rather than functions. This makes it simpler to set up a PID controller in Python, but still have the run-time performance of C++. See PID for more details.
Removed uvicorn and fastapi as runtime dependencies.
New Features
Improved Chatbot tuning and ability to search kdFlex documentation
Upgraded Chatbot frontend with several quality-of-life features such as copy buttons, dark/light mode, prompt tuning, and direct links to documentation
Added the ability to swap integrators on the StatePropagator mid-stream. See StatePropagator.setIntegrator for more details.
DataStruct now supports saving/loading meta data to/from files. This is useful for annotating and including source info in data files. See the meta data section for more details.
DataStruct support was added for many classes and models in kdFlex. See PenalytContactDS as an example.
Added insertBefore and insertAfter methods to CallbackRegistry. This makes it simpler to insert callback functions in the middle of a CallbackRegistry. See CallbackRegistry.insertBefore and CallbackRegistry.insertAfter for more details.
The dump and dumpString options for classes in Math have been updated to use an enum for the format type rather than a bool. This adds the ability to dump numbers as fixed-point, when previously, only default float and scientific were available. See HomTran.dump as an example.
Added a remotely-accessible all-in-one graphical interface for visualizing and introspecting the multibody. This can be launched by calling the gui method on a Multibody instance.
Added picking support to WebScene, triggering an arbitrary ‘on pick’ callback upon clicking a part.
Enhancements
Added consolidatedSOADyn/Defs.h header for user facing structs and enums.
Added optional support (true by default) for including size info in matrix/vector dump() output
The jacobian generator jacobianDot() method now takes an analytical argument similar to the jacobian() and poseGradient() methods to allow use of numeric differencing
Added initial versions of Glossary and Conventions sections to the documentation.
Updated the ScenePartSpec python constructor to allow initializing using keyword arguments.