FEP Agent Hub
FEP Agent Hub
FEP Agent Hub is an evidence-first, Windows-oriented CAE automation stack for:
FreeCAD: parametric CAD and STEP handoff.
Elmer FEM: Gmsh meshing, ElmerGrid conversion, structured SIF generation, solving, and result validation.
ParaView: persistent headless post-processing, images, CSV, and PVSM state export.
Each application is exposed as an independent local STDIO MCP server for Codex. The shared open-cae-core package provides workspace isolation, process whitelisting, structured responses, job state, logs, hashes, and an auditable evidence chain.
Validation status
Release validation was performed against the commands registered in Codex and real native CAE executables:
49/49 exposed tools invoked at least once.
52/52 contract calls passed.
46 unique tool capabilities returned
SUCCEEDEDin the full matrix.3 context-appropriate calls returned their required
BLOCKEDcontract: FreeCAD headless screenshots, electromagnetic excitation under the heat profile, and animation export from a one-step steady dataset. Animation export succeeds for verified multi-step datasets.The 10 mm cube steady heat-conduction benchmark passed the 300 K / 400 K / 350 K physics gates after the electromagnetic extension.
The true transient heat benchmark passed 20/20 BDF1 time steps and matched the 20 s Fourier-series midpoint temperature within 0.318 K.
The 2D harmonic open-circuit transformer-effect workflow passed field, flux, voltage, linearity, mesh-sensitivity, and ParaView gates.
The 2D plane-stress simply-supported beam passed 10/10 quasi-static load levels, analytical deflection/stress/strain gates, and 10-frame ParaView export.
The 2D steady laminar channel passed Poiseuille velocity-profile, flow-rate, no-slip, and pressure-drop gates at Re=100.
The 2D transient Lenz-law eddy-current workflow passed 40/80/40 native time steps, four opposition-sign gates, time/mesh sensitivity, and 40-frame ParaView export.
17/17 routinely executed Python tests passed; the native pytest wrapper remains opt-in because it starts desktop CAE executables.
See the transformer validation report, beam validation report, transient heat and flow report, Lenz-law transient eddy-current report, five-case research video validation, four-case research video and error review, release validation, and the original Chinese heat case report.
Repository layout
FEP_Agent_Hub/
├── mcp/
│ ├── freecad/ # 15 tools
│ ├── elmer/ # 17 tools
│ └── paraview/ # 17 tools
├── packages/open-cae-core/ # shared safety/evidence runtime
├── configs/ # public templates + ignored local config
├── docs/ # architecture and validation reports
├── examples/ # curated thermal, electromagnetic, structural, and flow evidence
├── prompts/ # reusable FEP workflow prompts
├── skills/fep-agent-hub/ # reusable Codex Skill and benchmark references
├── assets/ # branding and media assets
├── checklists/ # evidence and release gates
├── scripts/ # install, doctor, registration, smoke tests
├── tests/
└── workspace/ # generated locally; gitignoredCodex Skill
The repository includes skills/fep-agent-hub, a reusable Codex Skill that routes the six verified profiles, enforces the FreeCAD → Elmer FEM → ParaView sequence, and keeps workflow pass rates separate from numerical accuracy claims.
Invoke it with a request such as: Use $fep-agent-hub to run and validate a transient heat benchmark.
Quick start
Copy
configs/open-cae.example.tomltoconfigs/open-cae.local.tomland set local executable paths.Install the four editable packages into the repository virtual environment.
Run the unit and MCP protocol checks.
On Windows, use a short ASCII-only workspace path because some native CAE command-line runtimes do not reliably initialize from Unicode working directories. The source repository itself may remain in a Unicode path.
cd <FEP_Agent_Hub>
.\scripts\install.ps1
$env:OPEN_CAE_CONFIG = "$PWD\configs\open-cae.local.toml"
.\.venv\Scripts\python.exe .\scripts\doctor.py
.\.venv\Scripts\python.exe .\scripts\protocol_smoke.py
.\.venv\Scripts\python.exe -m pytest -qRun the native heat benchmark:
.\scripts\run-smoke.ps1Register the three servers with Codex:
.\scripts\register-codex.ps1
codex mcp listRun the workflow through the registered MCP protocol:
.\.venv\Scripts\python.exe .\scripts\mcp_heat_smoke.py
.\.venv\Scripts\python.exe .\scripts\mcp_transformer_smoke.py
.\.venv\Scripts\python.exe .\scripts\mcp_beam_smoke.py
.\.venv\Scripts\python.exe .\scripts\mcp_transient_heat_smoke.py
.\.venv\Scripts\python.exe .\scripts\mcp_channel_flow_smoke.py
.\.venv\Scripts\python.exe .\scripts\mcp_full_validation.pySafety and claim policy
No arbitrary shell, Python,
eval, or executable tool is exposed.All project paths must remain inside the configured workspace.
Native executables are restricted by name and launched with argument arrays and
shell=False.Success requires process, log, artifact, data-field, finite-value, and physics gates where applicable.
A declared unsupported capability must return
BLOCKED; it must never fabricate output.Generated models, solver outputs, local paths, and private evidence stay gitignored.
License
MIT. The repository does not redistribute FreeCAD, Gmsh, Elmer, ParaView, or their third-party components.