kdFlex is a modular, extensible simulation platform designed for high-performance dynamics simulation of complex mechanical systems. It provides optimal computational methods to deliver real-time, high-fidelity multibody simulation.

Key Features List

  • Frames layer for arbitrary relative pose, velocity and acceleration queries across the system
  • Multiple attitude representations and support for homogeneous transforms and spatial vectors
  • Rigid and flex multibody dynamics, with flex bodies assumed modes from FEM data
  • Arbitrary size serial, tree, graph multibody topologies
  • Recursive, "O(N)" low cost minimal coordinate inverse, forward, hybrid dynamics
  • Support for hybrid dynamics with prescribed motion (run-time toggleable)
  • Built in full set of hinge types; support for custom hinge types.
  • Contact and collision dynamics (coming soon)
  • Ability to add/remove bodies, reattach bodies at run-time
  • Ability to add/remove loop constraints at run-time
  • Built in, general purpose constraint/inverse kinematics solver
  • Built in numerical integration suite with large collection of fixed and variable step integrators, stiff/non-stiff options
  • Ability to define and integrate in custom environment and device models with the multibody engine to create system level dynamics models
  • API for closing the loop with external software and hardware
  • Support for inertial as well as relative Jacobians
  • Suite of algorithms for computing system mass matrix, operational mass matrix, centroidal momentum, system mass properties, inter-body forces etc.
  • Support for multi-rate models, time delays, custom timed events
  • Zero-crossing detection support
  • Embeddable within autonomy and control stacks as a mechanism model manager module for use across the layers for in the loop queries
  • Ephemeredes interface layer for planetary bodies
  • State space linearized model generation, frequency domain analysis support
  • Support for URDF model file definitions, as well as formats in YAML, JSON etc
  • Support for procedurally creating multibody system
  • Support for assigning quantities and units to parameter values so conversions are handled properly
  • Support for narrowing computations to subgraphs
  • Support for parallelizing runs across subgraphs and multibody instances
  • Auto system center of mass tracking
  • Methods for computing system mass matrix, centrolidal mass matrix, computed torque, kinetic energy, spatial momentum etc
  • Methods for fast computation of general Operational Space Inertia matrix inverse
  • Constraint embedding dynamics based minimal coordinate, recursive closed-chain dynamics (coming soon)
  • FEM bridge to NASTRAN for flexible body data and stress recovery
  • Web based 3D graphics visualization (local/remote); support for CAD parts and stick figures
  • Data logging support
  • Full featured Python and C++ API for an SDK
  • Supported platforms: Linux, Windows/WSL, Macs (coming soon)

Overview

What is kdFlex and what are its primary goals?
Arrow
kdFlex is software for multibody dynamics modeling, analysis, and simulation. Its primary goals are to support high-fidelity multibody dynamics models, achieve fast computational speed,  and offer a broad family of high-performance computational algorithms for needs across multiple domains and applications.
What kind of physical multibody systems can kdFlex model and simulate?
Arrow
kdFlex is designed to handle a wide variety of complex physical multibody systems. These include rigid and flexible multibody dynamics, systems with arbitrary topologies (including serial/tree and closed-chain configurations), and both smooth and non-smooth dynamics, such as from contact and collisions.
How does kdFlex approach solving the equations of motion?
Arrow
kdFlex utilizes a minimal coordinates dynamics formulation based on the Spatial Operator Algebra (SOA) methodology. This approach minimizes the need for explicit constraints, and provide optimal,  low-cost recursive computational algorithms. These algorithms often achieve O(N) computational complexity (linear scaling with the number of bodies) in contrast with cubic complexity of conventional methods.
What are some key architectural features of kdFlex?
Arrow
kdFlex includes:

  • general-purpose frames layer for on-demand computation of frame transforms
  • distinct C++ objects for multibody elements (bodies, hinges, nodes)
  • ability to handle run-time structural changes to the system topology
  • support for restricting computations to subgraphs of the multibody system
  • bridge for importing FEA flexible body data
  • comprehensive Python interface
  • large suite of fixed and variable time step numerical integrators for time-domain simulations
  • features for frequency domain analysis
What are some of the advanced computational algorithms and features available in kdFlex?
Arrow
Beyond solving equations of motion, kdFlex offers several advanced computational capabilities. These include:

  • computation of generalized Jacobian matrices and constraint kinematics
  • hybrid dynamics algorithm that can handle both force and acceleration inputs
  • computation of operational space inertia
  • calculation of composite body inertias, kinetic energy, and momentum
  • automatic tracking of the center of mass (CM) for subgraphs
  • computation of interbody forces
  • linearization of dynamics models and statistical dynamics features for molecular simulations
What are the main application areas for kdFlex?
Arrow
kdFlex is a versatile foundational tool for a wide range of engineering and research applications. Key areas include flight mechanics simulations for aerospace and aerial platforms, design and closed-loop performance analysis of guidance and control systems, mobility and autonomous system development and V&V for robotics and ground vehicles, loads analysis and operation of heavy machinery, biomechanics modeling for human motion analysis, and large-scale molecular dynamics simulations for drug design.
How does kdFlex support user interaction?
Arrow
kdFlex provides several user-friendly interaction features. It has a rich Python interface generated from its C++ core, allowing users to define and configure models, and even modify the model topology and properties during run-time using Python scripts. It also includes built-in visualization capabilities, including a basic stick figure model for debugging and support for attaching primitive shapes and CAD parts for richer graphical representations. Additionally, it features nonlinear solvers, state space model generation methods, support for quantities with units, data logging and introspection features for users.
How can I try out kdFlex?
Arrow
You can start a free trial of kdFlex here and try out the example notebooks and explore the online documentation. The support forum includes a number of resources to get started quickly!

Application Relevant Features

Flight Mechanics

Frame layer, ephemeredes, per body gravity, gravity gradient, N-body gravity, higher-order gravity models, non-inertial dynamics, body attach/detach capability, apparent mass dynamics, time handling, variable step numerical integrators, interfaces to aerodyamics models, multiple attitude representations. Center of mass tracking, multiple vehicles, flexible initial state initialization, units for parameter quantities.

Guidance & Control

Fast rigid and flexible body dynamics, state linearization, frequency domain analysis, closed-loop time-domain simulation, real-time hardware in the loop simulations, multi-rate models, prescribed motion, component mode synthesis, inter-body forces, actuatot/sensor nodes, closed-chain dynamics, servo-elastic/aero-elastic system analysis.

Robotics and Autonomy

Fast dynamics, run-time topology and constraints change support, suite of computational algorithms, tree and graph topologies, URDF support, general-purpose inverse kinematics, resursive forward dynamics, contact and collision dynamics, constraint embedding, serial-parallel robots, multi-limb robots, under-actuated systems, autonomy in the loop simulations, real-time performance.

Embedded use

Real-time performance, generalized IK solver and Jacobians, auto center-of-mass tracking, centroidal mass matrix, inverse dynamics, gravity compensation, computed torque, run-time attachment/detachment of bodies, run-time add/delete bodies, collision detection, Operational Space Compliance Matrix (OSCM), constrained OSCM

Ground Vehicles

Fast dynamics for tree/closed-chain topology systems, rigid/flexible body dynamics, constraint embedding, vehicle suspension systems,  autonomy in the loop simulations, contact and collision dynamics, real-time performance, interface for terramechanics, sensors.

Loads and Dynamics

Rigid/flexible body dynamics, component mode synthesis, contact dynamics, closed chain dynamics, suspension systems, stress and loads analysis, FEM bridge to NASTRAN.

Molecular dynamics

O(N) run-time dynamics, ICMD support, Fixman potential, spatial momentum nulling, Internal Coordinate Molecular Dynamics (ICMD) equipartition principle, Cartesian force-field interface support, run-time model coarsening support, Nose-Hoover thermostat capability, BAT model capability.