All Projects → traversaro → awesome-fmi

traversaro / awesome-fmi

Licence: other
A curated list of Functional Mock-up Interface (FMI) libraries, tools and resources.

Projects that are alternatives of or similar to awesome-fmi

RaPId
RaPId (a recursive acronym for "Rapid Parameter Identification") utilizes different optimization and simulation technologies to provide a framework for model validation and calibration of any kind of dynamical systems, but specifically catered to power systems.
Stars: ✭ 35 (-59.3%)
Mutual labels:  fmi, fmu, fmi-standard
FMU-proxy
Tool that allows Functional Mock-up Units (FMUs) to be accessed through language independent RPC calls by wrapping the original FMU into a new one with network capabilities.
Stars: ✭ 38 (-55.81%)
Mutual labels:  fmi, fmu, fmi-standard
FMI4j
FMI4j is a software package for dealing with Functional Mockup Units (FMUs) on the JVM
Stars: ✭ 17 (-80.23%)
Mutual labels:  fmi, fmu, fmi-standard
JuliaFMI
Simulator for FMUs in Julia (WIP)
Stars: ✭ 20 (-76.74%)
Mutual labels:  fmi, fmu
modest-py
FMI-compliant Model Estimation in Python
Stars: ✭ 40 (-53.49%)
Mutual labels:  fmi, fmu
fmi-standard.org
Website of the Functional Mock-up Interface (FMI)
Stars: ✭ 34 (-60.47%)
Mutual labels:  fmi, fmi-standard
FMUComplianceChecker
FMI Compliance Checker for validation of FMUs 1.0 and 2.0
Stars: ✭ 33 (-61.63%)
Mutual labels:  fmi, fmi-standard
fmi adapter
Integrating functional mock-up units (FMUs) in ROS nodes
Stars: ✭ 26 (-69.77%)
Mutual labels:  fmi
FMI-DSA
Some examples druing the DSA (data structures and algorithms) courses given by me (Ivan Filipov) as a teaching assistant @ Faculty of Mathematics and Informatics, Sofia University 2016-2019
Stars: ✭ 26 (-69.77%)
Mutual labels:  fmi
PythonFMU
A lightweight framework that enables the packaging of Python3.x code as co-simulation FMUs
Stars: ✭ 82 (-4.65%)
Mutual labels:  fmi-standard
NTLM-SSP
本项目是一篇NTLM中高级进阶进阶文章,后续我也会在Github和Gitbook对此文进行持续性的更新NTLM以及常见的协议中高级进阶并计划开源部分协议调试工具,望各位issue勘误。
Stars: ✭ 97 (+12.79%)
Mutual labels:  ssp
stenc
SCSI Tape Encryption Manager - stenc (formerly on https://sourceforge.net/projects/stenc/)
Stars: ✭ 41 (-52.33%)
Mutual labels:  ssp
fmiopendata
Python interface for FMI open data
Stars: ✭ 35 (-59.3%)
Mutual labels:  fmi
ad-server
advertising server
Stars: ✭ 31 (-63.95%)
Mutual labels:  ssp
fedramp-automation
FedRAMP Automation
Stars: ✭ 175 (+103.49%)
Mutual labels:  ssp
AG NTRIP ESP
AG Rooftop controller with NTRIP client and IMU (ESP32 Controller)
Stars: ✭ 25 (-70.93%)
Mutual labels:  ssp
SimpleTOTP
A highly configurable yet simple to use TOTP based two-factor authentication processing module for SimpleSAMLphp.
Stars: ✭ 16 (-81.4%)
Mutual labels:  ssp
encrypted-smiley-secure-protocol
Node.JS library Encrypted Smiley ® Secure Protocol (eSSP, SSP)
Stars: ✭ 22 (-74.42%)
Mutual labels:  ssp
fmi-cross-check
Results and FMUs for the FMI Cross-Check
Stars: ✭ 33 (-61.63%)
Mutual labels:  fmi
burp-ntlm-challenge-decoder
Burp extension to decode NTLM SSP headers and extract domain/host information
Stars: ✭ 28 (-67.44%)
Mutual labels:  ssp

Awesome FMI Awesome

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.

Contents

FMI 2

The latest (as of November 2021) stable release of the FMI specification is 2.0.3, released on 2021-11-17. You can find the text of the FMI specification 2.0.3 at https://github.com/modelica/fmi-standard/releases/tag/v2.0.3. Unless noted otherwise, the tools and libraries listed are compatible with FMI 2.

Libraries

Libraries to import, simulate and export FMUs (Functional Mock-up Units) that support FMI 2.

C

  • FMI Library - C library for import of FMUs. [BSD]
  • FMU SDK - C library for exporting FMUs. [BSD]

C++

  • FMI++ - C++ library for import and export of FMUs. [BSD]
  • FMI4cpp - FMI 2.0 implementation written in modern C++. [MIT]

Python

  • 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]

Java

  • FMI4j - Java/Kotlin library for dealing with FMUs on the JVM platform. [MIT]
  • javaFMI - Java library for import and export of FMUs. [LGPL3]

MATLAB/Simulink

  • 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

  • rust-fmi - A Rust interface to FMUs (Functional Mock-up Units) that follow the FMI Standard. [APACHE2/MIT]

Julia

  • FMI.jl - Library which integrates FMI and permits load, instantiate, parameterize and simulate FMUs seamlessly inside the Julia programming language. [MIT]
  • FMIFlux.jl - Library which offers the ability to setup NeuralFMUs, put FMUs inside any feed-forward NN topology and get a hybrid model trainable with a standard AD training process. [MIT]

Tools

For the official list of tools that support FMI 2, 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 - Framework that allows Functional Mock-up Units (FMUs) to be accessed through language independent RPC calls and that permits to transform a co-simulation FMU into a proxified version of the same FMU, so that each FMU can run in a separate process. [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]

FMI 3

FMI 3.0 was recently released. General information on the FMI 3.0 feature list can be found in https://fmi-standard.org/faq/, and the standard text source can be found at https://github.com/modelica/fmi-standard . You can find the latest, automatically generated version of the FMI 3.0 standard at https://fmi-standard.org/docs/3.0-dev/ .

Warning: FMI 3.0 was recently released, and most of the tools listed in the following they support it only in an experimental way. If you want stable tools, use FMI 2 for the time being.

Some of the projects listed in the previous section also support for FMI 3 :

  • Examples:
    • Reference-FMUs : 3.0 examples FMUs are available, including examples for new co-simulation features such as scheduled co-simulation and early return in co-simulation.
    • PMSFIT/FMI30TestFMUs : Some examples FMUs based on the FMI 3.0 specification are available, including features such as binary variables.
  • Python:
    • fmpy - support for FMI 3.0 is available.
  • Julia:
    • FMI.jl - experimental support for FMI 3.0 is work in progress
  • Simulink:
    • FMIKit-Simulink - Experimental support for export of FMU 3.0 is available in the develop branch.
  • Formal models

Community

Contribute

Contributions are welcome! Read the contribution guidelines first.

License

CC0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].