Why
?
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.
rocket launching over earth surface

Feature Highlights

Rigid and Flexible Bodies

Supports accurate nonlinear dynamics models with arbitrary mix of rigid and flexible bodies using finite element analyis (FEA) model data.

Comprehensive & Fast Dynamics

Supports dynamics of arbitrary size and topology systems with constraints and collision and contact dynamics. Uses accurate recursive dynamics methods whose cost scales only linear with degrees of freedom compared with cubic costs of conventional methods.

Run-time configuration changes

Structure based algorithms allow seamless handling of run-time changes to system from configuration.

Extensible Modeling Environment

Supports integration of external device models, environment models and control stacks with the dynamics for system level closed-loop simulations.

Time and Frequency Domain Modeling

A rich suite of numerical integrators for time-domain simulations; built-in state space representation methods for frequency domain analysis.

Real-Time embedded mechanism modeling

Several kinematics, statics and dynamics related computational methods and features for real-time mechanism modeling within autonomy and control stacks..

Simulation Services

Broad set of built-in simulation features for graphics visualization, data logging, parameter units/quantities support, input decks, etc.

Software Engineering

Modular, modern object-oriented design, with cache memory management, and parallel computing capability.

C++/Python SDK

Full featured C++ API, replicated at Python level, for use as a library or tailored for use in standalone applications.
System Requirements
Icon
Linux Ubuntu 24.04, Windows WSL, or MacOS

Application Relevant Features

rocket during launch

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
off road heavy transport vehicle

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.
excavator

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.

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!