Build123d: A Python CAD programming library

Coders cheer, clickers clap back—can typing beat clicking for 3D design?

TLDR: Build123d lets you design 3D parts by writing simple Python code, and makers are buzzing. The community split: purists want a code‑first future, veterans say it should complement point‑and‑click tools, and many demand a hybrid that mixes clicking, coding, and even AI—because that’s where real power lies.

Build123d lets makers design 3D parts by typing Python—like writing Lego instructions—then export to popular tools. Cool tech, sure, but the comments turned it into a click vs code showdown. One veteran waved the peace flag, pointing to Onshape’s FeatureScript, and insisted this isn’t a replacement for point‑and‑click design, it’s a partner. Translation: don’t start a GUI (graphical menus) vs code war—make them work together.

Meanwhile, the hype squad rolled in. A longtime OpenSCAD user basically announced a breakup with their old tool, gushing they’ve been “missing out” and that Build123d fixes their gripes. Another voice said what many coders feel: CAD needed a real code‑first workflow years ago. But the chorus wasn’t all one note—one top comment begged for a hybrid tool where you can click a shape and have it appear in the code. The crowd reaction? Huge yes energy. Keyboard and mouse as a power couple.

Then came the curveball: AI. One user is already pairing Build123d with Gemini (an AI chatbot) for rapid iterations, plus a VS Code viewer to see models live. Cue the memes: keyboard warriors vs mouse mavens, and the classic “Why not both?” GIF. Verdict from the thread: code is hot, but the best future mixes clicking, coding, and maybe a little robot co‑pilot.

Key Points

  • build123d is a Python-based parametric BREP CAD framework for 2D/3D modeling built on the Open Cascade kernel.
  • It emphasizes maintainable CAD-as-code with algebraic, operator-driven modeling and minimal internal state.
  • The library offers explicit 1D, 2D, and 3D geometry classes, extensibility via subclassing and composition, and deep Python integration.
  • Code quality is enforced via standards and tools (PEP 8, mypy, pylint) with rich Pylance type hints.
  • Models can be exported to external CAD tools, including FreeCAD and SolidWorks, and constructed from 1D to 3D using selectors, ShapeLists, and operations like extrude, fillet, and chamfer.

Hottest takes

“in reality they are complementary.” — injidup
“I really want a hybrid mouse/code CAD” — CarVac
“CAD has needed a proper code-first workflow for years.” — latenode
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.