Overview
FEMM 5 is a modernized version of Finite Element Method Magnetics (FEMM). It incorporates Qt so that it can run natively on many platforms. Tested platforms include Windows, Linux, macOS, and FreeBSD.
Many changes have been made to increase speed. In general, solutions are 3X-5X faster.
TCP Inter-Process Communication (IPC) is used in cross-platform bindings to Matlab/Octave, Python, Mathematica, Scilab, and Julia. The relatively simple TCP IPC API makes it straightforward to create other applications or bindings that communicate with FEMM 5.
FEMM 5 embeds MicroPython as its internal scripting language, allowing Python scripts to be directly interpreted by FEMM 5. The full set of supported packages are listed on local MicroPython page. For full Python functionality, the pyFEMM binding to Python can be used instead. For scripting backward compatibility, the Lua 4 REPL and a binding to Lua 4 is included in the distribution. These tools allow Lua 4 scripts from FEMM 4.2 to be run on FEMM 5 without modification. Here are some notes about using femm-lua.
A new 2D Delaunay meshing tool, tangle, is used by FEMM 5. The tangle mesher natively implements features needed by FEMM like periodic boundary conditions, sliding band boundary conditions, and per-point and per-segment mesh density specifications.
Licensing
The FEMM 5 application (the GUI, the libfemm engine, the IPC server, the tangle mesher, the shared math, and the language bindings) is released under the MIT License. The finite element field solvers (in solvers/ directory of the source tree) are released under the GNU General Public License v3 or later. The SPDX-License-Identifier tag in each source file is authoritative.
Bundled components keep their own licenses: Qt (LGPL-3.0); MicroPython, ulab, complexEigenPairSolver (MIT); bdwgc (MIT-like); Lua 4 and LuaSocket 1.0 (BSD-like Lua 4.0 License), etc.
Download
See the Change Log for changes since the last build.
- Windows Installer: femm-qt-py_06oct2026.exe (Digitally Signed)
- SHA-256:
1a025bdb83a628a7b278e742e21a757ec4991162ec8bb8e3ed53cb8c136c9f77
- macOS Installer: femm-qt-5.0_06oct2026.dmg (Signed & Notarized, runs on macOS 13.3 or later)
- SHA-256:
93ef57d6fa947b46129b72c863a1eab270902b9795898964e50efc9f6def7079
-
- SHA-256:
0ae785ab5f12b32f9529f479e9f1cbafea18aa23b32976d8ea559a08e016450d
Binary distributions are currently available only for Windows and macOS. For Linux and FreeBSD, you'll need to build from the source code. For each platform, there is a batch file that performs the build. Detailed build instructions are below.
- Windows (Tested on Windows 11 version 25H2) Windows Build Instructions
- Linux (Tested on Ubuntu 24.04 LTS via VirtualBox) Linux Build Instructions
- MacOS (Tested on MacBook Air (M1, 2020) running macOS 26 Tahoe) macOS Build Instructions
- FreeBSD (Tested on GhostBSD 26.1-R15.0p2 via VirtualBox) freeBSD Build Instructions
Bindings
To set up the bindings to Octave/Matlab, Python, Mathematica, Scilab, and Julia, see the BindingSetup page.
