CAD SDK Evaluation Report¶
Source files: cad_sdk_evaluation_report.docx, current NX live-control architecture and Techstack tracking Last synthesized: April 2026
Executive Summary¶
This evaluation compares CAD multiformat exchange SDKs for use in the TextCAD pipeline (DFM analysis, feature extraction, geometry simplification). The goal is to find a solution that reliably parses STEP, IGES, and optionally NX native files, and supports robust geometry operations.
Recommendation: OpenCASCADE (OCCT) via pythonOCC for primary geometry parsing and analysis; FreeCAD headless as secondary option for higher-level CAD modeling.
This report answers the headless geometry question. It does not replace the separate NX live-control question, which is now handled through an in-session NX Open host when the workflow must stay inside the real NX drafting session. See NX Live Control Architecture. For the companion operational matrix that maps common exchange formats between major CAD tools, plus the AICAD feature-value breakdown, see CAD Format Interoperability and AICAD.
Evaluation Criteria¶
| Criterion | Weight | Notes |
|---|---|---|
| Format support | High | STEP, IGES, BREP; ideally NX/Parasolid |
| Geometry robustness | High | Feature detection, topology operations, healing |
| Python integration | High | Must have clean Python API for backend |
| Headless operation | High | Must run without GUI in production |
| Cost/licensing | Medium | Open-source preferred; commercial acceptable if cost justified |
| Documentation | Medium | API docs, examples, community support |
| Performance | Medium | Parsing speed, memory footprint for large models |
| Maintenance | Medium | Active development, security updates |
Evaluated Options¶
1. OpenCASCADE (OCCT) + pythonOCC ⭐ RECOMMENDED¶
Description: Industry-standard open-source geometric modeling kernel
Strengths: - ✅ Excellent STEP/IGES parsing - ✅ Robust B-Rep geometry operations - ✅ Clean Python bindings (pythonOCC) - ✅ Runs headless (no GUI dependency) - ✅ Free and BSD-licensed - ✅ Used in FreeCAD, Salome, many commercial tools - ✅ Strong community and documentation
Limitations: - ❌ No native NX format support (workaround: export to STEP) - ❌ Edge case handling can require custom healing logic - ❌ Moderate learning curve for advanced operations - ⚠️ C++ core (bindings are good but not all features exposed)
Best for: Core geometry parsing, feature extraction, rule-based DFM analysis
Cost: Free (open-source)
Integration: pythonOCC (pip install OCP or conda install -c conda-forge pythonocc-core)
2. FreeCAD (Open-Source Alternative)¶
Description: Full CAD suite built on OCCT with higher-level Python API
Strengths: - ✅ Built on OCCT (same solid foundation) - ✅ Higher-level Python API (easier to use than raw OCCT) - ✅ Includes CAM/DFM workbenches - ✅ Can run headless with Python scripting - ✅ Free and open-source (LGPL) - ✅ Large community, extensive documentation
Limitations: - ❌ Heavier footprint (full CAD app, not just kernel) - ⚠️ Performance slower than raw OCCT for batch processing - ⚠️ Version stability; rapid changes to Python API across releases - ❌ No native NX format support
Best for: Higher-level operations (feature modeling, assembly manipulation); prototyping before moving to OCCT
Cost: Free (open-source)
Integration: pip install FreeCAD or Docker image
3. Parasolid (Commercial, Siemens)¶
Description: Industry-standard commercial kernel; used in NX, Creo, Solid Edge
Strengths: - ✅ Exceptional robustness (Siemens invests heavily) - ✅ Native NX format support (Parasolid XT, X_T) - ✅ Excellent feature recognition - ✅ Superior topology healing - ✅ Widely used in aerospace/automotive
Limitations: - ❌ Expensive: $5K-50K/year (depending on usage tier) - ❌ License management (seat-locked, OEM licensing required) - ⚠️ Fewer Python bindings; mostly C/C++ APIs - ⚠️ Proprietary; limited code access for customization
Best for: Commercial products requiring maximum robustness; when NX native format is critical
Cost: License cost + implementation effort
4. ACIS (Commercial, 3D Systems)¶
Description: Another industry-standard commercial kernel; used in SolidWorks, AutoCAD
Strengths: - ✅ Very robust topology operations - ✅ Good feature recognition - ✅ Widely used in manufacturing
Limitations: - ❌ Expensive (similar to Parasolid) - ❌ Poor Python support (C/C++ focused) - ❌ No NX native format support
Best for: If you're embedding in a product that already licenses ACIS
Cost: $5K-50K/year
5. Shapely / PyGEOS (Python-Only)¶
Description: Lightweight Python geometry library built on GEOS (topological operations)
Strengths: - ✅ Easy to use, pure Python - ✅ No external dependencies (mostly) - ✅ Good for 2D operations and mesh cleanup
Limitations: - ❌ 2D-focused (not suitable for solid modeling) - ❌ Cannot parse STEP/IGES natively - ❌ Limited to topological operations, not B-Rep modeling - ❌ Not designed for CAD geometry
Best for: 2D geometry processing, mesh repair, post-processing (not primary CAD parsing)
Cost: Free (open-source)
Comparison Matrix¶
| Criterion | OCCT | FreeCAD | Parasolid | ACIS | Shapely |
|---|---|---|---|---|---|
| STEP support | ✅ Excellent | ✅ Excellent | ✅ Excellent | ✅ Good | ❌ None |
| IGES support | ✅ Excellent | ✅ Excellent | ✅ Excellent | ✅ Good | ❌ None |
| NX native format | ❌ No | ❌ No | ✅ Yes | ❌ No | ❌ No |
| Python API | ✅ Good | ✅ Excellent | ⚠️ Limited | ⚠️ Limited | ✅ Excellent |
| Headless operation | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
| Open-source | ✅ Yes | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| Cost | ✅ Free | ✅ Free | ❌ $5K-50K | ❌ $5K-50K | ✅ Free |
| Geometry robustness | ✅ Strong | ✅ Strong | ✅ Excellent | ✅ Excellent | ⚠️ Limited |
| Feature recognition | ✅ Good | ✅ Good | ✅ Excellent | ✅ Excellent | ❌ None |
| Community/docs | ✅ Strong | ✅ Excellent | ⚠️ Limited | ⚠️ Limited | ✅ Strong |
Recommendation¶
For TextCAD (DFM + Autonomous CAE)¶
Primary: OpenCASCADE (OCCT) via pythonOCC
Rationale: - ✅ Industry-proven geometry kernel - ✅ Excellent STEP/IGES support (covers 95% of use cases) - ✅ Clean Python API for production use - ✅ Free and open-source (no licensing costs) - ✅ Runs headless in Docker/cloud - ✅ Used in similar products (FreeCAD, Salome, commercial CAD tools)
For NX native format: If you need to directly read NX files without exporting to STEP first: - Option A (Recommended): Require users to export STEP from NX (standard workflow anyway) - Option B (Future): License Parasolid if NX integration becomes critical
Secondary tool: FreeCAD headless for prototyping and higher-level CAD modeling (assembly operations, feature modeling)
Where NX Open Fits¶
The current RapidDraft stack now has a clearer split than this original report assumed.
For headless geometry, this report still stands: OCCT remains the right default choice because it is strong on STEP/IGES, practical in Python, and suitable for production services.
For live NX drafting workflows, the product now uses a different architectural layer:
- an NX Open host loaded into the real NX session
- live session targeting rather than detached helper execution
- review-sheet creation, layout iteration, and PDF export inside NX
- a migration path from the current managed host to a native
NX Open C++host for deeper drafting control andOpen C / UFUNCfallback
So the revised interpretation is:
- OCCT / translators are still the right answer for general geometry infrastructure
- NX Open live control is the right answer when the workflow must remain inside NX
Implementation Strategy¶
Phase 1: OCCT/pythonOCC (Production)¶
from OCP.STEPControl import STEPControl_Reader
from OCP.TopExp import TopExp_Explorer
from OCP.TopAbs import TopAbs_FACE, TopAbs_EDGE
# Load STEP file
reader = STEPControl_Reader()
reader.ReadFile("part.step")
reader.TransferRoots()
shape = reader.OneShape()
# Extract faces, edges, compute properties
explorer = TopExp_Explorer(shape, TopAbs_FACE)
while explorer.More():
face = explorer.Current()
# Analyze face properties, detect features
explorer.Next()
Dependencies:
Performance: - STEP parsing: <1 second for typical parts (<10K faces) - Geometry operations: <5 seconds for feature detection - Memory: ~200MB per loaded model
Phase 2: Commercial Option (If Needed)¶
If user feedback indicates NX native format is critical: 1. Evaluate Parasolid licensing terms 2. Prototype dual-path: OCCT for STEP + Parasolid for NX 3. Make NX import optional (cost/complexity trade-off)
Risks & Mitigation¶
| Risk | Severity | Mitigation |
|---|---|---|
| OCCT doesn't handle malformed CAD | Medium | Implement healing + validation layer; fall back to manual intervention |
| STEP files are incomplete (missing solids) | Medium | Detect and warn user; log for support |
| Performance for very large models (100K+ faces) | Low | Profile and optimize; consider mesh-based fallback for CAE |
| Maintenance if OCCT API changes | Low | Stay on stable LTS releases; monitor GitHub |
Testing & Validation¶
Test Coverage¶
- Format parsing: STEP, IGES files from major CAD tools (Autodesk, Siemens, etc.)
- Feature detection: Holes, pockets, bosses, ribs, bends on representative parts
- Geometry operations: Face suppression, edge healing, topology validation
- Performance: Batch processing 100 models; measure parsing time and memory
- Edge cases: Degenerate faces, missing solids, self-intersections
Success Criteria¶
- ✅ Parse 95%+ of real STEP files from customers
- ✅ Detect features with >80% accuracy
- ✅ Handle edge cases gracefully (log, warn, don't crash)
- ✅ Process typical part in <5 seconds
Deployment Considerations¶
Python Environment¶
FROM python:3.10
RUN pip install OCP PyQt5 # PyQt5 optional for FreeCAD headless
RUN apt-get install -y libocct-* # If using system OCCT
API Wrapper¶
Recommend creating a wrapper library to abstract OCCT:
# src/geometry/shape_loader.py
class ShapeLoader:
def load_step(self, filepath: str) -> GeometryFacts
def extract_features(self, shape) -> FeatureCandidates
def compute_measurements(self, shape) -> Measurements
This isolates OCCT calls and allows future SDK swaps without rewriting code.
Conclusion¶
OpenCASCADE (OCCT) via pythonOCC is the right choice for TextCAD. It provides: - Production-ready geometry parsing - Excellent cost (free) - Community support - Flexibility to extend with custom healing/feature recognition - Clear upgrade path (Parasolid) if commercial requirements emerge later
Next steps: 1. Prototype feature extraction on 5-10 real customer parts 2. Build geometry healing layer for malformed CAD 3. Integrate into DFM pipeline 4. Monitor performance; optimize if needed
Commercial Translator SDKs — Deep Evaluation¶
Source:
CAD multiformat exchange sdk research/Research from CHATGPT.docx— product/ops evaluation of commercial CAD translator SDKs for RapidDraft Studio Focus: Licensing for cloud SaaS, behaviour on real-world assemblies, and new-version support cadence
Context¶
If the product goal is "drop in a SolidWorks/CATIA/NX file and RapidDraft just works," the translator SDK becomes a core product dependency, not a side feature. The differences between SDKs show up less in happy-path demos, and more in: 1. Licensing in a cloud SaaS (autoscaling, multi-tenant) 2. Behaviour on ugly real-world assemblies (external refs, configurations, suppressed components) 3. What happens when CAD vendors ship new yearly versions
SDK Comparisons¶
HOOPS Exchange (Tech Soft 3D) — ⭐ Recommended for enterprise¶
Strengths: - Explicit support for "massive assembly" workflows (load/unload components), assembly instances/external refs/configurations - B-Rep, PMI (visual + semantic), and tessellation in one SDK - Access to persistent face IDs — essential for revision-stable workflows and geometry anchor stability - Format-version update cadence: CAD readers updated to latest authoring versions within ~90 days - Current version coverage documented for SolidWorks, CATIA V5, and NX
Cloud/SaaS risks: - Enterprise pricing — published indicative figures: ~$33k/yr partnership fee + $20k/yr minimum. Must negotiate SaaS-specific terms (how cores/containers are counted) - Trial licenses include telemetry (sends CPU info, MAC addresses to Tech Soft endpoint) — can complicate pilots in restricted IT environments
Best fit for RapidDraft: When roadmap includes enterprise assemblies, semantic PMI, stable IDs for revision workflows, and you want a premium SDK with strong documentation of those exact problems
3D InterOp (Spatial / Dassault Systèmes)¶
Strengths: - Selective import of product data (structure, graphics, geometry, manufacturing info) — useful to avoid processing entire assemblies when only one sub-tree matters - Works across major modellers (ACIS, CGM, Parasolid) - "Data Prep" add-on: reduce model complexity and mask IP during import — useful for "share-safe" derivatives (simplified models for suppliers) - Emphasises "manufacturing-grade geometry fidelity"
Cloud/SaaS risks: - Pricing is quote-driven (less transparent) - Must clarify server-side multi-tenant SaaS licensing explicitly - Kernel/ecosystem bias can influence topology consistency quality in edge cases
Best fit: When vision leans toward "manufacturing-grade" geometry fidelity, selective import workflows, and potential IP masking for supplier sharing
3D_Kernel_IO (CoreTechnologie)¶
Strengths: - "Complete technical extraction": assembly structure, attributes, B-Rep + tessellated models, PMI, and feature/history access - Automatic healing modules - Windows/Linux/Mac support - "Flexible annual fee or per-license cost" with CodeMeter-based locking
Cloud/SaaS risks: - Higher customer expectations if you advertise feature/history accuracy — requires stronger regression testing - Must confirm how they count servers/cores/containers in autoscaling environments
Best fit: When the product vision is heading beyond "drawings from geometry" into manufacturing intelligence (features/PMI-driven automation) and you want that capability on the table early
Datakit CrossCad/Ware¶
Strengths: - Very broad format surface area — dimensions/tolerances/annotations, features, assemblies, B-Rep, mesh/tessellation - Open CASCADE (OCC) output option — strategically relevant since RapidDraft's stack is OCC-based - glTF/GLB I/O supported - Modular format licensing — buy exactly what you need - Frequent releases and regular updates
Cloud/SaaS risks: - Module sprawl — different enterprise customers demanding different format modules and version support - Assembly edge cases: breadth of format doesn't automatically mean painless assembly import
Best fit: When you want broad format coverage and flexibility, and like the OCC-friendly output option without betting on the most expensive premium tier vendor first. Validate assembly edge cases early with real customer datasets.
CAD Exchanger SDK¶
Strengths: - Transparent, modular licensing: formats licensed individually or in a bundle; "development fee + distribution fee" model - Supports SolidWorks/CATIA/NX import and STEP/JT/glTF export - Preserves structure/metadata/appearances
Cloud/SaaS risks — this is the critical concern: - Distribution fee is "per end-user's machine" with differences for desktop vs server - Generates licence keys per host-id with quarterly reporting/fees - In a SaaS with autoscaling containers where instances come and go, host-id licensing can become a severe operational constraint - Cost can scale with number of servers (not revenue or customer seats)
Best fit: Only if they offer a cloud-friendly licensing agreement that won't fight your autoscaling/cloud deployment model. Do not assume this is available — negotiate explicitly before committing.
Recurring "Gotchas" for RapidDraft's SaaS Model¶
| Risk | Detail |
|---|---|
| Drawings magnify geometry defects | Tiny topology gaps that look fine in a shaded viewer create ugly HLR artefacts (extra edges, broken silhouettes, noisy section lines). Prioritise SDKs with strong B-Rep healing. |
| Assemblies are the real workload | External references, configurations, instances, partial loading — this is where 80% of pain lives. Not the single part. |
| SaaS licensing can make autoscaling impossible | The biggest strategic risk is not technical — it is getting locked into a licence model that assumes fixed machines. CAD Exchanger's public licensing text is the clearest example. |
| PMI — decide now whether it's core | If you ever want "auto-annotate drawings from model PMI," pick a toolkit with semantic PMI, not only visual. HOOPS, CoreTechnologie, and Datakit all explicitly support semantic PMI extraction. |
Recommended Architecture for SaaS¶
Native CAD file (SolidWorks/CATIA/NX)
↓ Commercial translator SDK
STEP AP242 (truth geometry) + GLB (viewer) + Assembly manifest
↓
Existing RapidDraft pipeline (OCC/FreeCAD)
↓
DFM checks + Drawing generation + Report
Key lever for cost control: Cache identical uploads aggressively. Cached conversions don't consume paid translation quota — this is a major margin lever at scale.
Licence negotiation priority: Confirm how the SDK counts in your environment: per conversion? per concurrent job? per host-id? per core? Get SaaS-friendly concurrency terms in writing before signing.
Short Recommendation by Customer Type¶
| Customer type | Recommended SDK |
|---|---|
| Enterprise assemblies (automotive/aero suppliers) | HOOPS Exchange — lowest product risk |
| Manufacturing-grade geometry + IP masking | 3D InterOp + Data Prep |
| Feature/history-driven automation in roadmap | 3D_Kernel_IO |
| Broad format coverage + OCC compatibility | Datakit CrossCad/Ware |
| Cost-sensitive with modular needs | CAD Exchanger — only if cloud-friendly licence is confirmed |
Sources¶
cad_sdk_evaluation_report.docxD:\02_Code\47_NXconnection\README.mdD:\02_Code\47_NXconnection\NATIVE_CPP_HOST_ARCHITECTURE.mdC:\Users\adeel\OneDrive\100_Knowledge\203_TextCAD\01_Product_Project_Management\00_Project_Management_n_skills\01_tracks\techstack\TRACKING.mdC:\Users\adeel\OneDrive\100_Knowledge\203_TextCAD\01_Product_Project_Management\00_Project_Management_n_skills\03_decision_log\DL-006_nx-live-control-should-converge-on-native-cpp-host.md