From sundial-org-awesome-openclaw-skills-4
Runs a CAD rendering server inside Docker so Claude can model, render, and iterate on 3D parts using build123d code. Useful for parametric design and 3D-printable parts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sundial-org-awesome-openclaw-skills-4:cad-agentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Give your AI agent eyes for CAD work.
Give your AI agent eyes for CAD work.
CAD Agent is a rendering server that lets AI agents see what they're building. Send modeling commands → receive rendered images → iterate visually.
Use when: designing 3D-printable parts, parametric CAD, mechanical design, build123d modeling
Critical: All CAD logic runs inside the container. You (the agent) only:
YOU (agent) CAD AGENT CONTAINER
───────────── ───────────────────
Send build123d code → Executes modeling
← Returns JSON status
Request render → VTK renders the model
← Returns PNG image
*Look at the image*
Decide: iterate or done
Never do STL manipulation, mesh processing, or rendering outside the container. The container handles everything — you just command and observe.
git clone https://github.com/clawd-maf/cad-agent.git
cd cad-agent
docker build -t cad-agent:latest .
Or using docker-compose:
docker-compose build
# Using docker-compose (recommended)
docker-compose up -d
# Or using docker directly
docker run -d --name cad-agent -p 8123:8123 cad-agent:latest serve
curl http://localhost:8123/health
# Should return: {"status": "healthy", ...}
Docker-in-Docker caveat: In nested container environments (e.g., Clawdbot sandbox), host networking may not work—
curl localhost:8123will fail even though the server binds to0.0.0.0:8123. Usedocker exec cad-agent python3 -c "..."commands instead. On a normal Docker host, localhost access works fine.
curl -X POST http://localhost:8123/model/create \
-H "Content-Type: application/json" \
-d '{
"name": "my_part",
"code": "from build123d import *\nresult = Box(60, 40, 30)"
}'
# Get multi-view (front/right/top/iso)
curl -X POST http://localhost:8123/render/multiview \
-d '{"model_name": "my_part"}' -o views.png
# Or 3D isometric
curl -X POST http://localhost:8123/render/3d \
-d '{"model_name": "my_part", "view": "isometric"}' -o iso.png
Look at the image. Does it look right? If not, modify and re-render.
curl -X POST http://localhost:8123/model/modify \
-d '{
"name": "my_part",
"code": "result = result - Cylinder(5, 50).locate(Pos(20, 10, 0))"
}'
# Re-render to check
curl -X POST http://localhost:8123/render/3d \
-d '{"model_name": "my_part"}' -o updated.png
curl -X POST http://localhost:8123/export \
-d '{"model_name": "my_part", "format": "stl"}' -o part.stl
| Endpoint | What it does |
|---|---|
POST /model/create | Run build123d code, create model |
POST /model/modify | Modify existing model |
GET /model/list | List models in session |
GET /model/{name}/measure | Get dimensions |
POST /render/3d | 3D shaded render (VTK) |
POST /render/2d | 2D technical drawing |
POST /render/multiview | 4-view composite |
POST /export | Export STL/STEP/3MF |
POST /analyze/printability | Check if printable |
from build123d import *
# Primitives
Box(width, depth, height)
Cylinder(radius, height)
Sphere(radius)
# Boolean
a + b # union
a - b # subtract
a & b # intersect
# Position
part.locate(Pos(x, y, z))
part.rotate(Axis.Z, 45)
# Edges
fillet(part.edges(), radius)
chamfer(part.edges(), length)
The project has safeguards against accidentally committing CAD outputs:
.gitignore blocks *.stl, *.step, *.3mf, etc.npx claudepluginhub sundial-org/awesome-openclaw-skillsOpen source harness for AI coding agents to generate, export, and preview 3D CAD models from natural language descriptions using build123d and OpenCascade.
CAD modeling with build123d Python library. Use when creating 3D models, exporting to GLB/STEP/STL, or doing boolean operations (union, difference, intersection). Triggers on: CAD, 3D modeling, sphere, box, cylinder, mesh export, GLB, STEP, STL, solid modeling, parametric design, threads, fasteners, bolts, nuts, screws, gears, pipes, flanges, bearings, bd_warehouse, spur gear, helical gear, bevel gear, planetary gear, ring gear, cycloid gear, rack and pinion, gggears, herringbone, gear mesh, gear train.