CAD Modeling Through Conversation: A Hands-On Guide to Zhejiang University's Open-Source CADDesigner

·Toolin Editorial Team

Type one sentence or sketch an outline and CADDesigner generates the 3D model. Zhejiang University's open-source LLM-driven CAD agent, with a workflow guide and pitfalls to avoid.

CAD Modeling Through Conversation: A Hands-On Guide to Zhejiang University's Open-Source CADDesigner

Traditional CAD modeling means learning professional software like SolidWorks or AutoCAD, and memorizing the command paths for "extrude, revolve, sweep, loft" alone can take months. CADDesigner, open-sourced by researcher Du Peng's team at Zhejiang University, reduces all of that to a single chat message — you describe the model you want, or jot down a rough sketch, and the agent generates the 3D CAD model for you. This guide explains what it is, how to use it, and which scenarios you can put it to work in right away.

What CADDesigner Is

CADDesigner is an LLM-based CAD conceptual design agent, open-sourced by Zhejiang University's State Key Laboratory of CAD & CG.

Its core positioning is turning "modeling" from "operating commands" into "describing intent":

  • Input: a single natural-language description ("make a round table with four cylindrical legs") or a hand-drawn sketch
  • Output: a 3D model that imports directly into mainstream CAD software, complex assemblies included

The key innovation is the team's ECIP (Explicit Context Imperative Paradigm). You can think of it as handing the LLM an "idiot-proof operations manual" — it gives the model a clear rulebook when generating CAD modeling scripts, so it guesses less, takes fewer detours, and makes fewer mistakes, translating your design intent into reliable geometric modeling results.

CADDesigner makes modeling feel like chat

CADDesigner wraps the professional command path of "extrude → revolve → sweep" into scripts that an LLM can generate reliably, dropping the modeling barrier from "learn the software" to "be able to type."

Core Capabilities

Natural-language-driven modeling

The most direct capability is text-to-CAD. You only need to describe the model's structure, for example:

"Generate an L-shaped bracket, 100mm long, 60mm wide, 10mm thick, with a mounting hole 8mm in diameter on each end face."

CADDesigner first understands your design intent, then uses the ECIP paradigm to generate the corresponding modeling script (sketch → profile → extrude → drill holes) and finally outputs the geometric model.

This approach is more reliable than simply asking an LLM to "generate a piece of OpenSCAD code," because ECIP structures the modeling process — every step has explicit context, so the model doesn't go off track over ambiguous commands.

Sketch input

Beyond text, CADDesigner also supports sketch input. Draw a rough outline and the agent recognizes the shapes and completes them into a parametric model.

According to the team's comparison in the paper, vectorized sketch input is clearly superior to pixel input — the vector approach is like reading the drawing's "source code" directly, while the pixel approach is like trying to understand a precision drawing through a blurry photo.

Multi-agent collaboration for complex assemblies

CADDesigner is internally a multi-agent architecture. When handling complex assemblies, different sub-agents take on:

  • Structure decomposition (splitting the whole machine into parts)
  • Single-part modeling
  • Assembly-relationship reasoning (hole alignment, mating fits)
  • Consistency verification

This division of labor lets it output stable results even on multi-part models like gearboxes and linkages.

How to Use It: Getting Started

Step 1: Get the code and paper

CADDesigner is open source. Core resources:

  • Paper (arXiv): CADDesigner: Conceptual Design of CAD Models Based on LLMs, number 2508.01031
  • Author homepage: https://dupengtomas.github.io/ (includes the project link CADDesigner-Code)
  • Contact email: dp@zju.edu.cn

Note: for the open-source repository, follow the CADDesigner-Code link shown on the author's homepage and in the paper, so you don't clone an unrelated project with a similar name.

Step 2: Prepare the environment

Typical dependencies (defer to the official README; here is the expected list):

  • Python 3.9+
  • OpenSCAD or FreeCAD as the backend geometry engine
  • An LLM interface (the open-source build usually hooks up locally deployable models such as Qwen / DeepSeek)

For exact version requirements, defer to the repository README; installing inside a conda virtual environment is recommended to avoid polluting your system Python.

Step 3: Run a minimal example

The most common onboarding flow:

  1. Write a one-line design description (Chinese or English both work; test in English first, then switch)
  2. Call the agent to generate the ECIP script
  3. Export to STEP / STL / OpenSCAD files
  4. Open and verify in FreeCAD or an online viewer
Input: "a round table with four cylindrical legs, top diameter 80mm, height 75mm"
Output: table.step (imports directly into FreeCAD/SolidWorks)

Step 4: Verify the geometry

For every generated model, do two things:

  • Mesh check: use FreeCAD's Part Check Geometry to confirm there are no non-manifold edges or self-intersecting faces
  • Dimension recheck: ECIP is stable, but an LLM occasionally reads "diameter 80mm" as "radius 80mm" — build the habit of cross-checking against your original description

Sketch and model side by side

Tip: for sketch input, use clean single-color lines and avoid shadows and noise; it noticeably improves recognition accuracy.

Best-Fit Scenarios

ScenarioRecommended?Notes
Rapid prototyping at the concept-design stageStrongly recommendedCADDesigner's sweet spot; concepts in minutes
Teaching / training demosStrongly recommendedHelps newcomers grasp that "modeling = sketch + features"
Standard parts / common structuresRecommendedL-shaped brackets, flanges, gear blanks, and the like
High-precision engineering drawingsWith cautionTolerances still need refining in professional CAD
Free-form / organic shapesNot recommendedCurrent version has limited NURBS surface support

Common Issues

  • Generated model has wrong dimensions: check whether the LLM confused "diameter/radius" or "length/width"; when describing, write it explicitly as "diameter 80mm (not radius)."
  • Complex assembly generation fails: split the machine into 2-3 sub-assemblies, generate them in batches, then assemble manually.
  • Chinese descriptions perform poorly: run the flow in English first, confirm the environment is fine, then switch to Chinese; some LLM backends handle Chinese CAD terminology weakly.
  • Can't find the official repository: follow the CADDesigner-Code link on the author's homepage at https://dupengtomas.github.io/ and don't trust third-party mirrors.

Related Links