The Modelica Standard Library is the reference every Modelica tool already ships
Free (standard conforming) library to model mechanical (1D/3D), electrical (analog, digital, machines), magnetic, thermal, fluid, control systems and hierarchical state machines. Also numerical functions and functions for strings, files and streams are included.
At a glance
- What is it?
- The Modelica Standard Library is the free, standard conforming collection of component models from the Modelica Association, covering mechanics, electrical, magnetic, thermal, fluid, control and state machine domains, and the practical surprise is that most Modelica tools already include it, which changes the question from whether you want it to which version you want.
- Who is it for?
- The Modelica Standard Library fits a modeller who wants recognised standard components rather than bespoke ones, since a model built from MSL components is portable to any tool and its documentation is already written.
- Can I use it commercially?
- Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly Modelica, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A standard conforming library, free and developed with the language
The Modelica Standard Library, package Modelica, is described as a free library from the Modelica Association to model mechanical systems in one and three dimensions, electrical systems covering analog, digital and machines, magnetic, thermal and fluid systems, control systems and hierarchical state machines. Numerical functions are included, along with functions for strings, files and streams.
The important word in the description is standard conforming, and the development model explains why that matters. The library is developed together with the Modelica language from the Modelica Association, so it is not one vendor's component set that happens to be useful. It is the reference implementation of what a mechanical, electrical or thermal component looks like in this language, which is why a model that uses it is more likely to simulate the same way in a tool you have not used before.
It provides model components and standard component interfaces from many engineering domains, and each model comes with documentation included, published at doc.modelica.org. That last point matters more than it sounds. A component library is only as good as its documentation, because the documentation is where the parameters, the units, the valid ranges and the connector semantics live, and here it ships with the models rather than living in a separate manual that goes out of date.
The licence is the 3-clause BSD licence, and the README is explicit that the generous licence conditions allow usage in commercial products, which for a component library is the point of shipping it free.
Your tool probably already has it, and the demo limitation bites
The library description contains a practical note that is more important than any feature list, and it changes how an evaluation should start.
The usage of a Modelica library requires a Modelica simulation environment, and the tools page at modelica.org is where the environments are listed. More importantly, such an environment usually already includes the Modelica standard library. In other words, the common case is not that you install this library, it is that you already have a copy of it inside your tool and the question is which version it is and whether you can change it.
That reframes the decision. For a modeller starting on a new model, the standard library in the tool is almost always the one to use, because it is the version the tool's documentation, its example models and its own test suite are written against. Pulling a different release into the same project is a real operation with real consequences, and the README gives no guidance on doing it.
The second half of the note is about commercial tools in demo mode. It is possible that the demo version of the commercial tools will not allow you to simulate non-trivial examples from the library. So the library being free does not mean it is free to evaluate with it, since the tool's demo limitation is what stops you, and a non-trivial example is exactly what you would want to try.
Version 4.1.0 and the shape of a release line
The current release named in the README is Modelica Standard Library v4.1.0, dated 2025-05-23, and the repository has no newer tag. The two releases before it are visible in the list: v4.1.0-rc.1 dated 2025-04-17 and v4.1.0-beta.2 dated 2025-03-11, which is a two month run from the second beta to the final release with a release candidate in between.
The naming convention is the standard one for a versioned library with a qualification stage, and seeing rc and beta tags in the list is a good sign about how the project ships: the candidates are public, so a tool vendor or a modeller can test against a candidate before the final release lands.
The repository is not archived and the last push was on 2026-10-20, so the source is being worked on well after the 4.1.0 release. That is normal for a library whose master branch carries the next version, and it is also the reason to pin a version rather than to track the branch, since the branch may contain models that a stable tool cannot load.
Older releases are handled in the conventional way, by browsing the Releases page of the repository, which matters for a library like this because a project written against 4.0.0 is not necessarily valid against 4.1.0 if the interfaces changed, and being able to go back a version is part of maintaining a working model.
Regression testing is the visible infrastructure
The status section of the README is mostly badges, and two of them are more interesting than a build badge usually is.
There is a CI checks badge for the repository workflows, and a CLA assistant badge, which records that contributors sign a contributor licence agreement. That is normal for an association-owned project where the copyright position of contributions has to be clear, and it is a signal about the governance model before you read a single line of the contribution guide.
Then there are two regression test badges, one for the Modelica Standard Library v4.1.0 and one for ModelicaTest v4.1.0, and both are dynamic badges that read a test run report and colour the result. The reports are hosted by ltx.de, and the paths name the tool used, Dymola, and the two model packages being run.
What that means is that the library is verified by running its models through a commercial simulator and checking the results against reference results, in public, with a pass or fail per case. For a library whose entire value is that the same model behaves the same way in different tools, a regression suite over the results is the only meaningful test, and the presence of a public report is the interesting part, because a modeller can see whether a given model passes before trusting it.
The ModelicaTest package and the separate ModelicaReference package in the repository are where that machinery lives.
The repository tree is the test programme
The top level entries read like a laboratory rather than a package, and that is the clearest sign of how this project is validated.
Modelica/ is the library itself. ModelicaReference/ holds the reference models, the models whose results are treated as the truth that other implementations are compared against. ModelicaServices/ holds the service models used to compose larger systems. ModelicaTest/ is the test package, and it is where the regression cases live.
Then there are the reference results, in a ReferenceResults/ directory, which is what the regression report compares against, and a set of top level models with revealing names. Complex.mo is a model built to be complex. ModelicaTestConversion4.mo is about unit conversion, and ModelicaTestOverdetermined.mo is about overdetermined systems, which is a specific and awkward class of problem in Modelica where the number of equations exceeds the number of unknowns and the solver has to treat some of them differently. ObsoleteModelica4.mo is the one worth reading carefully, because a file named after something obsolete is usually a migration aid, that is, models that were valid in an earlier version of the language and are kept around so that older material still loads.
The .CI/ directory at the root is the continuous integration configuration for all of this, and .mailmap is the file that maps commit authors to canonical addresses, which exists so that a contributor with several accounts is credited consistently across the history.
Governance through MAP-LIB, and a licence that permits commercial use
The development is organised by the Modelica Association Project for Libraries, MAP-LIB, and the README points to the contribution guide in the repository and to the MAP-LIB project rules hosted in a separate repository.
The separation is worth noting. The rules are not a file in the library repository, they are a project artefact in their own right, which means they apply to the association's library work in general rather than to this repository alone. For a contributor, that is where the substantive questions live, such as what a model has to include to be accepted, and how its documentation and its reference results are handled.
Issues go through the GitHub issue tracker, and the repository also carries a SECURITY.md, so a vulnerability in the library has a defined path, which matters more than usual for a library that ships inside other people's tools.
The licence is the 3-clause BSD licence, and the README's wording is direct. The package is free software and the use is completely at your own risk, and it can be redistributed and/or modified under the terms of that licence. A permissive licence with no copyleft obligation means a commercial product can embed the components without publishing anything, which is exactly the condition a component library needs to be adopted by companies, and it is why the README bothers to say that the generous licence conditions allow usage in commercial products.
The at your own risk phrasing is standard, but it is worth pairing with the demo mode note: a free library whose model behaviour is only as good as the tool running it, and whose validation is a regression suite maintained by the association rather than by you, is a dependency to use with the version your tool ships unless you have a reason to do otherwise.
Editorial conclusion
The Modelica Standard Library fits a modeller who wants recognised standard components rather than bespoke ones, since a model built from MSL components is portable to any tool and its documentation is already written. It does not fit a modeller who is stuck with the version bundled in their tool, since the library cannot be substituted lightly, and it does not fit a commercial evaluation, because the documentation warns that demo versions of commercial tools may not simulate non-trivial examples. Before deciding anything, check which MSL version your tool ships, and if you need a specific release, take it from the GitHub releases page and read the MAP-LIB project rules before you contribute.
Frequently asked questions
What does the Modelica Standard Library contain?
It is a free, standard conforming library from the Modelica Association covering mechanical modelling in 1D and 3D, electrical systems including analog, digital and machines, magnetic, thermal and fluid systems, control systems and hierarchical state machines, plus numerical functions and functions for strings, files and streams.
Do I need to install the Modelica Standard Library separately?
Probably not. Using a Modelica library requires a Modelica simulation environment, and such an environment usually already includes the Modelica standard library, so the practical question is which version your tool ships and whether you can change it.
Can I use the Modelica Standard Library in a commercial product?
Yes. The README states that the generous licence conditions allow usage in commercial products, and the library can be redistributed and/or modified under the terms of the 3-clause BSD License, with the use being completely at your own risk.
What is the current release of the Modelica Standard Library?
Version 4.1.0, dated 2025-05-23, with v4.1.0-rc.1 from 2025-04-17 and v4.1.0-beta.2 from 2025-03-11 before it. The last push to the repository was on 2026-10-20, and older releases are available through the Releases page.
How is the Modelica Standard Library validated?
Through regression tests run in a simulator, with public dynamic badges in the README reporting the test run status for the Modelica Standard Library v4.1.0 and for ModelicaTest v4.1.0, and the repository holds the reference models and their reference results in ModelicaReference and ReferenceResults.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/modelica-modelicastandardlibrary)Was this useful?