text-to-cad

Introduction: An open source harness for generating CAD models
More: Author   ReportBugs   
Tags:
Demo of the CAD skill generating and previewing CAD geometry

A collection of agent skills for CAD, robotics and hardware design

Docs | Demo

GitHub stars GitHub forks License: MIT Follow @earthtojake Python build123d OCP STEP STL 3MF URDF SDF SRDF

✨ Features

  • Generate - Create source-controlled CAD models with coding agents like Codex and Claude Code.
  • Export - Produce STEP, STL, 3MF, DXF, GLB, topology data, and URDF/SRDF/SDF robot descriptions.
  • Browse - Inspect generated geometry, flat patterns, and robot-description files in CAD Explorer.
  • Source - Find and download off-the-shelf STEP parts from the hosted step.parts catalog.
  • Reference - Copy stable @cad[...] references so agents can make precise follow-up edits.
  • Review - Render quick review images for fast checks during an iteration loop.
  • Reproduce - Edit source files first, then regenerate explicit targets.
  • Local - Run harness, skills, and the render viewer locally with no backend to host.

🧰 Skills

  • CAD - STEP, STL, 3MF, DXF, GLB/topology, render images, and @cad[...] geometry references. Bundled skill · Standalone repo
  • Render - Start or reuse CAD Explorer, return visual review links, and create snapshots for generated .step, .stp, .glb, .stl, .3mf, .dxf, .urdf, .srdf, and .sdf files. Bundled skill
  • step.parts - Find, evaluate, and download common off-the-shelf STEP models from step.parts, including screws, nuts, washers, bearings, standoffs, electronics parts, motors, and connectors. Bundled skill
  • URDF - Generated URDF XML, robot links, joints, limits, validation, mesh references, and CAD Explorer URDF visualization. Bundled skill
  • SRDF - MoveIt2 SRDF semantics, direct SRDF-to-URDF Explorer links, inverse kinematics, path planning, and optional MoveIt2-server testing for existing URDFs. Bundled skill
  • SDF - Generated SDFormat/SDF XML, simulator model/world structure, validation, mesh URIs, plugins, and simulator-specific metadata. Bundled skill
  • SendCutSend - SendCutSend.com-specific DXF and STEP/STP upload preflight reports using its ordering guide, catalog, and specs for selected materials, SKUs, services, and secondary operations. Bundled skill

🧩 Harness

The harness/ directory contains optional repo-level instruction files for larger CAD projects that will be edited by coding agents. These files keep project behavior predictable: edit sources before derived artifacts, regenerate explicit targets, avoid broad repo scans, treat CAD outputs as LFS-heavy, and keep reusable workflow details in the skills themselves.

To use the harness in another CAD project, copy harness/AGENTS.md and harness/CLAUDE.md into that project's root.

💻 Installation

Install CAD Skills with the Skills CLI:

npx skills add earthtojake/text-to-cad

Restart your agent if newly installed skills do not appear. Learn more about the Skills CLI and supported agents at skills.sh.

📸 Screenshots

CAD skill demo showing generated geometry in CAD Explorer CAD URDF skill demo showing robot description output in CAD Explorer URDF SRDF MoveIt2 skill demo showing inverse kinematics in CAD Explorer SRDF / MoveIt2

🔁 Workflow

  1. Describe - Tell your agent about the part, assembly, fixture, robot, or mechanism you want.
  2. Edit - Let your coding agent update repo-local CAD source files.
  3. Regenerate - Create explicit STEP, STL, 3MF, DXF, GLB, URDF, SRDF, or SDF targets.
  4. Inspect - Open CAD Explorer to review the generated model.
  5. Reference - Copy @cad[...] handles when you want geometry-aware edits.
  6. Commit - Save the source and generated artifacts together once the model is ready.

🧪 Benchmarks

The repo stores heavyweight assets in assets/** and benchmarks/** through Git LFS and excludes those trees from default LFS pulls so lightweight clones do not fetch GIF assets. Benchmark markdown remains normal Git for readable diffs. To hydrate only the benchmark assets locally, run:

git lfs pull --include="benchmarks/**"
# Target Prompt Output
1 Rectangular calibration block with four holes Create a centered 100 x 60 x 20 mm block with four 8 mm vertical through-holes. Add only a 2 mm chamfer on the top outer perimeter. Rectangular calibration block orbit gif
2 Circular flange with bolt-hole pattern Create an 80 mm diameter, 10 mm thick circular flange with a 30 mm central through-bore. Add six 6 mm through-holes on a 60 mm bolt circle and fillet the outside circular edges. Circular flange orbit gif
3 L-bracket with gussets and two hole directions Create an L-bracket from a base plate and rear vertical plate. Add vertical base holes, horizontal back-plate holes, two triangular gussets, and a filleted base/back transition. L-bracket orbit gif
4 Stepped shaft with keyway Create a 120 mm shaft along X with 20/30/20 mm diameter stepped sections. Add end chamfers and a shallow rectangular keyway on top of the middle section. Stepped shaft orbit gif
5 Open-top electronics enclosure with bosses Create a hollow open-top enclosure with 3 mm walls and floor. Add four internal standoffs with centered blind holes and 2 mm outside vertical corner fillets. Open-top electronics enclosure orbit gif
6 Aerospace-style clevis bracket with lightening cutouts Create a symmetric clevis bracket with a base plate, two rounded lugs, base mounting holes, and a horizontal lug bore. Add triangular lightening cutouts, reinforcing ribs, and rounded transitions. Clevis bracket orbit gif
7 Radial-engine-style cylinder with cooling fins Create a vertical engine-cylinder form with a central barrel, 12 cooling fins, a base flange, and a top cap. Add a 35 degree angled spark-plug boss with a coaxial through-hole. Radial-engine-style cylinder orbit gif
8 Centrifugal impeller with backward-curved blades Create a centrifugal impeller with a backplate, hub, and through-bore. Add 12 fused backward-curved blades sweeping about 45 degrees from root to tip. Centrifugal impeller orbit gif
9 Spiral staircase with helical handrail Create a miniature spiral staircase with a central column, base disk, and 20 rising wedge treads. Add a one-revolution helical handrail and vertical balusters at the tread outer ends. Spiral staircase orbit gif
10 Simplified planetary gear stage Create a flat planetary gear assembly with separate sun, planet, ring, carrier, and pin bodies. Use simplified trapezoidal teeth and place three planets around the sun on a 42 mm radius circle. Planetary gear stage orbit gif

🛠️ Local Development

Clone the repo:

git clone https://github.com/earthtojake/text-to-cad.git
cd text-to-cad

Install Python CAD dependencies:

python3.11 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/pip install -r skills/cad/requirements.txt

Install the render viewer dependencies:

npm --prefix skills/render/scripts/viewer install

Start or reuse CAD Explorer through the render skill for the current workspace:

npm --prefix skills/render/scripts/viewer run dev:ensure -- --workspace-root "$PWD" --root-dir .

Then open the URL printed by the command.

For a specific file, pass its path explicitly:

npm --prefix skills/render/scripts/viewer run dev:ensure -- --workspace-root "$PWD" --root-dir . --file path/to/model.step

CAD Explorer supports .step, .stp, .glb, .stl, .3mf, .dxf, .urdf, .srdf, and .sdf files. SRDF reviews can use optional local MoveIt2 controls when the render skill's MoveIt2 server is running.

CAD Explorer renders models with browser WebGL. If Chrome shows "WebGL unavailable" or "Error creating WebGL context" on Linux, check chrome://gpu, enable hardware acceleration or software WebGL, and update the system graphics/Mesa drivers before reloading the Explorer URL.

For manual foreground viewer development:

npm --prefix skills/render/scripts/viewer run dev
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest