The Functional Mock-up Interface (FMI) is a tool-independent standard for the exchange of dynamic models and for co-simulation. It defines a containerized artifact called a Functional Mock-up Unit (FMU)—a ZIP file containing an XML model description and compiled C code or binaries—that encapsulates a system’s differential, algebraic, and discrete equations. This allows a model created in one simulation environment to be seamlessly imported and executed in another without exposing proprietary intellectual property.
Glossary
Functional Mock-up Interface (FMI)

What is Functional Mock-up Interface (FMI)?
An open standard for exchanging dynamic simulation models between different modeling tools, enabling tool-independent co-simulation and model exchange through a packaged Functional Mock-up Unit.
FMI supports two primary interface types: Model Exchange, where the importing solver handles numerical integration, and Co-Simulation, where the FMU includes its own embedded solver. By decoupling model authoring from execution, FMI enables heterogeneous system simulation across the digital twin lifecycle, from virtual commissioning and hardware-in-the-loop (HIL) testing to model predictive control (MPC) deployment, establishing a vendor-neutral backbone for software-defined manufacturing automation.
Core Characteristics of the FMI Standard
The Functional Mock-up Interface (FMI) is defined by a set of core architectural characteristics that enable tool-independent model exchange and co-simulation. These principles ensure that dynamic models can be shared across the entire engineering supply chain without exposing proprietary intellectual property.
Functional Mock-up Unit (FMU)
An FMU is a self-contained, compressed ZIP file that packages a dynamic simulation model along with all necessary metadata and binaries. It is the atomic unit of exchange in the FMI ecosystem.
- Structure: Contains an XML model description file, compiled C code binaries for target platforms, and optional documentation and resources
- Self-Description: The XML file declares all variables, parameters, inputs, outputs, and the model's mathematical capabilities
- Platform Portability: A single FMU can include binaries for multiple operating systems and architectures (win64, linux64, darwin64)
- IP Protection: The model is distributed as compiled binaries, allowing suppliers to share high-fidelity models without revealing proprietary source code or internal equations
Model Exchange (FMI-ME)
Model Exchange enables a simulation environment to import and solve a model's equations using its own numerical solvers. The importing tool takes full control of the integration algorithm.
- Mechanism: The FMU exposes a set of differential algebraic equations (DAEs) through a standardized C interface
- Solver Responsibility: The host simulator provides the ODE/DAE solver, calling the FMU's functions to compute derivatives and outputs at each time step
- Efficiency: Eliminates redundant solver overhead when multiple models are integrated into a single simulation environment
- Use Case: Ideal when a tool vendor wants to leverage their own optimized, proprietary solvers for a specific domain like multi-body dynamics or circuit simulation
Co-Simulation (FMI-CS)
Co-Simulation allows each FMU to contain its own embedded solver, enabling the coupling of models from different domains where each subsystem advances in time independently and exchanges data only at discrete communication points.
- Solver Encapsulation: Each FMU is a black-box solver that advances its internal state from one communication point to the next
- Master Algorithm: A co-simulation master orchestrates the data exchange and time synchronization between all coupled FMUs
- Variable-Step Support: FMUs can signal the master to reject a step and retry with a smaller step size, enabling robust handling of events and stiff dynamics
- Use Case: Essential for coupling a mechanical multi-body tool with a hydraulic circuit simulator where each domain requires fundamentally different solver strategies
Model Description XML
Every FMU contains a mandatory modelDescription.xml file that serves as a machine-readable manifest, declaring the model's interface, capabilities, and structural metadata without executing any code.
- Variable Catalog: Declares all scalar variables with attributes like name, causality (input, output, parameter, local), variability (constant, fixed, tunable, discrete, continuous), and initial value
- Unit Definitions: Specifies physical units for all variables, enabling automatic unit checking and conversion by the importing tool
- Capability Flags: Boolean flags declare optional features like
canGetAndSetFMUstate,canSerializeFMUstate, andprovidesDirectionalDerivative - Structure: Groups variables into logical model structure sections for outputs, derivatives, and event indicators, aiding tools in generating efficient simulation code
State Serialization & Resumption
FMI supports saving and restoring the complete internal state of an FMU, enabling advanced simulation workflows like checkpointing, rollback, and iterative co-simulation algorithms.
- FMU State Object: An opaque binary blob that captures the entire internal state vector, including solver memory and event history
- Serialization: The
serializeFMUstatefunction converts the state object into a byte stream that can be persisted to disk or transmitted over a network - Use Cases: Enables long-running simulations to be paused and resumed, supports Monte Carlo branching from a common checkpoint, and allows co-simulation masters to implement sophisticated step rejection and retry logic
- Deterministic Restart: A deserialized FMU must produce bitwise-identical results when resumed, a critical requirement for debugging and verification
Directional & Adjoint Derivatives
Advanced FMUs can optionally expose directional derivatives and adjoint derivatives, enabling gradient-based optimization and sensitivity analysis directly within the importing tool.
- Directional Derivatives: Compute the directional derivative of outputs with respect to inputs or states, essential for Newton-type solvers and parameter estimation
- Adjoint Derivatives: Provide the reverse-mode derivative, enabling efficient gradient computation for models with many inputs and few outputs, critical for gradient-based optimization and machine learning integration
- Performance: By exposing analytical derivatives, FMUs eliminate the need for slow and inaccurate finite-difference approximations
- Use Case: Enables a digital twin to be used directly inside a Model Predictive Control (MPC) optimizer that requires Jacobian matrices at every time step
Frequently Asked Questions
Clear answers to the most common technical questions about the Functional Mock-up Interface standard for model exchange and co-simulation.
The Functional Mock-up Interface (FMI) is an open, tool-independent standard for exchanging and co-simulating dynamic simulation models between different modeling and simulation environments. It works by packaging a model's equations, solver, and metadata into a single compressed file called a Functional Mock-up Unit (FMU)—a ZIP archive containing an XML model description file and compiled C code or binaries. The standard defines two primary interfaces: FMI for Model Exchange, where the importing tool provides the numerical solver and the FMU supplies the differential equations, and FMI for Co-Simulation, where the FMU includes its own embedded solver and the importing tool orchestrates data exchange at discrete communication points. This decoupling of model logic from tool-specific formats enables engineers to integrate a controller model built in Simulink with a plant model from Dymola without manual code translation, dramatically reducing integration errors and development time in model-based systems engineering workflows.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
The Functional Mock-up Interface (FMI) operates within a broader ecosystem of simulation, interoperability, and digital twin standards. These related concepts define how FMI-based models are integrated, validated, and deployed.
Model Exchange
The FMI for Model Exchange interface allows a simulation environment to import and solve a model using its own native solver. The FMU contains the mathematical equations (differential, algebraic, and discrete) but no embedded solver. This provides maximum numerical integration flexibility for the importing tool.
- Directional derivative: FMUs expose Jacobian information for efficient implicit solvers
- Event handling: State events and time events are signaled to the host solver
- Use case: Importing a high-fidelity engine model into a vehicle dynamics simulator
Virtual Commissioning
The practice of testing and validating industrial control logic against a simulated digital model before physical deployment. FMI enables this by packaging plant models as FMUs that can be connected to real PLCs or soft controllers via Hardware-in-the-Loop (HIL) or Software-in-the-Loop (SIL) configurations.
- SIL: Controller code and plant model run on the same PC, synchronized in virtual time
- HIL: Physical controller hardware interacts with a real-time plant FMU simulation
- Benefit: Reduces on-site commissioning time by up to 80% by catching logic errors early

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us