Skip to content

BOM · Project 2 — Offline DFM Assistant

This section contains the spec-only bill of materials (BOM) for Project 2, the offline AI DFM assistant. It lists the hardware, the software stack, and the licensing constraints, so a potential customer can size and scope a build.


D.1 The key decision: keep CATIA out of the runtime loop

The single most important sizing decision is whether CATIA runs every time the assistant runs, or only once per part, up front. Three verified facts push firmly toward the second option:

  • CATIA V5 automation (COM/VB, CATVBS, and the pycatia Python wrapper) is Windows-only and needs a live, licensed CATIA session at runtime; there is no headless in-process library.1
  • CATIA V5 does offer an unattended batch mode (CNEXT -batch -macro), but it still consumes a licensed CATIA seat while it runs.2
  • CATIA's native Wall Thickness Analysis is a licence-gated add-on (it needs the CFO or FMP application, or the CCV workbench with FR1 + TG1 + HA1), not a base Part-Design feature.3

So driving CATIA live (Option 1) nails a Windows CATIA seat, plus the right analysis licence, into the loop for every part. Converting each part to a neutral STEP file once and then computing the checks in open-source tooling (Option 2) removes CATIA, Windows, and the analysis licence from the runtime entirely. Option 2 is the primary recommendation.

one-time conversion
standalone converter, no CATIA seat

CATPart / CATProduct

STEP file
AP214 / AP242

Open-source geometry checks
draft, thickness, rib, undercut

Local LLM + RAG
judges vs standards, writes report

Findings + DFM report

In short: CATIA (Windows) touches each part only once, to make a STEP file; every check after that runs on one open-source Linux box.

STEP: neutral CAD exchange format (ISO 10303); AP214 / AP242: its automotive application protocols; RAG: retrieval-augmented generation.

Option 1 — drive CATIA live Option 2 — STEP-first (primary)
CATIA at runtime Yes, a licensed seat per run No; used once per part for conversion
Operating system Windows in the loop Linux for the whole pipeline
Analysis licence CATIA thickness/draft add-on needed3 Not needed; checks are open-source
Main risk Windows + CATIA seat coupling, fragile automation Conversion fidelity on complex parts

D.2 BOM — compute (the local LLM)

The GPU is the one component that scales with ambition. All VRAM figures below are for 4-bit quantized weights (how these models are actually run locally); full-precision needs roughly four times the memory and is not single-workstation-feasible above ~13B. Numbers are drawn from current (2026) local-LLM sizing guides and agree to within a class.9

Model class ~VRAM (4-bit, with modest context) GPU VRAM tier Performance compromise Role
7–8B ~4–6 GB 12–16 GB Fine for Q&A; unreliable at multi-tool agentic calls Phase 1 (RAG Q&A) only
13–14B ~9–10 GB 16 GB Good Q&A; usable tool-calling Comfortable Phase 1; marginal Phase 2
32B (recommended) ~19–24 GB 24 GB Strong reasoning + reliable structured tool-calling The full agent (Phase 2+)
70B ~35–48 GB 48 GB (or 2 × 24 GB) Best grounding; ~2× the hardware Reserve; only if 32B underperforms

Three points to hold onto:

  • The trade-off is reliability, not just speed. Smaller models are cheaper and faster but weaker at the hard part here: agentic tool-calling and clause-grounded reasoning. The 32B class is the honest floor for the full agent; 70B is a quality bump at double the VRAM, not a requirement.9
  • Context length eats VRAM. Long standards clauses and long tool outputs grow the KV-cache, so budget headroom above the weight figure; treat the tier column as "weights plus working room," not a hard fit.9
  • Serving: Ollama for the simplest single-box setup, vLLM when throughput or many concurrent users matter. Both expose an OpenAI-compatible API and share the one GPU above.9

On naming a specific GPU: this BOM specifies VRAM tiers (16 / 24 / 48 GB) rather than card models, which date quickly. One licensing nuance to note: NVIDIA's consumer GeForce driver EULA carries a "no datacenter deployment" clause, but it does not restrict a single on-prem workstation, which is the deployment here; professional RTX A-series / Ada drivers carry no such clause and matter only if the build scales past one machine.10


D.3 BOM — geometry & file conversion

Component Recommendation Alternates Notes
CATPart → STEP converter Datakit CrossManager CAD Exchanger; OCCT-based readers (confirm fidelity) Standalone, on-prem, no CATIA/third-party CAD licence; reads CATIA V5 CATPart/CATProduct, writes STEP AP214/AP242; CLI tier for headless batch on Windows/Linux/macOS4
Draft & thickness from STEP Open CASCADE (pythonOCC) + trimesh Analysis Situs (OCCT-based) Wall thickness is mature: trimesh.proximity.thickness() (shrinking-sphere / ray methods); Analysis Situs adds a sphere method matching the drawing definition67
Commercial DFM checker (optional, "Tool 3") buy or defer DFMPro (DFX Server batch add-on) DFMPro runs as a CAD plugin, not a standalone STEP checker; unattended runs use its separate DFX Server; exports Excel/XML/PDF (CSV not explicitly listed)5

One honest gap: local wall-thickness computation from geometry is well-supported open-source, but off-the-shelf draft-angle checking from a STEP B-rep is less settled. OCCT provides the geometry primitives (surface normals, a draft-angle modelling operator8), and the standard method (compare each face normal to the mould-pull direction) is straightforward to implement, but there is no verified, ready-made open-source draft checker to cite. Treat draft checking as a small bespoke build on top of OCCT, not a library drop-in. (See limitations.)


D.4 BOM — supporting software (all open-source)

None of these needs a licence; specifying the hardware is enough.

Component Option (+ alternate) Hardware GPU?
Vector database Qdrant (server) / Chroma (embedded) CPU + a few GB RAM; index is small (GBs even at thousands of chunks) No
Embedding model bge / e5 / nomic-embed (local) < 2 GB; CPU-ok, faster sharing the GPU Optional
Document parsing / OCR Tesseract + docling / unstructured CPU-bound; RAM for large PDFs No (optional)
LLM serving Ollama (simple) / vLLM (throughput) shares the GPU in D.2 Yes

D.5 BOM — workstation baseline

For the Option 2 single Linux box that runs everything except conversion:

  • GPU: per D.2 — 16 GB (Phase 1) rising to 24 GB (full agent).
  • System RAM: 32–64 GB (model load + document processing + serving overhead).
  • Disk: NVMe SSD, ~256 GB – 1 TB (model weights alone: 32B ≈ 20 GB, 70B ≈ 40 GB; plus documents, vector index, OS).
  • CPU: modern 8+ core (document processing, geometry checks, orchestration).
  • Network: none at runtime — fully offline / LAN.

Conversion machine: the standalone converter runs on Windows/Linux/macOS and needs no CATIA seat,4 so CATPart→STEP conversion can share the same Linux box or a separate machine. Only Option 1 would require a dedicated licensed Windows CATIA workstation in the loop.


D.6 Licensing constraints to confirm with the customer's vendors

Item What to confirm With whom
CATIA analysis licence (Option 1 only) Which configuration bundles Draft Analysis + Wall Thickness Analysis (CFO / FMP / CCV+FR1+TG1+HA1)3 Dassault / CATIA sales
CATIA batch seat (Option 1 only) That batch runs consume a standard seat, and licence-server capacity for concurrent runs2 Dassault / CATIA sales
STEP export licence Whether batch CATPart→STEP export needs a separate CATIA licencenot publicly confirmed; a specific "ST1 + FTA" claim was refuted in research, so do not assume it Dassault / CATIA sales
Converter licensing CrossManager tier (GUI file-count limit vs CLI/Advanced batch) and per-seat vs floating model4 Datakit
DFMPro (if bought) Host-CAD requirement, DFX Server batch add-on, and whether CSV export exists5 DFMPro / HCL

  • Phase 1 (RAG Q&A, no geometry): 16 GB GPU + a 13–14B model. Genuinely modest; can even start CPU-only for a small model if slow responses are acceptable.9
  • Phase 2+ (full agent): 24 GB GPU + a 32B model — the reliable floor for tool-calling.9
  • 70B / 48 GB: hold in reserve; adopt only if the 32B model underperforms on real parts.

The design goal is start minimal, scale on evidence — mirroring the assistant's own "earn autonomy later" staging.


D.8 Open questions & limitations

Held honestly, per the study's evidence-first stance:

  • Open-source draft-angle checking maturity is unproven. Wall-thickness tooling is mature and cited; a ready-made draft checker is not. Budget a small bespoke build on OCCT and validate it against known parts.
  • Exact CATIA licence packaging is not publicly verifiable. Which seat bundles the draft + thickness analyses, and whether STEP export is separately licensed, vary by reseller and must come from Dassault, not this document.
  • CATPart-read fidelity across converters (Datakit vs CAD Exchanger vs OCCT readers) on complex or PMI-bearing parts was not benchmarked here; pilot on real customer files.
  • LLM sizing figures come from 2026 community guides, not vendor SLAs; treat the tier table as planning guidance and confirm on the chosen model and context length.

D.9 References


  1. CATIA V5 out-of-process automation (VB/VBA, WSH, CATVBS/CATScript) is documented as Windows-only, and the automation connection starts or attaches to a running CATIA session — implying a live, licensed seat at runtime. Dassault CAA "Invoking CATIA" article, catiadoc mirror (accessed Aug 2026), http://catiadoc.free.fr/online/CAAScdInfTechArticles/CAAInfInvoking.htm; pycatia project (requires "CATIA V5 running on Windows"), https://github.com/evereux/pycatia; https://www.scripting4v5.com/additional-articles/catia-macro-languages/

  2. CATIA V5 batch macro invocation CNEXT -batch -macro <path> runs without the GUI but still launches the licensed CATIA engine. "Executing CATIA scripts in batch mode" (2010), https://v5vb.wordpress.com/2010/09/26/exec-scripts-in-batch-mode/; corroborated by Dassault CAA docs and IBM APAR HD24315, https://www.ibm.com/support/pages/apar/HD24315

  3. IBM APAR HE04148 (closed as documentation error): "The CFO or FMP application is required to access the Wall Thickness Analysis capability … also accessible through CCV workbench, in this case CCV, FR1, TG1 and HA1 applications are required." https://www.ibm.com/support/pages/apar/HE04148; capability documented under the Cast & Forged Part Optimizer manual, http://catiadoc.free.fr/online/cfyugprt_C2/cfyugint0026.htm. Exact seat packaging varies by reseller — confirm with Dassault. 

  4. Datakit CrossManager runs "on premise, without the need of external third-party CAD licenses," reads CATIA V5 CATPart/CATProduct and writes STEP AP203/AP214/AP242, and offers standalone GUI plus a CLI tier for headless batch conversion (Windows/Linux/macOS). https://www.datakit.com/en/cross_manager.php; https://www.datakit.com/cad-convertors/catia-v5-3d-to-step (accessed Aug 2026). 

  5. DFMPro is offered as a plugin for 3DEXPERIENCE / CATIA V5 / Creo / NX / SOLIDWORKS, with a separate DFX Server for scheduled/overnight batch runs, and exports Excel / XML / PDF / eDrawings (CSV not explicitly listed). DFMPro FAQ, https://dfmpro.com/support/faqs-about-dfmpro/; https://www.digitalengineering247.com/article/dfmpro-offers-a-streamlined-process (accessed Aug 2026). Deployment model is mixed (plugin + server batch); treat single characterizations cautiously. 

  6. trimesh.proximity.thickness() computes local wall thickness at mesh points via max_sphere (shrinking-sphere, per Inui/Umezu/Shimane 2016) or ray methods. https://trimesh.org/trimesh.proximity.html (accessed Aug 2026). 

  7. Analysis Situs (Open CASCADE-based) computes wall-thickness distribution with a ray method and, since v2026.1, a shrinking-sphere method whose value matches the mechanical-drawing definition (max inscribed sphere diameter). https://analysissitus.org/features/features_thickness.html (accessed Aug 2026). 

  8. Open CASCADE provides BRepOffsetAPI_DraftAngle as a modelling operator (it applies draft to faces); it is a geometry primitive, not a draft checker. https://dev.opencascade.org/doc/refman/html/class_b_rep_offset_a_p_i___draft_angle.html (accessed Aug 2026). 

  9. Local-LLM VRAM sizing at 4-bit (Q4_K_M): ~7–8B ≈ 4–6 GB, 13–14B ≈ 9–10 GB, 32B ≈ 19–24 GB, 70B ≈ 35–48 GB; GPU tiers 16 / 24 / 48 GB map to ~14B / ~32B / ~70B with context headroom; Ollama vs vLLM serving trade-offs. Community sizing guides, 2026: https://llm-stats.com/blog/research/hardware-requirements-running-llms-locally, https://vrlatech.com/llm-vram-requirements-2026/, https://bestgpuforllm.com/articles/ollama-vram-guide/. Planning guidance, not vendor SLAs. 

  10. NVIDIA's GeForce/Titan driver EULA (§2.8) states the software "is not licensed for datacenter deployment" (blockchain excepted), in effect since late 2017; this targets datacenters, not a single on-prem workstation, and professional RTX A-series/Ada drivers carry no such clause. https://www.nvidia.com/en-us/drivers/geforce-license/; https://www.techpowerup.com/239994/nvidia-forbids-geforce-driver-deployment-in-data-centers