Favicon of CadQuery

CadQuery

CadQuery is an open-source Python library for parametric CAD modeling, enabling engineers to create fully scriptable and automated 3D designs.

Screenshot of CadQuery website

CadQuery is an open-source, Python-based parametric CAD framework built for engineers who prefer writing code over working inside a GUI-driven modeling environment. Instead of constructing geometry through feature trees and interactive sketches, CadQuery lets users define parts programmatically using Python scripts.

At its core, CadQuery combines a constructive solid geometry approach with parametric modeling, enabling precise, repeatable, and highly customizable part generation. Engineers define geometry through chained operations such as extrude, cut, fillet, and boolean operations, all expressed in clean, readable Python syntax.

One of CadQuery's most significant advantages is its ability to integrate directly into engineering automation pipelines. Because models are code, they can be version-controlled, parameterized, and generated dynamically. This makes it particularly useful for design automation, configuration-driven parts, and batch geometry generation.

CadQuery is built on top of the OpenCascade geometry kernel, giving it robust solid modeling capabilities comparable to many traditional CAD systems. It also supports exporting to standard CAD formats such as STEP and STL, enabling interoperability with simulation tools, CAM software, and manufacturing workflows.

Unlike traditional CAD tools, CadQuery does not prioritize interactive modeling. Instead, it targets engineers who want reproducibility, automation, and programmatic control over geometry, making it a popular choice in hardware startups, computational design workflows, and engineering scripting environments.

Key Features

  • Fluent Python API for parametric solid modeling using workplane-based sketch and feature workflows
  • OpenCASCADE Technology geometry kernel providing B-Rep output with NURBS, splines, fillets, lofts, shells, and boolean operations
  • STEP, IGES, DXF, STL, AMF, and 3MF export for downstream simulation, machining, and additive manufacturing workflows
  • STEP import for starting with existing CAD geometry and adding parametric features programmatically
  • Assembly support with explicit component placement and constraint relationships producing multi-body STEP output
  • CQ-Editor lightweight IDE with integrated 3D viewer for interactive script development and geometry inspection
  • Jupyter and ocp-cad-viewer integration for interactive parametric CAD in notebook environments
  • GUI-free headless operation for server-side deployment, CI pipelines, and automated geometry generation
  • cq-warehouse community library providing parametric hardware components including fasteners, bearings, and connectors

Best For

Mechanical engineers, engineering software developers, and research teams who want to define and generate parametric CAD geometry programmatically using Python, integrate CAD model generation into automated pipelines, or build internal tools and configurators that produce engineering-grade STEP output without a GUI-dependent workflow.

Particularly well suited to applications involving families of similar parts, geometry driven by external data sources, and automated design-to-manufacture pipelines where a scripting-first approach is more efficient than manual feature modeling.

Who It's Not For

Engineers who need an interactive GUI for sketching, constraint management, assembly visualization, GD&T annotation, drawing generation, and PDM integration. CadQuery is a geometry generation library, not a complete CAD environment.

Teams who are not comfortable writing Python code will find the learning curve steep relative to point-and-click parametric CAD tools. Teams that need BOM management, drawing output, or integrated simulation should combine CadQuery with downstream tools that cover those workflows.

For complex surfacing, large enterprise assemblies, or drawing-heavy workflows, traditional CAD tools still outperform it.

Platform

Windows, macOS, and Linux.

Installation via conda using the conda-forge channel is the recommended and best-supported path due to OpenCASCADE dependency complexity. pip installation is available but less reliable across all environments. CQ-Editor is available as a standalone installer for Windows and macOS.

Compatible with standard Python IDEs including VS Code and PyCharm. Runs in Jupyter environments through ocp-cad-viewer. No internet connection is required for geometry generation after installation.

Pricing

Completely free and open source under the Apache Public License version 2.0, which permits commercial use, modification, and distribution without restriction.

Community support is available through GitHub issues, a dedicated Discord server, and the CadQuery documentation. No commercial support contracts are offered. The CQ-Editor and ocp-cad-viewer visualization tools are also free and open source.

Costs may arise indirectly from infrastructure if CadQuery is used in automated pipelines or cloud environments.

Pros

  • B-Rep output using the OpenCASCADE kernel produces engineering-grade geometry compatible with FEA, CAM, and STEP-based supplier workflows without mesh accuracy loss
  • Python foundation gives engineers access to the full scientific Python ecosystem including NumPy, SciPy, and Pandas for data-driven geometry generation
  • Fluent workplane API produces readable, concise scripts that are significantly shorter than equivalent imperative geometry code
  • Headless operation enables integration into CI pipelines, web servers, and automated manufacturing workflows that GUI tools cannot participate in
  • Assembly support produces multi-body STEP output with preserved component identity for downstream use
  • Apache 2.0 license permits commercial use and integration into proprietary engineering tools without restriction

Cons

  • No graphical interface for interactive sketching, constraint management, or assembly visualization; CQ-Editor provides basic viewing but is not a full CAD GUI
  • No drawing output, GD&T annotation, BOM generation, or PDM integration; teams needing those workflows require separate tools
  • Installation complexity due to OpenCASCADE dependencies makes conda the recommended path, adding environment management overhead for teams not already using it
  • Community-supported only with no commercial support contracts or guaranteed response times
  • Smaller community and ecosystem than OpenSCAD and FreeCAD, with fewer ready-made model libraries for direct reuse

Rating

4.3 / 5

Editorial Take

CadQuery occupies a distinctive position in the CAD landscape as a serious parametric modeling library for engineers who think in code. For teams building automated geometry pipelines, parametric part configurators, or AI-assisted design tools, it offers a level of programmability and output quality that GUI-based tools are not architected to provide.

Alternatives

Build123d, OpenSCAD, FreeCAD (Python Scripting), Zoo Design Studio, SolveSpace, SolidPython, Fusion 360 API, Onshape (Feature Script)

Used In

  • Parametric part family generation and configurators
  • Automated design-to-manufacture pipelines
  • Fastener and hardware component library generation
  • Scientific instrument and laboratory equipment design
  • Engineering education and computational design research
  • Text-to-CAD and LLM-assisted design research
  • Open source hardware product development

Founded

2014

Share:

Similar to CadQuery

Favicon

 

  
  
Favicon

 

  
  
Favicon