A curated list of Functional Mock-up Interface (FMI) libraries, tools and resources.
Functional Mock-up Interface (FMI) is a tool independent standard to support both model exchange and co-simulation of dynamic models. See the official FMI website for the official specification and more information about the FMI standard.
Libraries to import, simulate and export FMUs (Functional Mock-up Units).
- FMI Library - C library for import of FMUs. [BSD]
- FMU SDK - C library for exporting FMUs. [BSD]
- FMI++ - C++ library for import and export of FMUs. [BSD]
- FMI4cpp - FMI 2.0 implementation written in modern C++. [MIT]
- PyFMI - Python package for loading and interacting with FMUs, based on the FMI Library. [LGPL]
- FMPy - Python package for loading and interacting with FMUs. It supports also the latest System Structure and Parameterization (SSP standard). [BSD]
- FMI++ Python Interface - Python interface for the FMI++ library. [BSD, BOOST]
- SimulatorToFMU - Python package that allows to export a memoryless Python-driven simulation program or script as a FMU. [BSD]
- modestpy - Python package for parameter estimation in FMUs. [BSD]
- PythonFMU - Framework for exporting Python code as FMUs. [MIT]
- FMI4j - Java/Kotlin library for dealing with FMUs on the JVM platform. [MIT]
- javaFMI - Java library for import and export of FMUs. [LGPL3]
- Simulink FMU Importing/Export a Model as a Tool-Coupling FMU - Out-of-the-box official support for FMU import and export (tool coupling) in Simulink. [Commercial]
- FMI Toolbox for MATLAB/Simulink - Toolbox with support for Simulink FMU Import/Export and MATLAB FMU import. [Commercial]
- matlab-fmu - MATLAB Toolbox for Windows with support for import of FMUs for Model-Exchange and Co-Simulation as well as the export of MATLAB scripts as FMUs for Co-Simulation, based on the FMI++ library. [BSD]
- Simulix - A third-party Simulink tool to generate FMUs from Simulink models using the C-API. [GPL3]
- FMIKit-Simulink - Import and export Functional Mock-up Units with Simulink. [BSD]
- rust-fmi - A Rust interface to FMUs (Functional Mockup Units) that follow the FMI Standard. [APACHE2/MIT]
For the official list of tools that support FMI, check http://fmi-standard.org/tools/ .
- λ-Sim - Tool that converts FMU simulation models into REST APIs. [MIT]
- FMIGo! - A set of tools for dealing with the FMI and SSP standards. [MIT]
- FMITerminalBlock - Two way interface between the FMI and IEC 61499-based controllers. [BSD]
- FMU-proxy - Tool that allows FMUs to be accessed through language independent RPC calls using gRPC or Apache Thrift. [MIT]
- Unity-FMI-Addon - FMI support for Unity, a cross-platform game engine. [BSD]
- ROS fmi_adapter - FMI support for ROS, a flexible framework for writing robot software. [APACHE2]
- fmi_adapter_ros2 - FMI support for ROS2, the new version of the Robot Operating System. [APACHE2]
- Stack Overflow - Questions related to FMI in Stack Overflow.
- Twitter's FMI Info and News - Unofficial news account about the FMI Standard, FMI usage and FMI tools.
Contributions are welcome! Read the contribution guidelines first.