CfdOF drives OpenFOAM from inside the FreeCAD workbench
Computational Fluid Dynamics (CFD) for FreeCAD based on OpenFOAM solver
At a glance
- What is it?
- CfdOF is a FreeCAD workbench that acts as a front-end GUI for the OpenFOAM CFD toolkit, guiding users from physics selection through meshing and boundary conditions to a running solver. The install path is well documented on Windows and Linux, but the macOS story is thin and a MinGW bug pins one OpenFOAM package to an old version.
- Who is it for?
- CfdOF suits FreeCAD users who need OpenFOAM results without writing case files by hand, particularly on Linux or 64-bit Windows where the dependency installer is reliable. It is the wrong choice for macOS users expecting a supported path, for anyone who cannot install OpenFOAM into a writable directory, or for parallel runs without a working Microsoft MPI install.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 16 days ago.
- What is it written in?
- Mainly Python, 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 GUI front-end for OpenFOAM solvers
CfdOF is a FreeCAD workbench whose job is to make a CFD analysis reachable from a modelling environment. The README describes it as a front-end for the OpenFOAM CFD toolkit, and lists the flow of work it guides you through: selecting the relevant physics, specifying the fluid properties, generating a mesh, assigning boundary conditions and choosing the solver settings before running the simulation. Best practices are built in with the stated aim of maximising solver stability.
The audience is engineers who already think in FreeCAD and want CFD inside that same window, rather than people learning OpenFOAM from scratch. OpenFOAM itself has a large surface area of solvers, dictionaries and case directory structures. CfdOF takes that and presents it as a sequence of panels in a workbench.
The important structural point is that CfdOF does not replace OpenFOAM. It depends on an external OpenFOAM installation, and it invokes the actual solvers. The meshers, the preprocessors and the post-processing come from OpenFOAM, Paraview and cfMesh. CfdOF is the layer that puts them in an order for you.
The physics you can pick from the workbench
The current feature list in the README maps directly onto OpenFOAM solver names, which makes the coverage easy to read. Incompressible laminar flow is handled by simpleFoam and pimpleFoam. Various RANS, LES and DES turbulence models are supported. Incompressible free-surface flow is covered by interFoam and multiphaseInterFoam, and compressible buoyant flow by buoyantSimpleFoam and buoyantPimpleFoam.
Higher speed compressible flow is available through HiSA, the High Speed Aerodynamic Solver, which is listed separately in the prerequisites because it is a separate project. Beyond the solver families there are porous regions and porous baffles, flow initialisation with a potential flow solver, and the solution of arbitrary passive scalar transport functions. AMI/NCC support exists for rotating mesh regions, and there is support for mean velocity force calculation.
Two entries deserve a note. The basic fluid property database is described as basic, so expect to be entering values by hand for anything unusual. And the mention of arbitrary passive scalar transport functions tells you the workbench does not limit you to a fixed list of scalars, though the README gives no examples of how that is configured.
Three meshing routes and what each one is for
CfdOF exposes meshing through three distinct paths, and the choice is driven by geometry and by the solver you intend to run.
Cut-cell Cartesian meshing with boundary layers comes from cfMesh. A second cut-cell route uses snappyHexMesh and adds baffles and moving mesh regions. The third path is tetrahedral meshing with Gmsh, which is an optional dependency used when you need tets, and includes a conversion step to a polyhedral dual mesh. After meshing there is a check mesh step, and dynamic mesh adaptation is supported for the solvers that can take it.
This is a meaningful amount of machinery, and it means the mesher you use is really the decision you are making. The cfMesh dependency is a customised version updated to compile with the latest OpenFOAM versions, distributed on SourceForge rather than from the upstream project, and that fork is one of the pieces most likely to fall out of step with a new OpenFOAM release.
Installing the workbench and its dependencies
CfdOF itself installs from inside FreeCAD through the Addon manager: run FreeCAD, open Tools | Addon manager, select CfdOF in the list of workbenches, click Install/update, and restart FreeCAD. The workbench can be updated later through the same panel.
The external pieces are the harder half, and the README is explicit that some of them can be installed automatically. From CfdOF | Open preferences you can install dependencies individually or as part of a docker container. The required external stack is:
- OpenFOAM [Foundation versions 9-13](http://openfoam.org/download/) or [OpenCFD versions 2006-2512](http://openfoam.com/download)
- [Paraview](http://www.paraview.org/)
- [cfMesh (customised version updated to compile with latest OpenFOAM versions)](https://sourceforge.net/projects/cfmesh-cfdof/)
- [HiSA (High Speed Aerodynamic Solver)](https://hisa.gitlab.io)Gmsh is listed as optional, needed only for tetrahedral meshes. FreeCAD 1.0.0 or later is required, either a release or a development prerelease build.
The OpenFOAM install on Windows comes through one of two packages, and the README names them:
The OpenFOAM installation is via the [BlueCFD Core](https://bluecfd.github.io/Core/) port of OpenFOAM (version 2024-1).ParaView is installed separately and its path is set to the paraview.exe file in the bin subfolder of the installation, with common defaults detected if you leave it blank. cfMesh and HiSA are also installed from the preferences panel, and you are told not to close that panel until the Install completed message appears.
A writeable OpenFOAM directory and the createPatch bug
Two failure modes deserve attention before you install anything.
The first is the filesystem. To interface correctly with the OpenFOAM installation, CfdOF needs to be able to write to its install location. The README reports that some users hit problems using a location inside C:\Program Files because of restrictions imposed by Windows User Account Control, and it suggests installing to an alternative location, preferably in the home directory. On Linux the same permission requirement applies to whatever prefix you choose for OpenFOAM.
The second is a version constraint on the MinGW route. The OpenCFD MinGW package is supported, but the README notes that only version 2212 is currently working, due to an apparent bug affecting the operation of the createPatch utility in later versions. On Windows the BlueCFD Core port of OpenFOAM, version 2024-1, is the recommended path instead. Installations of OpenFOAM on the WSL Linux subsystem are also supported, and for those you point CfdOF at the installation directory inside the Linux filesystem, or prefix the Linux path with the wsl.localhost distribution form and change slashes to backslashes.
In parallel setups, OpenFOAM installed with administrator privileges from the listed packages can also bring Microsoft MPI along, otherwise it has to be installed manually. MPI is needed in order to run in parallel, so this is not an optional extra if you plan to decompose the run.
Windows, Linux and a macOS gap
Platform support is described unevenly. Linux is the easy case: any system on which FreeCAD and the prerequisites can be installed. Windows 7 through 11 are supported, with the 64-bit version required.
macOS is the gap. The README says macOS is not widely tested, and that success has been reported, with a forum post linked for instructions. That is a different status from the other two platforms. There is no scripted dependency install path for macOS in the documentation, no stated OpenFOAM distribution recommendation, and the configuration instructions are delegated to a forum discussion. If you are on macOS, budget time for the setup and expect to work from someone else's notes rather than from documentation.
The feature list also shows what CfdOF is not trying to be. Post-processing is handled by Paraview, with basic support for force-based function objects and for probes. There is a case builder using an extensible template structure and macro scripting, which suggests the project expects some automation, but the README does not document the template format or the macro API, so that part of the tool is a documentation gap rather than a gap in the code.
Last push on 2026-10-07, no releases, LGPL-3.0
The repository is not archived and the last push was on 2026-10-07, so upstream work is current. There are no GitHub releases, which means you track the master branch and the Addon manager update rather than a versioned artefact. For a workbench that pins dependencies to specific OpenFOAM versions, having no tagged releases means there is no obvious safe checkpoint to pin to when a new master commit breaks against your OpenFOAM install.
The licence is LGPL-3.0. For a FreeCAD add-on that runs inside the user's own FreeCAD session rather than being linked into a product you distribute, LGPL obligations are comparatively light, and no legal advice is offered here beyond noting the licence identifier. Two other licence points come from the README itself. CfdOF is not approved or endorsed by OpenCFD Limited, the producer and distributor of OpenFOAM, and the OPENFOAM and OpenCFD trade marks belong to them. The project also ships unit and regression testing, a Demos folder, and a ROADMAP file, which is what you would expect from a workbench that sits on top of a solver whose own release cadence you do not control.
Editorial conclusion
CfdOF suits FreeCAD users who need OpenFOAM results without writing case files by hand, particularly on Linux or 64-bit Windows where the dependency installer is reliable. It is the wrong choice for macOS users expecting a supported path, for anyone who cannot install OpenFOAM into a writable directory, or for parallel runs without a working Microsoft MPI install. Verify first that the dependency panel can install your chosen OpenFOAM distribution, check the solver list against the physics you actually need, and pin the OpenFOAM version because the MinGW route is currently held at version 2212 by a createPatch bug.
Frequently asked questions
How do I install CfdOF in FreeCAD?
Run FreeCAD, open Tools | Addon manager, select CfdOF in the list of workbenches, click Install/update, and restart FreeCAD. External dependencies such as OpenFOAM, ParaView, cfMesh and HiSA are installed from the CfdOF preferences panel.
Which OpenFOAM versions work with CfdOF on Windows?
The BlueCFD Core port of OpenFOAM, version 2024-1, is the recommended Windows installation. The OpenCFD MinGW package is supported but currently only version 2212 works, because a bug in the createPatch utility affects later versions.
Can I run CfdOF simulations in parallel?
Yes, but parallel runs need MPI. If OpenFOAM was installed with administrator privileges from the listed packages, Microsoft MPI is installed along with it, otherwise you have to install it manually.
Is CfdOF supported on macOS?
Not in the same way as Linux and Windows. The README states that macOS is not widely tested and that success has been reported, pointing to a forum post for instructions.
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/jaheyns-cfdof)Was this useful?