Deterministic duct sizing for Pascal HVAC scenes through your MCP (OpenMEP, MIT) #879
samarmstrong
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Pascal's HVAC nodes carry geometry, ports, and a system graph but no airflow or sizing, and the comment on the system graph says it exists "so analyses (sizing, code checks) can share it". I built that analysis as an outside tool and would like one or two people who actually draw ducts in Pascal to try it and tell me where it falls over.
What it does
openmep-pascal mcp sizeconnects to the localpascalMCP service,export_jsons the scene, mates duct segments, fittings, terminals, and equipment at coincident ports (same 5 cm rule as your system graph), propagates each supply terminal'smetadata.requiredCfmback to the furnace or air handler, sizes every round supply run by equal friction (0.08 in. w.g./100 ft, ASHRAE standard sizes and velocity caps), and applies the new diameters throughapply_patchas one batch, one undo step, then re-exports to verify. It writes its basis undermetadata.openmepon each segment (CFM, role, velocity, friction rate, status). It never invents CFM: terminals without airflow are reported, not guessed. Disconnected runs and rect/oval sections are reported, not resized.There is also an agent skill,
pascal-duct-sizing, in skills.sh format, so a Claude Code / Codex / Cursor agent connected to Pascal can gather CFM from the user and drive the tool. In a clean-host test the agent asked once for CFM, sized three runs, and named a deliberately disconnected one.Verified against
@pascal-app/cli1.0.0 (pascal-mcp-server 1.0.0), including undo/redo and therun/mcp.jsondiscovery change.Try it
Repo: https://github.com/samarmstrong/openmep (MIT). The engine underneath is host-agnostic:
openmep-hvac size network.jsonruns the same sizing on plain JSON, andopenmep-pascal itemsproduces that JSON from a Pascal scene.The ask
If you have a scene with ducts, run the dry run and paste the
findings(or the error). I want to know whether the port mating holds on hand-drawn geometry and whether the sizing defaults (US residential round supply) match what you expect. If there is interest, I am happy to turn this into an upstream inspector extension or asize_systemMCP tool instead of an outside CLI; I did not want to open a PR into the editor before anyone had used it.All reactions