Skip to main content

Python bindings for FreeDyn Multi-Body System (MBS) simulator - Windows only

Project description

FreeDyn

Multi-Body System (MBS) Simulation and Analysis Software

What is FreeDyn?

FreeDyn is a powerful simulation software for modeling and analyzing Multi-Body Systems (MBS). It supports:

  • Rigid and flexible body dynamics with arbitrary kinematic structures
  • Advanced constraint modeling (joints, contact, etc.)
  • Multiple force models (springs, dampers, external forces, etc.)
  • HHT time integration solver for implicit integration
  • Python/MATLAB/Scilab interfaces for custom analysis
  • GUI and command-line tools for pre- and post-processing

Documentation

Quick Start (Python)

  1. Install from the extracted release directory:
pip install .
  1. Run a model from the CLI:
freedyn-run path/to/model.fds
  1. Or script it:
import freedyn as fd

fd.initialize()  # loads freedyn.dll
with fd.Model("path/to/model.fds") as model:
   model.solve()
   for idx, time, states in model.iterate_time_steps():
      print(idx, time, states["Q"][0, 0])

More detail: docs/GETTING_STARTED.md

Features

Simulation Capabilities

  • Kinematic and dynamic analysis
  • Time-domain simulation with implicit integration
  • Automatic constraint handling
  • Flexible body dynamics
  • Contact models

Analysis Tools

  • Jacobian extraction - System matrices at any time point
  • Force/motion analysis - Extract forces, accelerations, constraint forces
  • Parameter sensitivity - Analytical jacobians w.r.t. parameters
  • Custom measures - User-defined outputs

Integration Options

  • Python API - Programmatic simulation and analysis
  • MATLAB interface - Integration with MATLAB workflows
  • Scilab interface - Open-source alternative to MATLAB
  • C interface (CDLL) - Direct DLL linking for other languages

Architecture

FreeDyn consists of several core components:

  • freedyn.dll - C-interface Dynamic Link Library (core solver)
  • Python bindings - High-level API (Model, ModelInfo, analysis functions)
  • CLI tool - Command-line interface (freedyn-run)
  • GUI/CLI tools - Pre- and post-processing

Requirements

Runtime

  • Windows (tested on Windows 7, 10, 11)
  • Visual C++ Redistributable (included in release)
  • Intel MKL library (included in release)

Development (for bindings)

  • Python 3.8+
  • numpy
  • scipy

License

FreeDyn is released under the GNU Lesser General Public License v3.

See LICENSE for details.

Support & Issues

Release Notes

Latest Release

  • Initial public release
  • Complete Python bindings refactoring
  • High-level API (Model, ModelInfo, analysis functions)
  • Command-line tool (freedyn-run)
  • Core MBS simulation capabilities
  • Matrix/vector extraction functionality
  • Comprehensive documentation

Contributing

To contribute to FreeDyn, please:

  1. Check existing issues
  2. Follow the coding guidelines
  3. Submit pull requests with clear descriptions

Citation

If you use FreeDyn in your research, please cite:

@software{freedyn2025,
  title = {FreeDyn: Multi-Body System Simulation Software},
  author = {Oberpeilsteiner, Stefan and others},
  year = {2025},
  url = {https://github.com/freedyn-org/freedyn}
}

Author

Stefan Oberpeilsteiner (FreeDyn Development Team)


Repository: https://github.com/freedyn-org/freedyn
Version: See _version.py for current version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freedyn-1.0.0-py3-none-any.whl (62.5 MB view details)

Uploaded Python 3

File details

Details for the file freedyn-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: freedyn-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 62.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for freedyn-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e2476419c1fba029135a89f388790728bc9beaac7ff758e92a7d9a41086230f
MD5 59411f1998c82395fd9297ef903e097a
BLAKE2b-256 4a19752ff82e59ddbbf736ec3661b40495e4a9968216c50845b34f488369a207

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page