Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. FMPy

FMPy

NOASSERTIONPythonv0.3.31

A Python library for simulating Functional Mock-up Units (FMUs) with support for FMI standards and multiple interfaces.

GitHubGitHub
584 stars142 forks0 contributors

What is FMPy?

FMPy is a Python library that simulates Functional Mock-up Units (FMUs), which are standardized models used for system simulation across different engineering tools and domains. It enables users to execute, analyze, and interact with FMUs through multiple interfaces including command-line, GUI, and web applications. The library supports the latest FMI standards and provides tools for debugging and integrating FMUs into custom workflows.

Target Audience

Engineers, researchers, and developers working with system simulation, model-based design, or cross-tool integration who need to work with FMUs in Python environments. This includes automotive, aerospace, and industrial automation professionals using FMI-compliant tools.

Value Proposition

FMPy provides a comprehensive, free alternative to commercial FMI simulation tools with full support for multiple FMI versions and execution modes. Its multi-interface approach (CLI, GUI, web) and Jupyter Notebook integration make it uniquely flexible for different workflow requirements while maintaining cross-platform compatibility.

Overview

Simulate Functional Mock-up Units (FMUs) in Python

Use Cases

Best For

  • Simulating FMUs exported from tools like Dymola, Simulink, or MapleSim
  • Integrating FMU-based models into Python data analysis and machine learning pipelines
  • Sharing simulation models via web interfaces for collaborative engineering
  • Debugging and analyzing FMU behavior across different platforms
  • Creating interactive Jupyter Notebooks for educational or research purposes
  • Performing parameter variation studies and custom input simulations

Not Ideal For

  • Real-time simulation applications requiring hard timing guarantees
  • Projects needing integrated 3D visualization or advanced post-processing tools
  • Environments where minimal dependencies are critical (e.g., embedded systems)
  • Use cases not involving FMUs or the FMI standard

Pros & Cons

Pros

Comprehensive FMI Support

Supports FMI 1.0, 2.0, and 3.0 for both Co-Simulation and Model Exchange, as directly stated in the README, ensuring compatibility with a wide range of exported models.

Multi-Interface Flexibility

Provides command-line tools, a GUI, and a web app, allowing users to choose the workflow best suited to their needs, as demonstrated with examples like 'fmpy simulate' and the Dash-based web app.

Jupyter Notebook Integration

Automatically creates Jupyter Notebooks from FMUs via GUI or command line, enabling interactive analysis and sharing, as shown in the README with the 'fmpy create-jupyter-notebook' command.

Cross-Platform Execution

Runs consistently on Windows, Linux, and macOS, verified by platform-specific FMU downloads in the examples, facilitating collaboration across diverse engineering teams.

C Code Debugging Capabilities

Compiles C code FMUs and generates CMake projects for debugging, offering deep customization and insight into model internals, as highlighted in the README's advanced features.

Cons

Dependency-Heavy Installation

The recommended 'fmpy[complete]' installation pulls in numerous dependencies, which can complicate setup in lean or restricted environments, as noted in the Installation section.

Niche Focus Limitation

Exclusively tied to the FMI standard, making it irrelevant for simulations not based on FMUs, thus limiting its applicability outside specific engineering domains like automotive or aerospace.

Sparse Advanced Documentation

Advanced usage relies on example scripts like 'coupled_clutches.py' rather than comprehensive API docs, potentially increasing the learning curve for complex customizations.

Potential Performance Overheads

As a Python library, it may introduce performance latency compared to native C++ FMI tools, especially for large-scale or high-frequency simulations, though it mitigates this with C code compilation.

Frequently Asked Questions

Quick Stats

Stars584
Forks142
Contributors0
Open Issues128
Last commit7 days ago
CreatedSince 2017

Tags

#python-library#co-simulation#jupyter-integration#python#cross-platform#engineering-simulation

Built With

D
Dash
C
CMake
P
Python

Included in

Robotic Tooling3.8k
Auto-fetched 11 hours ago

Related Projects

FreeCADFreeCAD

Official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.

Stars33,350
Forks6,004
Last commit12 hours ago
openscadopenscad

OpenSCAD - The Programmers Solid 3D CAD Modeller

Stars10,162
Forks1,797
Last commit1 day ago
WireVizWireViz

Easily document cables and wiring harnesses.

Stars5,246
Forks312
Last commit3 months ago
NASA-3D-ResourcesNASA-3D-Resources

Here you'll find a growing collection of 3D models, textures, and images from inside NASA.

Stars3,774
Forks541
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub