HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
CadQuery
cadquery
Python2020–2026
CadQuery / cadquery

cadquery

A python parametric CAD scripting framework based on OCCT

28Distinct people
36Mentions
2Explicit recommenders
6.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A python parametric CAD scripting framework based on OCCT

GitHub

Where it is used

  • PrintMaker AI — PrintMaker AI uses CadQuery as its parametric CAD engine to generate 3D geometry from Python scripts. It runs CadQuery server-side in a sandboxed subprocess. Source

What people are saying

Having played around with this a bit, I recommend using https://github.com/CadQuery/cadquery as the CAD language instead. I'm pretty sure it could even transpile to OnShape /…

statuslover9000 used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year36 dated mentions

Observed mentions: 2020-01-01 23:01:06 UTC to 2026-10-16 07:30:38 UTC.

02468102020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 9 mentions; 1 submissions, 8 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC716
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC808
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC918
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC303
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC303
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC505

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
CadQuery Quick Links Documentation | Cheatsheet | GitHub Discussions | Google Group | GUI Editor What is CadQuery CadQuery is an intuitive, easy-to-use Python module for building parametric 3D CAD models. Using CadQuery, you can write short, simple scripts that produce high quality CAD models. It is easy to make many different objects using a single script that can be customized. CadQuery was built to be used as a Python library without any GUI. This makes it great for use cases such as integration into servers, or creating scientific and engineering scripts. However, it includes internal visualization capabilities. Additionally, other options for visualization are also available including CQ-Editor and JupyterLab. For those who are interested, the OCP repository contains the current OCCT wrapper used by CQ. Key features Build 3D models with scripts that are as close as possible to how you would describe the object to a human. Create parametric models that can be very easily customized by end users. Output high quality (loss-less) CAD formats like STEP and DXF in addition to STL, VRML, AMF and 3MF. Provide a non-proprietary, plain text model format that can be edited and executed with only a web browser. Offer advanced modeling capabilities such as fillets, curvilinear extrudes, parametric curves and lofts. Build nested assemblies out of individual parts and other assemblies. Getting started To learn more about designing with CadQuery, visit the documentation, examples, and cheatsheet. To quickly get started you can use apptainer apptainer run oras://ghcr.io/cadquery/cadquery-apptainer:master ipython -i -c"from cadquery.func import *; from cadquery.vis import show; show(box(1,1,1))" or docker/podman. podman run -i -v /tmp:/tmp -e DISPLAY=$DISPLAY --userns=keep-id --user "$(id -u):$(id -g)" --device /dev/dri -t ghcr.io/cadquery/cadquery-docker:master ipython -i -c"from cadquery.func import *; from cadquery.vis import show; show(box(1,1,1))" The CadQuery library (with or without CQ-editor) and its dependencies may be installed using conda/mamba/micromamba/pixi, or pip. Note that conda-based installation (or the CQ-editor installer) is the better supported option. See the documentation for detailed CadQuery installation instructions. CadQuery Installation Via Conda To first install the Conda package manager see Install the Conda Package Manager, and Miniforge for a minimal installer. mamba install is recommended over conda install for faster and less memory intensive CadQuery installation. # Set up a new environment conda create -n cadquery # Activate the new environment conda activate cadquery # Install the latest released version mamba install -c conda-forge cadquery # Or install the dev version to get the latest changes mamba install -c conda-forge -c cadquery cadquery=master CadQuery Installation Via Pip CadQuery has a complex set of dependencies including OCP, which is our set of bindings to the OpenCASCADE CAD kernel. OCP is distributed as binary wheels for Linux, MacOS and Windows. However, there are some limitations. Only Python 3.9 through 3.12 are currently supported, and some older Linux distributions such as Ubuntu 18.04 are not supported. If the pip installation method does not work for your system, you can try the conda installation method. It is highly recommended that a virtual environment is used when installing CadQuery, although it is not strictly required. Installing CadQuery via pip requires a up-to-date version of pip, which can be obtained with the following command line (or a slight variation thereof). python3 -m pip install --upgrade pip Once a current version of pip is installed, CadQuery can be installed using the following command line. pip install cadquery It is also possible to install the very latest changes directly from CadQuery's GitHub repository, with the understanding that sometimes breaking changes can occur. To install from the git repository, run the following command line. pip install git+https://github.com/CadQuery/cadquery.git Built-in visualization CadQuery has built in visualization capabilities using trame and vtk. from cadquery.func import box, fillet from cadquery.vis import show b = box(1,1,1) show(fillet(b, b.edges("|Z"), 0.1)) For non-blocking and persistent view one can use. from cadquery.func import box, fillet from cadquery.fig import show b = box(1,1,1) show(fillet(b, b.edges("|Z"), 0.1)) CQ-editor GUI CQ-editor is an IDE that allows users to edit CadQuery model scripts in a GUI environment. It includes features such as: A graphical debugger that allows you to step through your scripts. A CadQuery stack inspector. Export to various formats, including STEP and STL, directly from the menu. More on CQ-editor: CQ-editor README Installation Jupyter CadQuery supports Jupyter out-of-the-box. Run your CadQuery code in the notebook and visualize the model by calling display(<CadQuery object>). JupyterLab installation. Getting help You can find the full CadQuery documentation at cadquery.readthedocs.io. We also have a Google Group to make it easy to get help from other CadQuery users. We want you to feel welcome and encourage you to join the group and introduce yourself. We would also love to hear what you are doing with CadQuery. GitHub Discussions is a good place to ask general questions that are not tied to a bug report or feature request. Professional Support Some of CadQuery's core maintainers are available for consulting engagements involving CadQuery integration, custom feature development, training, code reviews and CAD automation. If you are interested, reach out at info@cadquery.org. Citing Please use our Zenodo DOI if you use CadQuery for scientific research: https://doi.org/10.5281/zenodo.3955118. License CadQuery is licensed under the terms of the Apache Public License, version 2.0. Contributing Contributions from the community are welcome and appreciated. You do not need to be a software developer
Read the full README on GitHub

What Hacker News says

36 sources
I had some good results using CadQuery [1] with CQ-editor [2] for visualization driven by Claude Code enhanced by a cadquery-llm-skill [3]. I didn't make anything too complicated, just cases for various ESP32 projects I am tinkering with, but that was very easy just describing what I want and iterating and refining until I am satisfied. It was much easier than doing it manually in FreeCAD and more dynamic as the changes were cheap and not tedious to do. [1] https://github.com/cadquery/cadquery [2] https://github.com/CadQuery/CQ-editor [3] https://github.com/jmwright/cadquery-llm-skill
In Design 3D-printable parts by talking
Could you please elaborate on how this is different than the other python based modeling tools - build123d[0] and CadQuery[1]. I recently also got annoyed with OpenSCAD and its limitations and therefore started experimenting with Build123d. I'm very much a beginner in the CAD space and would love to understand what inspired you to build sdf. My basic understanding is that STL files are essentially like Bitmap images and store a list of triangles and their positions, whereas STEP files are more like Vector art where there is a list of instructions on how to build the model. Most CAD GUI programs also operate on a similar model to vector art where they record a list of operations one on top of another. It's why STEP files are a standardized format and can be imported / exported from most GUI based CAD builders. I think. Given that SDF also
Read the rest
seems like it builds only STL files (I could be wrong), wouldn't learning build123d or CadQuery work better if one cares about compatibility with existing GUI based CAD modeling software? Additionally, atleast build123d offers a similar conceptual model to using Fusion360 and FreeCad - I have limited experience here - but essentially you sketch something in 2D on a particular plane, and then apply some operations to convert it to 3d in a particular manner - the simplest being extruding. This means the mental modeling of how to construct something is very similar across both GUI based CAD programs and Build123d, and that makes it easier for me to jump between GUI based and code based CAD modelling. I'd love to understand your point of view, and learn more. [0] - https://github.com/gumyr/build123d [1] - https://github.com/CadQuery/cadquery
In OpenSCAD is kinda neat
Keep in mind that OpenSCAD doesn't support exporting .step files. Ticket to add support has been open for a long time but it's a hard to implement. https://github.com/CadQuery/cadquery is much more capable in that regards. It's based on more capable Open CASCADE Technology and Freecad also uses it. As for use cases, the only viable use case I see is to ask it to make a model based on a picture. Or ask it to fix the topological error. In other cases it's much faster to model than to describe it to agent
In Show HN: Open-sourcing our text-to-CAD app
OpenSCAD is my go-to. It's self-contained and AI coding tools know the syntax well enough to help you move fast. Unfortunately I keep hitting a complexity ceiling. If it doesn't like how I'm describing something, it crashes. I have to load an older version of my .scad and try a new approach. This usually happens 70% of the way into a complex project, which is quite discouraging. The Python ecosystem has CadQuery[0] and a few other tools built around the Open Cascade kernel[1] which is quite good in my limited experience. CadQuery is positioned as an OpenSCAD alternative [2], and I really want it to be. Unfortunately the user experience isn't there yet. Making an object with CadQuery is writing a Python program. Which means you need a Python environment and dev setup. CQ-editor [3] is nice, but needs a Python environment first. I think Cad
Read the rest
Query would be much more viable OpenSCAD alternative if it was packaged into a standalone CQ-editor application and published via homebrew, etc. I'm also interest in Zoo [4](fka KittyCAD). They're trying to create a modelling tool that combines model-by-code and model-by-mouse. With some AI layered on top. They have an interesting architecture where they stream geometry to your local device from the cloud. Should be great for performance, but ties you to the cloud. [0] https://github.com/CadQuery/cadquery [1] https://en.wikipedia.org/wiki/Open_Cascade_Technology [2] https://cadquery.readthedocs.io/en/latest/intro.html#why-cad... [3] https://github.com/CadQuery/CQ-editor [4] https://zoo.dev/
In We are shutting down Ondsel
That thesis is really fun, but it will take me a couple weeks to digest. Before it even starts I see Pat Hanrahan, who is one of the nicest most creative people I have met in CS (), I know this going to be good. A fantasy of mine is to have a bag of arbitrary constraints and behaviors of agents that exercise the system. One could sketch a building, model the behavior of people that will use it and let the system run, doing backwards and forwards inference to evolve a structure that makes those agents satisfied across lots of criteria. The designer if they are still called that, can select designs they like and the system can use that as a seed or test oracle. Virtual cows, cow paths and evolvable structures wrt those cow paths. What do you think of "Growing Neural Cellular Automata" [1] Are you by chance following CadQuery? [2] [1] https:
Read the rest
In Show HN: MarkovJunior, PPL based on pattern matching and constraint propagation
https://github.com/CadQuery/cadquery : > CadQuery is often compared to OpenSCAD. Like OpenSCAD, CadQuery is an open-source, script based, parametric model generator. However, CadQuery stands out in many ways and has several key advantages: > The scripts use a standard programming language, Python, and thus can benefit from the associated infrastructure. This includes many standard libraries and IDEs. > CadQuery's CAD kernel Open CASCADE Technology (OCCT) is much more powerful than the CGAL used by OpenSCAD. Features supported natively by OCCT include NURBS, splines, surface sewing, STL repair, STEP import/export, and other complex operations, in addition to the standard CSG operations supported by CGAL > Ability to import/export STEP and the ability to begin with a STEP model, created in a CAD package, and then add parametric features. Th
Read the rest
is is possible in OpenSCAD using STL, but STL is a lossy format. > CadQuery scripts require less code to create most objects, because it is possible to locate features based on the position of other features, workplanes, vertices, etc. > CadQuery scripts can build STL, STEP, and AMF faster than OpenSCAD. What are some of the advantages of OpenSCAD tooling?
In GhostSCAD: Marrying OpenSCAD and Golang

Showing the 15 most recent of 36 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.